Filesystem Hierarchy Standard
Un article de Vev.
← Version précédente | Version suivante →
The Filesystem Hierarchy Standard (FHS) defines the main directories and their contents in Linux operating systems. For the most part, it is a formalization and extension of the traditional BSD filesystem hierarchy.
The FHS is maintained by the Linux Foundation, a non-profit organization consisting of major software and hardware vendors, such as HP, Red Hat, IBM and Dell.
sourceforge.net/mailarchive/message.php?msg_id=6704992 (ANNOUNCE) FHS 2.3 Released], From: Christopher Yeoh - 2004-01-29, Email Archive: freestandards-fhs-discuss (read-only), Free Standards Group, SourceForge.net</ref>//sourceforge.net/mailarchive/message.php?msg_id=6704992 (ANNOUNCE) FHS 2.3 Released], From: Christopher Yeoh - 2004-01-29, Email Archive: freestandards-fhs-discuss (read-only), Free Standards Group, SourceForge.net</ref>
Sommaire |
Overview
www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/html/Deployment_Guide/s1-filesystem-fhs.html file system structure]</ref><ref>SuSE Linux Enterprise Server Administration, Novell authorized courseware, by Jason W. Eckert, Novell; Course Technology, 2006; ISBN 1418837318, 9781418837310</ref><ref>Debian policy on FHS compliance</ref><ref>Ubuntu Linux File system Tree Overview - Community Ubuntu Documentation</ref>//www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/html/Deployment_Guide/s1-filesystem-fhs.html file system structure]</ref><ref>SuSE Linux Enterprise Server Administration, Novell authorized courseware, by Jason W. Eckert, Novell; Course Technology, 2006; ISBN 1418837318, 9781418837310</ref><ref>Debian policy on FHS compliance</ref><ref>Ubuntu Linux File system Tree Overview - Community Ubuntu Documentation</ref>
www.freebsd.org/cgi/man.cgi?query=filesystem&manpath=SunOS+4.1.3 SunOS 4.1.3 manual page for filesystem(7)], dated 10 January 1988 (from the FreeBSD Man Pages library)</ref> later Solaris filesystem(5).<ref>Modèle:Man</ref> <ref> filesystem man page - Solaris 10 11/06 Man Pages
. Retrieved on 2011-10-15.
</ref>//www.freebsd.org/cgi/man.cgi?query=filesystem&manpath=SunOS+4.1.3 SunOS 4.1.3 manual page for filesystem(7)], dated 10 January 1988 (from the FreeBSD Man Pages library)</ref> later Solaris filesystem(5).<ref>Modèle:Man</ref> <ref> filesystem man page - Solaris 10 11/06 Man Pages
. Retrieved on 2011-10-15.
</ref>
Modern Linux distributions include a /sys
directory as a virtual filesystem (sysfs, comparable to /proc
, which is a procfs), which stores and allows modification of the devices connected to the system, whereas many traditional UNIX and Unix-like operating systems use /sys
as a symbolic link to the kernel source tree.Modèle:Citation needed
Some Linux systems such as GoboLinux and Syllable Server use a completely different approach from the FHS. Modèle:Clarify
History
garrett.damore.org/fsstnd/fsstnd.html The Linux Filesystem Standard], by Garrett D'Amore, Page 45-47 in Linux Journal, July 1995, Issue 15</ref>//garrett.damore.org/fsstnd/fsstnd.html The Linux Filesystem Standard], by Garrett D'Amore, Page 45-47 in Linux Journal, July 1995, Issue 15</ref>
In early 1996, the goal of developing a more comprehensive version of FSSTND to address not only Linux, but other Unix-like systems was adopted with the help of members of the BSD development community. As a result, a concerted effort was made to focus on issues that were general to Unix-like systems. In recognition of this widening of scope, the name of the standard was changed to Filesystem Hierarchy Standard.
Release history
Meaning | |
---|---|
Red | Old Standard/Draft; not supported |
Yellow | Old Standard; still supported |
Green | Current Standard |
Blue | Future Draft |
Version | Release Date | Notes |
---|---|---|
v1.0 | 1994-02-14
www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.0/</ref>//www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.0/</ref> | |
v1.1 | 1994-10-09
www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.0/</ref>//www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.1/</ref> | |
v1.2 | 1995-03-28
www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.0/</ref>//www.ibiblio.org/pub/Linux/docs/fsstnd/old/</ref> | |
v2.0 | 1997-10-26
www.pathname.com/fhs/announce-2.0.html</ref><ref>http://www.skytel.co.cr/linux/research/1997/1116/index.htm</ref><ref>http://www.ibiblio.org/pub/Linux/docs/fsstnd/</ref>//www.pathname.com/fhs/announce-2.0.html</ref><ref>http://www.skytel.co.cr/linux/research/1997/1116/index.htm</ref><ref>http://www.ibiblio.org/pub/Linux/docs/fsstnd/</ref> | |
v2.1 | 2000-04-12
www.pathname.com/fhs/announce-2.1.html</ref><ref> | |
v2.1 | 2000-04-12
www.pathname.com/fhs/announce-2.1.html</ref><ref>http://lists.debian.org/lsb-spec/2000/04/msg00005.html</ref><ref>http://cs.acadiau.ca/~jdiamond/Acadia-Linux-template-tutorial/resources/fhs-2.1.pdf</ref>//www.pathname.com/fhs/announce-2.1.html</ref><ref>http://lists.debian.org/lsb-spec/2000/04/msg00005.html</ref><ref>http://cs.acadiau.ca/~jdiamond/Acadia-Linux-template-tutorial/resources/fhs-2.1.pdf</ref> | |
v2.2 | 2001-05-23
www.pathname.com/fhs/announce-2.1.html</ref><ref> | |
v2.2 | 2001-05-23
www.pathname.com/fhs/announce-2.1.html</ref><ref>http://lists.debian.org/lsb-spec/2000/04/msg00005.html</ref><ref>http://cs.acadiau.ca/~jdiamond/Acadia-Linux-template-tutorial/resources/fhs-2.1.pdf</ref>//www.pathname.com/fhs/pub/fhs-2.2.pdf</ref> | |
v2.3 | 2004-01-29
www.pathname.com/fhs/announce-2.1.html</ref><ref> | |
v2.3 | 2004-01-29
www.pathname.com/fhs/announce-2.1.html</ref><ref>http://lists.debian.org/lsb-spec/2000/04/msg00005.html</ref><ref>http://cs.acadiau.ca/~jdiamond/Acadia-Linux-template-tutorial/resources/fhs-2.1.pdf</ref>//www.pathname.com/fhs/pub/fhs-2.3.pdf</ref> | |
v3.0 | TBA
www.pathname.com/fhs/announce-2.1.html</ref><ref> | |
v3.0 | TBA
www.pathname.com/fhs/announce-2.1.html</ref><ref>http://lists.debian.org/lsb-spec/2000/04/msg00005.html</ref><ref>http://cs.acadiau.ca/~jdiamond/Acadia-Linux-template-tutorial/resources/fhs-2.1.pdf</ref>//www.linuxfoundation.org/collaborate/workgroups/lsb/fhs</ref> |
Directory structure
In the FHS all files and directories appear under the root directory "/", even if they are stored on different physical devices. Note however that some of these directories may or may not be present on a Unix system depending on whether certain subsystems, such as the X Window System, are installed.
The majority of these directories exist in all UNIX operating systems and are generally used in much the same way; however, the descriptions here are those used specifically for the FHS, and are not considered authoritative for platforms other than Linux.
Directory | Description |
---|---|
/
| Primary hierarchy root and root directory of the entire file system hierarchy. |
| Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp. |
Boot loader files, e.g., kernels, initrd; often a separate partition<ref>A separate partition is generally only used when bootloaders are incapable of reading the main filesystem (e.g. SILO does not recognize XFS) or other problems not easily resolvable by users.</ref> | |
| Essential devices, e.g., /dev/null .
|
| Host-specific system-wide configuration files www.bitsavers.org/pdf/bellLabs/unix/PreliminaryUnixImplementationDocument_Jun72.pdf}}</ref> as this directory historically held everything that did not belong elsewhere (however, the FHS restricts /etc to static configuration files and may not contain binaries).<ref> |
Directory structure
In the FHS all files and directories appear under the root directory "/", even if they are stored on different physical devices. Note however that some of these directories may or may not be present on a Unix system depending on whether certain subsystems, such as the X Window System, are installed.
The majority of these directories exist in all UNIX operating systems and are generally used in much the same way; however, the descriptions here are those used specifically for the FHS, and are not considered authoritative for platforms other than Linux.
Directory | Description |
---|---|
/
| Primary hierarchy root and root directory of the entire file system hierarchy. |
| Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp. |
Boot loader files, e.g., kernels, initrd; often a separate partition<ref>A separate partition is generally only used when bootloaders are incapable of reading the main filesystem (e.g. SILO does not recognize XFS) or other problems not easily resolvable by users.</ref> | |
| Essential devices, e.g., /dev/null .
|
| Host-specific system-wide configuration files www.bitsavers.org/pdf/bellLabs/unix/PreliminaryUnixImplementationDocument_Jun72.pdf}}</ref> as this directory historically held everything that did not belong elsewhere (however, the FHS restricts /etc to static configuration files and may not contain binaries).<ref>http://www.pathname.com/fhs/pub/fhs-2.3.html#ETCHOSTSPECIFICSYSTEMCONFIGURATION</ref> Since the publication of early documentation, the directory name has been re-designated in various ways. Recent interpretations include Backronyms such as "Editable Text Configuration" or "Extended Tool Chest".<ref>Define - /etc?, Posted by Cliff, March 03 2007 - Slashdot</ref>//www.bitsavers.org/pdf/bellLabs/unix/PreliminaryUnixImplementationDocument_Jun72.pdf}}</ref> as this directory historically held everything that did not belong elsewhere (however, the FHS restricts /etc to static configuration files and may not contain binaries).<ref>http://www.pathname.com/fhs/pub/fhs-2.3.html#ETCHOSTSPECIFICSYSTEMCONFIGURATION</ref> Since the publication of early documentation, the directory name has been re-designated in various ways. Recent interpretations include Backronyms such as "Editable Text Configuration" or "Extended Tool Chest".<ref>Define - /etc?, Posted by Cliff, March 03 2007 - Slashdot</ref> |
| Configuration files for /opt/ .
|
| Configuration files for the X Window System, version 11. |
| Configuration files for SGML. |
| Configuration files for XML. |
| Users' home directories, containing saved files, personal settings, etc.; often a separate partition. |
| Libraries essential for the binaries in /bin/ and /sbin/ .
|
| Mount points for removable media such as CD-ROMs (appeared in FHS-2.3). |
| Temporarily mounted filesystems. |
www.pathname.com/fhs/pub/fhs-2.3.html#OPTADDONAPPLICATIONSOFTWAREPACKAGES</ref>//www.pathname.com/fhs/pub/fhs-2.3.html#OPTADDONAPPLICATIONSOFTWAREPACKAGES</ref> | |
| Virtual filesystem documenting kernel and process status as text files, e.g., uptime, network. In Linux, corresponds to a Procfs mount. |
| Home directory for the root user. |
| Essential system binaries, e.g., init, ip, mount. |
| Site-specific data which are served by the system. |
| Temporary files (see also /var/tmp ). Often not preserved between system reboots.
|
www.pathname.com/fhs/pub/fhs-2.3.html.</ref>//www.pathname.com/fhs/pub/fhs-2.3.html.</ref> | |
| Non-essential command binaries (not needed in single user mode); for all users. |
| Standard include files. |
| Libraries for the binaries in /usr/bin/ and /usr/sbin/ .
|
| Non-essential system binaries, e.g., daemons for various network-services. |
| Architecture-independent (shared) data. |
| Source code, e.g., the kernel source code with its header files. |
| X Window System, Version 11, Release 6. |
| Tertiary hierarchy for local data, specific to this host. Typically has further subdirectories, e.g., bin/ , lib/ , share/ .<ref>Historically and strictly according to the standard, /usr/local/ is for data that must be stored on the local host (as opposed to /usr/ , which may be mounted across a network). Most of the time /usr/local/ is used for installing software/data that are not part of the standard operating system distribution (in such case, /usr/ would only contain software/data that are part of the standard operating system distribution). It is possible that the FHS standard may in the future be changed to reflect this de-facto convention).</ref>
|
| Variable files—files whose content is expected to continually change during normal operation of the system—such as logs, spool files, and temporary e-mail files. Sometimes a separate partition. |
| Application cache data. Such data are locally generated as a result of time-consuming I/O or calculation. The application must be able to regenerate or restore the data. The cached files can be deleted without loss of data. |
| State information. Persistent data modified by programs as they run, e.g., databases, packaging system metadata, etc. |
| Lock files. Files keeping track of resources currently in use. |
| Log files. Various logs. |
| Users' mailboxes. |
| Information about the running system since last boot, e.g., currently logged-in users and running daemons. |
| Spool for tasks waiting to be processed, e.g., print queues and unread mail. |
| Deprecated location for users' mailboxes. |
| Temporary files to be preserved between reboots. |
References
External links
www.linuxfoundation.org/collaborate/workgroups/lsb/fhs Official Home of the Filesystem Hierarchy Standard (FHS)], The Linux Foundation//www.linuxfoundation.org/collaborate/workgroups/lsb/fhs Official Home of the Filesystem Hierarchy Standard (FHS)], The Linux Foundation
- www.linuxfoundation.org/collaborate/workgroups/lsb/fhs Official Home of the Filesystem Hierarchy Standard (FHS)], The Linux Foundation//refspecs.linuxfoundation.org/fhs.shtml New homepage for specs]
www.linuxfoundation.org/collaborate/workgroups/lsb/fhs Official Home of the Filesystem Hierarchy Standard (FHS)], The Linux Foundation//objectroot.org/ objectroot] – a proposal for a new filesystem hierarchy, based on object-oriented design principles www.linuxfoundation.org/collaborate/workgroups/lsb/fhs Official Home of the Filesystem Hierarchy Standard (FHS)], The Linux Foundation//www-128.ibm.com/developerworks/linux/library/l-proc.html Fortune Cookies through the /proc Filesystem] www.linuxfoundation.org/collaborate/workgroups/lsb/fhs Official Home of the Filesystem Hierarchy Standard (FHS)], The Linux Foundation//ftp2.de.freebsd.org/pub/cLIeNUX/descriptive/DSFH.html The Dotted Standard Filename Hierarchy], yet another very different hierarchy (used in cLIeNUX) (mirror)