1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--Converted with LaTeX2HTML 96.1-h (September 30, 1996) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds -->
<HTML>
<HEAD>
<TITLE>Filesystems galore</TITLE>
<META NAME="description" CONTENT="Filesystems galore">
<META NAME="keywords" CONTENT="sag">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<LINK REL=STYLESHEET HREF="sag.css">
</HEAD>
<BODY LANG="EN" >
<A NAME="tex2html861" HREF="node44.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="./next_motif.gif"></A> <A NAME="tex2html859" HREF="node41.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="./up_motif.gif"></A> <A NAME="tex2html853" HREF="node42.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="./previous_motif.gif"></A> <A NAME="tex2html863" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="./contents_motif.gif"></A> <A NAME="tex2html864" HREF="node114.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="./index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME="tex2html862" HREF="node44.html">Which filesystem should be </A>
<B>Up:</B> <A NAME="tex2html860" HREF="node41.html">Filesystems</A>
<B> Previous:</B> <A NAME="tex2html854" HREF="node42.html">What are filesystems?</A>
<BR> <P>
<H2><A NAME="SECTION00582000000000000000">Filesystems galore</A></H2>
<P>
Linux supports several types of filesystems. As of this
writing the most important ones are:
<DL ><DT><STRONG>minix</STRONG>
<DD>
The oldest, presumed to be the most reliable, but quite
limited in features (some time stamps are missing, at
most 30 character filenames) and restricted in
capabilities (at most 64 MB per filesystem).
<DT><STRONG>xia</STRONG>
<DD>
A modified version of the minix filesystem that lifts
the limits on the filenames and filesystem sizes,
but does not otherwise introduce new features. It is
not very popular, but is reported to work very well.
<DT><STRONG>ext2</STRONG>
<DD>
The most featureful of the native Linux filesystems,
currently also the most popular one. It is designed to
be easily upwards compatible, so that new versions
of the filesystem code do not require re-making the
existing filesystems.
<DT><STRONG>ext</STRONG>
<DD>
An older version of <tt>ext2</tt> that wasn't upwards
compatible. It is hardly ever used in new installations
any more, and most people have converted to <tt>ext2</tt>.
<P>
</DL>
In addition, support for several foreign filesystem exists,
to make it easier to exchange files with other operating
systems. These foreign filesystems work just like native
ones, except that they may be lacking in some usual UNIX
features, or have curious limitations, or other oddities.
<DL ><DT><STRONG>msdos</STRONG>
<DD>
Compatibility with MS-DOS (and OS/2 and Windows NT)
FAT filesystems.
<DT><STRONG>umsdos</STRONG>
<DD>
Extends the <tt>msdos</tt> filesystem driver under
Linux to get long filenames, owners,
permissions, links, and device files. This allows a normal
<tt>msdos</tt> filesystem to be used as if it were a
Linux one, thus removing the need for a separate
partition for Linux.
<DT><STRONG>iso9660</STRONG>
<DD>
The standard CD-ROM filesystem; the popular Rock Ridge
extension to the CD-ROM standard that allows longer file
names is supported automatically.
<DT><STRONG>nfs</STRONG>
<DD>
A networked filesystem that allows sharing a filesystem
between many computers to allow easy access to the
files from all of them.
<DT><STRONG>hpfs</STRONG>
<DD>
The OS/2 filesystem.
<DT><STRONG>sysv</STRONG>
<DD>
SystemV/386, Coherent, and Xenix filesystems.
<P>
</DL>
The choice of filesystem to use depends on the situation. If
compatibility or other reasons make one of the non-native
filesystems necessary, then that one must be used. If one can
choose freely, then it is probably wisest to use ext2, since
it has all the features but does not suffer from lack of
performance.
<P>
There is also the <tt>proc</tt> filesystem, usually accessible as
the <tt>/proc</tt><A NAME="1559"> </A> directory, which is not really a
filesystem at all, even though it looks like one. The
<tt>proc</tt> filesystem makes it easy to access certain kernel
data structures, such as the process list (hence the name).
It makes these
data structures look like a filesystem, and that filesystem
can be manipulated with all the usual file tools. For example,
to get a listing of all processes one might use the
command
<BLOCKQUOTE> <TT>
<code>$ </code> <I>ls -l /proc</I> <BR>
<code>total 0</code> <BR>
<code>dr-xr-xr-x 4 root root 0 Jan 31 20:37 1</code> <BR>
<code>dr-xr-xr-x 4 liw users 0 Jan 31 20:37 63</code> <BR>
<code>dr-xr-xr-x 4 liw users 0 Jan 31 20:37 94</code> <BR>
<code>dr-xr-xr-x 4 liw users 0 Jan 31 20:37 95</code> <BR>
<code>dr-xr-xr-x 4 root users 0 Jan 31 20:37 98</code> <BR>
<code>dr-xr-xr-x 4 liw users 0 Jan 31 20:37 99</code> <BR>
<code>-r--r--r-- 1 root root 0 Jan 31 20:37 devices</code> <BR>
<code>-r--r--r-- 1 root root 0 Jan 31 20:37 dma</code> <BR>
<code>-r--r--r-- 1 root root 0 Jan 31 20:37 filesystems</code> <BR>
<code>-r--r--r-- 1 root root 0 Jan 31 20:37 interrupts</code> <BR>
<code>-r-------- 1 root root 8654848 Jan 31 20:37 kcore</code> <BR>
<code>-r--r--r-- 1 root root 0 Jan 31 11:50 kmsg</code> <BR>
<code>-r--r--r-- 1 root root 0 Jan 31 20:37 ksyms</code> <BR>
<code>-r--r--r-- 1 root root 0 Jan 31 11:51 loadavg</code> <BR>
<code>-r--r--r-- 1 root root 0 Jan 31 20:37 meminfo</code> <BR>
<code>-r--r--r-- 1 root root 0 Jan 31 20:37 modules</code> <BR>
<code>dr-xr-xr-x 2 root root 0 Jan 31 20:37 net</code> <BR>
<code>dr-xr-xr-x 4 root root 0 Jan 31 20:37 self</code> <BR>
<code>-r--r--r-- 1 root root 0 Jan 31 20:37 stat</code> <BR>
<code>-r--r--r-- 1 root root 0 Jan 31 20:37 uptime</code> <BR>
<code>-r--r--r-- 1 root root 0 Jan 31 20:37 version</code> <BR>
<code>$ </code>
</TT></BLOCKQUOTE>
(There will be a few extra files that don't correspond to
processes, though. The above example has been shortened.)
<P>
Note that even though it is called a filesystem, no part of
the <tt>proc</tt> filesystem touches any disk. It exists only in the
kernel's imagination. Whenever anyone tries to look at any
part of the <tt>proc</tt> filesystem, the kernel makes it look as if
the part existed somewhere, even though it doesn't. So, even
though there is a multi-megabyte <tt>/proc/kcore</tt><A NAME="1561"> </A> file,
it doesn't take any disk space.
<P>
<HR><A NAME="tex2html861" HREF="node44.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="./next_motif.gif"></A> <A NAME="tex2html859" HREF="node41.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="./up_motif.gif"></A> <A NAME="tex2html853" HREF="node42.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="./previous_motif.gif"></A> <A NAME="tex2html863" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="./contents_motif.gif"></A> <A NAME="tex2html864" HREF="node114.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="./index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME="tex2html862" HREF="node44.html">Which filesystem should be </A>
<B>Up:</B> <A NAME="tex2html860" HREF="node41.html">Filesystems</A>
<B> Previous:</B> <A NAME="tex2html854" HREF="node42.html">What are filesystems?</A>
<P><ADDRESS>
<I>Lars Wirzenius <BR>
Sat Nov 15 02:32:11 EET 1997</I>
</ADDRESS>
</BODY>
</HTML>
|