Linux—Supported File Systems
Ø One reason that Linux supports so many
file systems is because of the design of its Virtual File Systems (VFS) layer.
The VFS layer is a data abstraction layer between the kernel and the programs in
userspace that issues file system commands.
Ø The VFS layer avoids duplication of
common code between all file systems. It provides a fairly universal backward
compatible method for programs to access all of the different forms of file
support. Only one common, small API set accesses each of the file system types,
to simplify programming file system support.
Standard disk file systems
1) MINIX
i) Minix holds an important spot in Linux
history, since Torvalds was trying to make a better minix than minix. He wanted
to improve upon the 16-bit minix kernel by making a better 32-bit kernel that
did everything that minix did and more. This historical connection is the main
reason why minix file system support is available in Linux.
ii) One reason to run a minix file system
is that it has less metadata overhead than ext2, and so it is a preferable
choice for boot and rescue disks. Rescue disks made with older versions of Red
Hat Linux use a minix file system.
2) EXT2
i) ext2 has become the standard file
system for Linux. It is the next generation of the ext file system. The ext2
implementation has not changed much since it was introduced with the 1.0 kernel
back in 1993. Since then there have been a few new features added. One of these
was sparse super blocks, which increases file system performance.
ii) ext2 was designed to make it easier
for new features to be added, so that it can constantly evolve into a better
file system. Users can take advantage of new features without reformatting
their old ext2 file systems. ext2 also has the added bonus of being designed to
be POSIX compliant. New features that are still in the development phase are
access control lists, undelete, and on-the-fly compression.
iii) ext2 is flexible, can handle file
systems up to 4TB large, and supports long filenames up to 1,012 characters long. In case
user processes fill up a file system, ext2 normally
reserves about 5 percent of disk blocksfor exclusive use by root so
that root can easily recover from that situation. Modern Red Hat boot and
rescue diskettes now use ext2 instead of minix.
3) EXT3
i) The extended 3 file system is a new
file system introduced in Red Hat 7.2. ext3 provides all the features of ext2,
and also features journaling and backward compatibility with ext2. The backward
compatibility enables you to still run kernels that are only ext2 aware with
ext3 partitions.
ii) You can upgrade an ext2 file system to
an ext3 file system without losing any of your data. This upgrade can be done
during an update to Red Hat 7.2.
iii) ext3 support comes in kernels provided
with the Red Hat 7.2 distribution. If you download a kernel from somewhere
else, you need to patch the kernel to make it ext3 aware, with the kernel
patches that come from the Red Hat ftp site. It is much easier to just stick
with kernels from Red Hat.
iv) ext3’s journaling feature speeds up
the amount of time it takes to bring the file system back to a sane state if
it’s not been cleanly unmounted (that is, in the event of a power outage or a
system crash).
v) Under ext2, when a file system is uncleanly
mounted, the whole file system must be checked. This takes a long time on large
file systems. ext3 keeps a record of uncommitted file transactions and applies
only those transactions when the system is brought back up.
vi) A cleanly unmounted ext3 file system
can be mounted and used as an ext2 file system. This capability can come in
handy if you need to revert to an older kernel that is not aware of ext3. The
kernel sees the ext3 file system as an ext2 file system.
vii)ext3’s journaling feature involves a
small performance hit to maintain the file system transaction journal.
Therefore it’s recommended that you use ext3 mostly for your larger file
systems, where the ext3 journaling performance hit is made up for in time saved
by not having to run fsck on a huge ext2 file system.
4) REISERFS
i) The Reiser file system is a journaling
file system designed for fast server performance. It is more space efficient
than most other file systems, because it does not take up a minimum of one
block per file.
ii) If you write a bunch of really small
files to disk, reiserfs squeezes them all into one block instead of writing one
small file to one block like other file systems do. Reiserfs also does not have
fixed space allocation for inodes, which saves about 6 percent of your disk
space.
5) SYSTEMV
i) Linux currently provides read support
for SystemV partitions, and write support is experimental.
ii) The SystemV file system driver
currently supports AFS/EAFS/EFS, Coherent FS, SystemV/386 FS, Version 7 FS, and
Xenix file systems.
6) UFS
i) ufs is used in Solaris and early BSD
operating systems. Linux provides read support, and write support is
experimental.
7) FAT
i) FAT is one of a few different file
systems used with Windows over the years. Almost every computer user has used
FAT at one time or another, since it was the sparse base operating system at
the heart of all Windows operating systems.
ii) FAT was originally created for QDOS
and used on 360K (double density, double sided) floppy disks. Its address space
has since been extended from 12 bit to 32 bit, so it can handle very large file
systems. Nowadays it’s possible to create FAT file systems over a terabyte in
size.
8) NTFS
i) NTFS is the next generation of HPFS.
It comes with all business versions of Microsoft operating systems beginning with
Windows NT.
ii) Unlike FAT, it is a b-tree file
system, meaning it has a performance and reliability advantage over FAT.
9) HPFS
i) The High Performance File System first
came with OS/2 Version 1 created by Microsoft. It’s the standard OS/2 file
system.
ii) Since OS/2 usage has dropped off
significantly, HPFS has become a relatively uncommon file system.
10) +HFS
i) The Hierarchical File System is used
with older versions of Mac OS. Macintosh-formatted files have two parts to
them: a data fork and a resource fork.
ii) The resource fork contains Macintosh
operating system-specific information such as dialog boxes and menu items. The
data fork contains the meat of the file data. The data fork is readable by
Unix.
iii) Linux to Macintosh file conversion
tools are available bundled in the macutils package. The tools included in that
package are: macunpack, hexbin, macsave, macstream, binhex, tomac, and frommac.
See the previous section called “Important File System Commands” to read more
about these tools.
No comments:
Post a Comment