Next: Which filesystem should be
Up: Filesystems
Previous: What are filesystems?
Linux supports several types of filesystems. As of this
writing the most important ones are:
- minix
-
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).
- xia
-
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.
- ext2
-
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.
- ext
-
An older version of ext2 that wasn't upwards
compatible. It is hardly ever used in new installations
any more, and most people have converted to ext2.
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.
- msdos
-
Compatibility with MS-DOS (and OS/2 and Windows NT)
FAT filesystems.
- umsdos
-
Extends the msdos filesystem driver under
Linux to get long filenames, owners,
permissions, links, and device files. This allows a normal
msdos filesystem to be used as if it were a
Linux one, thus removing the need for a separate
partition for Linux.
- iso9660
-
The standard CD-ROM filesystem; the popular Rock Ridge
extension to the CD-ROM standard that allows longer file
names is supported automatically.
- nfs
-
A networked filesystem that allows sharing a filesystem
between many computers to allow easy access to the
files from all of them.
- hpfs
-
The OS/2 filesystem.
- sysv
-
SystemV/386, Coherent, and Xenix filesystems.
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.
There is also the proc filesystem, usually accessible as
the /proc directory, which is not really a
filesystem at all, even though it looks like one. The
proc 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
$
ls -l /proc
total 0
dr-xr-xr-x 4 root root 0 Jan 31 20:37 1
dr-xr-xr-x 4 liw users 0 Jan 31 20:37 63
dr-xr-xr-x 4 liw users 0 Jan 31 20:37 94
dr-xr-xr-x 4 liw users 0 Jan 31 20:37 95
dr-xr-xr-x 4 root users 0 Jan 31 20:37 98
dr-xr-xr-x 4 liw users 0 Jan 31 20:37 99
-r--r--r-- 1 root root 0 Jan 31 20:37 devices
-r--r--r-- 1 root root 0 Jan 31 20:37 dma
-r--r--r-- 1 root root 0 Jan 31 20:37 filesystems
-r--r--r-- 1 root root 0 Jan 31 20:37 interrupts
-r-------- 1 root root 8654848 Jan 31 20:37 kcore
-r--r--r-- 1 root root 0 Jan 31 11:50 kmsg
-r--r--r-- 1 root root 0 Jan 31 20:37 ksyms
-r--r--r-- 1 root root 0 Jan 31 11:51 loadavg
-r--r--r-- 1 root root 0 Jan 31 20:37 meminfo
-r--r--r-- 1 root root 0 Jan 31 20:37 modules
dr-xr-xr-x 2 root root 0 Jan 31 20:37 net
dr-xr-xr-x 4 root root 0 Jan 31 20:37 self
-r--r--r-- 1 root root 0 Jan 31 20:37 stat
-r--r--r-- 1 root root 0 Jan 31 20:37 uptime
-r--r--r-- 1 root root 0 Jan 31 20:37 version
$
(There will be a few extra files that don't correspond to
processes, though. The above example has been shortened.)
Note that even though it is called a filesystem, no part of
the proc filesystem touches any disk. It exists only in the
kernel's imagination. Whenever anyone tries to look at any
part of the proc 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 /proc/kcore file,
it doesn't take any disk space.
Next: Which filesystem should be
Up: Filesystems
Previous: What are filesystems?
Lars Wirzenius
Sun May 4 14:08:43 EEST 1997