A filesystem organizes a collection of files
and directories that are stored on
one partition of a disk.
Every filesystem storage volume (for example, a hard disk)
has a common format for certain vital information.
Every such volume is divided into a certain number of blocks.
The filesystem architectures are specified
in files in the </usr/include/sys/fs> directory.
The supported filesystems and their corresponding include files are:
S51K (UNIX filesystem),
HTFS (High Throughput Filesystem),
EAFS (Enhanced ACER Fast Filesystem)
and AFS (ACER Fast Filesystem)
The internal structure of a filesystem contains
these major sections:
A special data block that contains global information about the filesystem.
The super block resides in the beginning of logical block 1 of
every filesystem (block 0 is unused and available to contain
a bootstrap program or other information).
It contains information like
the filesystem architecture being used
(for example, s_type),
the size of the inode array (for example, s_isize),
the list of available blocks (for example, s_free),
and the list of available inodes (for example, s_inode).
It also contains some status information.
A separate inode is assigned for each file and
directory in the filesystem and contains
control and status information as well as
pointers to the data blocks that are used to
hold the data for that file or directory. The
inodes are usually obtained from an array of
available inodes (the ilist) and are
referenced by an index into that array
(called an inumber). For the format of an
data storage blocks
Storage for the data in the files and directories
that are part of the filesystem.
These are referenced by number
and maintained through the inodes
of the files that use them.