Chapter 20. File System Hierarchy

An LSB conforming implementation must adhere to the FHS 2.2.

An LSB conforming application is recommended to follow the FHS 2.2. If it does not follow the FHS 2.2 it should include documentation of the differences.

The FHS allows many components or subsystems to be optional. An application must check for the existence of an optional component before using it, and should behave in a reasonable manner if the optional component is not present.

The FHS requirement to locate the operating system kernel in either / or /boot does not apply if the operating system kernel does not exist as a file in the filesystem.

The FHS specifies certain behaviors for a variety of commands if they are present (for example, ping or python). However, LSB applications must not rely on any commands beyond those specified by the LSB. The mere existence of a command must not be used as an indication that the command behaves in any particular way.

The following directories or links need not be present: /etc/X11 /usr/bin/X11 /usr/lib/X11


The following must exist under /dev. Other devices may also exist in /dev. Device names may exist as symbolic links to other device nodes located in /dev or subdirectories of /dev. There is no requirement concerning major/minor number values.


All data written to this device is discarded. A read from this device will return an EOF condition.


This device is a source of zeroed out data. All data written to this device is discarded. A read from this device will return as many bytes containing the value zero as was requested.


This device is a synonym for the controlling terminal of a process. Once this device is opened, all reads and writes will behave as if the actual controlling terminal device had been opened.