An operating system's file system structure is its most basic level of
organization. Almost all of the ways an operating system interacts with its
users, applications, and security model are dependent upon the way it
stores its files on a primary storage device (normally a hard disk
drive). It is crucial for a variety of reasons that users, as
well as programs at the time of installation and beyond, be able to
refer to a common guideline to know where to read and write their binary,
configuration, log, and other necessary files.
A file system can be seen in terms of two different logical
categories of files:
Shareable files are those that can be accessed by
various hosts; unshareable files are not
available to any other hosts. Variable files can
change at any time without system administrator intervention (whether
active or passive); static files, such as
documentation and binaries, do not change without an action from the
system administrator or an agent that the system administrator has
placed in motion to accomplish that task.
The reason for looking at files in this way has to do with the type of
permissions given to the directory that holds them. The way in which the
operating system and its users need to utilize the files determines the
directory where those files should be placed, whether the directory is
mounted read-only or read-write, and the level of access allowed on each
file. The top level of this organization is crucial, as the access to
the underlying directories can be restricted or security problems may
manifest themselves if the top level is left disorganized or without a
widely-utilized structure.
However, simply having a structure does not mean very much unless it is a
standard. Competing structures can actually cause more problems than
they fix. Because of this, Red Hat has chosen the the most widely-used
file system structure and extended it only slightly to accommodate
special files used within Red Hat Linux.