3.1.3.2. The file system in reality
For most users and for most common system administration tasks,
it is enough to accept that files and directories are ordered in a
tree-like structure. The computer, however, doesn't understand a
thing about trees or tree-structures.
Every partition has its own file system. By imagining all those
file systems together, we can form an idea of the tree-structure of
the entire system, but it is not as simple as that. In a file
system, a file is represented by an inode, a kind of
serial number containing information about the actual data that
makes up the file: to whom this file belongs, and where is it
located on the hard disk.
Every partition has its own set of inodes; throughout a system
with multiple partitions, files with the same inode number can
exist.
Each inode describes a data structure on the hard disk, storing
the properties of a file, including the physical location of the
file data. When a hard disk is initialized to accept data storage,
usually during the initial system installation process or when
adding extra disks to an existing system, a fixed number of inodes
per partition is created. This number will be the maximum amount of
files, of all types (including directories, special files, links
etc.) that can exist at the same time on the partition. We
typically count on having 1 inode per 2 to 8 kilobytes of
storage.
At the time a new file is created, it gets a free inode. In that
inode is the following information:
-
Owner and group owner of the file.
-
File type (regular, directory, ...)
-
Permissions on the file
Section 3.4.1
-
Date and time of creation, last read and change.
-
Date and time this information has been changed in the
inode.
-
Number of links to this file (see later in this chapter).
-
File size
-
An address defining the actual location of the file data.
The only information not included in an inode, is the file name
and directory. These are stored in the special directory files. By
comparing file names and inode numbers, the system can make up a
tree-structure that the user understands. Users can display inode
numbers using the -i option to ls. The
inodes have their own separate space on the disk.