Linux Kernel Architecture

(Jacob Rumans) #1

The Extended Filesystem


Family


The structure and layout of the interfaces and data structures of the Virtual Filesystem discussed
in Chapter 8 define a framework within which filesystem implementations must operate. How-
ever, this does not dictate that the same ideas, approaches, and concepts must be adopted by every
filesystem when files are organized on block devices to store their contents permanently. Quite the
opposite: Linux supports a wide variety of concepts including those that are easy to implement and
understand but are not particularly powerful (e.g.,the Minix filesystem); the proven Ext2 filesystem,
which is used by millions; specific versions designed to support RAM- and ROM-based approaches;
highly available cluster filesystems; and modern, tree-based filesystems with rapid restoration of
consistency by means of transaction journals. No other operating system offers this versatility.

The techniques used differ considerably even though they can all be addressed — from both
the user and kernel sides — via an identical interface, thanks to the virtual filesystem. Because
of the large number of filesystems supported, every single implementation cannot be discussed
here — not even briefly. Instead, this chapter focuses on the extended filesystem family, that is,
the Ext2 and Ext3 filesystems. They illustrate the key concepts underlying the development of
filesystems.

9.1 Introduction


Ext3 and Ext3 can be briefly characterized as follows:

❑ TheSecond Extended Filesystem— This has been with Linux from the early days and
has proved itself as the backbone of many server and desktop systems, where it has done
a very good job. The design of the Ext2 filesystem makes use of structures very similar to
those used in the virtual filesystem, simply because it was developed with optimized inter-
operation with Linux in mind. It can be — and is — used with other operating systems,
though.

❑ TheThird Extended Filesystem— This is an evolutionary development of Ext2. It is still
mostly compatible with Ext2, but provides an extension — journaling — that is especially
Free download pdf