9.1 The Second
Extended File system (EXT2)
Figure 9.1: Physical Layout of
the EXT2 File system
The
Second Extended File system was devised (by Rémy Card) as an extensible and
powerful file system for Linux. It is also the most successful file system so
far in the Linux community and is the basis for all of the currently shipping
Linux distributions.
The EXT2 file system, like a lot
of the file systems, is built on the premise that the data held in files is
kept in data blocks. These data blocks are all of the same length and, although
that length can vary between different EXT2 file systems the block size of a
particular EXT2 file system is set when it is created (using mke2fs). Every file's size is rounded
up to an integral number of blocks. If the block size is 1024 bytes, then a
file of 1025 bytes will occupy two 1024 byte blocks. Unfortunately this means
that on average you waste half a block per file. Usually in computing you trade
off CPU usage for memory and disk space utilisation. In this case Linux, along
with most operating systems, trades off a relatively inefficient disk usage in
order to reduce the workload on the CPU. Not all of the blocks in the file
system hold data, some must be used to contain the information that describes
the structure of the file system. EXT2 defines the file system topology by
describing each file in the system with an inode data structure. An inode
describes which blocks the data within a file occupies as well as the access
rights of the file, the file's modification times and the type of the file.
Every file in the EXT2 file system is described by a single inode and each
inode has a single unique number identifying it. The inodes for the file system
are all kept together in inode tables. EXT2 directories are simply special
files (themselves described by inodes) which contain pointers to the inodes of
their directory entries.
Figure 9.1 shows the layout of the EXT2 file system as
occupying a series of blocks in a block structured device. So far as each file
system is concerned, block devices are just a series of blocks that can be read
and written. A file system does not need to concern itself with where on the
physical media a block should be put, that is the job of the device's driver.
Whenever a file system needs to read information or data from the block device
containing it, it requests that its supporting device driver reads an integral
number of blocks. The EXT2 file system divides the logical partition that it
occupies into Block Groups.
Each group duplicates information
critical to the integrity of the file system as well as holding real files and
directories as blocks of information and data. This duplication is neccessary
should a disaster occur and the file system need recovering. The subsections
describe in more detail the contents of each Block Group.
No comments:
Post a Comment