Filesystem Hierarchy Standard
This standard assumes that the operating system underlying an
FHS-compliant file system supports the same basic security features
found in most UNIX filesystems.
It is possible to define two independent categories of files: shareable
vs. unshareable and variable vs. static. There should be a simple and
easily understandable mapping from directories to the type of data they contain: directories
may be mount points for other filesystems with different characteristics
from the filesystem on which they are mounted.
Shareable data is that which can be shared between several different
hosts; unshareable is that which must be specific to a particular host.
For example, user home directories are shareable data, but device lock
files are not.
Static data includes binaries, libraries, documentation, and anything
that does not change without system administrator intervention; variable
data is anything else that does change without system administrator
intervention.
BEGIN RATIONALE
The distinction between shareable and unshareable data is needed for
several reasons:
- In a networked environment (i.e., more than one host at a site), there
is a good deal of data that can be shared between different hosts to
save space and ease the task of maintenance.
- In a networked environment, certain files contain information specific
to a single host. Therefore these filesystems cannot be shared
(without taking special measures).
- Historical implementations of UNIX-like filesystems interspersed
shareable and unshareable data in the same hierarchy, making it
difficult to share large portions of the filesystem.
The "shareable" distinction can be used to support, for example:
- A /usr partition (or components of /usr) mounted
(read-only) through the network (using NFS).
- A /usr partition (or components of /usr) mounted from
read-only media. A CD-ROM is one copy of many identical ones
distributed to other users by the postal mail system and other methods.
It can thus be regarded as a read-only filesystem shared with other
FHS-compliant systems by some kind of "network".
The "static" versus "variable" distinction affects the filesystem in two
major ways:
- Since / contains both variable and static data, it needs to be mounted
read-write.
- Since the traditional /usr contains both variable and static data, and
since we may want to mount it read-only (see above), it is necessary to
provide a method to have /usr mounted read-only. This is done through
the creation of a /var hierarchy that is mounted read-write (or is a
part of another read-write partition, such as /), taking over much of
the /usr partition's traditional functionality.
Here is a summarizing chart. This chart is only an example for a common
FHS-compliant system, other chart layouts are possible within
FHS-compliance.
| shareable
| unshareable
|
static
| /usr
| /etc
|
| /opt
| /boot
|
variable
| /var/mail
| /var/run
|
| /var/spool/news
| /var/lock
|
Table 2.1
END RATIONALE
Previous: Conventions
Next: The Root Filesystem
Up: Table of Contents
Translated by troff2html v1.5 on 29 March 2002 by Daniel Quinlan