Filesystems


Filesystems are one of the most important aspects to a running Linux system. In short, they are the components that keep track of the files, directories, symlinks and other components that make up a Linux system. Most filesystems are tied to a disk, a block device, but some are over the network only. Linux 3.0 supports many new filesystems which have been developed to support the many kinds of workloads that Linux systems can perform.


The first and most important change in Linux 3.0 is the elevation of the Fourth Extended Filesystem (“ext4”) as the default for most uses. This major revision to the previous generation (“ext3”) is faster, less subject to fragmentation, capable of supporting larger volumes, and recovers better from errors. It's difficult even to list all of the improvements that ext4 brings, but most of these will be invisible to the average Linux user. It just works.



A second major advancement in Linux 3.0 is the inclusion of FUSE, or “Filesystem In Userspace”. This technology allows Linux to be more flexible in the way that filesystems may be implemented. Now, a filesystem driver could be written as a real Linux program (instead of a kernel module) and with FUSE it will be visible just as if it was a real device. This not only makes filesystem development easier, it has opened Linux up to a whole continuum of developed mini-filesystems which would never have been acceptable for inclusion in the kernel. Linux 3.0 also includes the character-mode equivalent of FUSE: CUSE. This allows a program to implement a character device (like a keyboard or printer) in user-space instead of the kernel.


One new filesystem that has been added in Linux 3.0 is “squashfs”. This is a highly compressed read-only filesystem that is used by some live CD and rescue disk distributions to cram as much data onto a filesystem as possible.


On the network side, Linux now supports a new caching add-on for network filesystems. This allows the OS to create and manage a local on-disk cache of a remote NFS or CIFS filesystem, decreasing latency while being fully transparent to the end-user. Linux also now supports NFSv4, the fourth version of the venerable Network Filesystem as a client. However, Linux only supports running NFSv3 as a server.


Continue on to Desktop OS Compatability...