I thought that before we dive into the various small details, I'll reserve a few minutes for the discussion of filesystems from a general point of view.
A filesystem consists of two word - file and system.
Everyone knows the meaning of the word file - A bunch of data put
somewhere. where ? This is an important question. I, for example, usually
throw almost everything into a single drawer, and have difficulties finding
something later.
This is where the system comes in - Instead of just throwing the data
to the device, we generalize and construct a system which will
virtualize for us a nice and ordered structure in which we could arrange our
data in much the same way as books are arranged in a library. The purpose of
the filesystem, as I understand it, is to make it easy for us to update and
maintain our data.
Normally, by mounting filesystems, we just use the nice and logical
virtual structure. However, the disk knows nothing about that - The device
driver views the disk as a large continuous paper in which we can write notes
wherever we wish. It is the task of the filesystem management code to store
bookkeeping information which will serve the kernel for showing us the nice
and ordered virtual structure.
In this document, we consider one particular administrative structure - The Second Extended Filesystem.