- Filesystem Hierarchy Standard
-
Filesystem Hierarchy Standard Developed by Linux Foundation Initial release February 14, 1994 Latest release 2.3 / January 29, 2004 Website www.linuxfoundation.org/collaborate/workgroups/lsb/fhs
www.pathname.com/fhs/ (Historical)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.
The current version is 2.3, announced on January 29, 2004.[1]
Contents
Overview
Most Linux distributions follow the FHS and declare it their own policy to maintain FHS compliance.[2][3][4][5]
When the FHS was created, other UNIX and Unix-like operating systems already had their own standards, notably the hier(7) description of file system layout[6] that has existed since the release of Version 7 Unix (in 1979), or the SunOS filesystem(7),[7] later Solaris filesystem(5).[8] [9]
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.[citation needed]Some Linux systems such as GoboLinux and Syllable Server use a completely different approach from the FHS.[clarification needed]
History
The process of developing a standard filesystem hierarchy began in August 1993 with an effort to restructure the file and directory structure of Linux. The FSSTND (Filesystem Standard), a filesystem hierarchy standard specific to the Linux operating system, was released on 14 February 1994. Subsequent revisions were released on 9 October 1994 and 28 March 1995.[10]
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 FSSTND[11] v1.1 1994-10-09 FSSTND[12] v1.2 1995-03-28 FSSTND[13] v2.0 1997-10-26 FHS 2.0 is the direct successor for FSSTND 1.2. Name of the standard was changed to Filesystem Hierarchy Standard.[14][15][16] v2.1 2000-04-12 FHS[17][18][19] v2.2 2001-05-23 FHS[20] v2.3 2004-01-29 FHS[21] v3.0 TBA FHS[22] 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. /bin/ Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp. /boot/ Boot loader files, e.g., kernels, initrd; often a separate partition[23] /dev/ Essential devices, e.g., /dev/null. /etc/ Host-specific system-wide configuration files
There has been controversy over the meaning of the name itself. In early versions of the UNIX Implementation Document from Bell labs, /etc is referred to as the etcetera directory,[24] 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).[25] 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".[26]
- /etc/opt/
Configuration files for /opt/. - /etc/X11/
Configuration files for the X Window System, version 11. - /etc/sgml/
Configuration files for SGML. - /etc/xml/
Configuration files for XML. /home/ Users' home directories, containing saved files, personal settings, etc.; often a separate partition. /lib/ Libraries essential for the binaries in /bin/ and /sbin/. /media/ Mount points for removable media such as CD-ROMs (appeared in FHS-2.3). /mnt/ Temporarily mounted filesystems. /opt/ Optional application software packages.[27] /proc/ Virtual filesystem documenting kernel and process status as text files, e.g., uptime, network. In Linux, corresponds to a Procfs mount. /root/ Home directory for the root user. /sbin/ Essential system binaries, e.g., init, ip, mount. /srv/ Site-specific data which is served by the system. /tmp/ Temporary files (see also /var/tmp). Often not preserved between system reboots. /usr/ Secondary hierarchy for read-only user data; contains the majority of (multi-)user utilities and applications.[28] - /usr/bin/
Non-essential command binaries (not needed in single user mode); for all users. - /usr/include/
Standard include files. - /usr/lib/
Libraries for the binaries in /usr/bin/ and /usr/sbin/. - /usr/sbin/
Non-essential system binaries, e.g., daemons for various network-services. - /usr/share/
Architecture-independent (shared) data. - /usr/src/
Source code, e.g., the kernel source code with its header files. - /usr/X11R6/
X Window System, Version 11, Release 6. - /usr/local/
Tertiary hierarchy for local data, specific to this host. Typically has further subdirectories, e.g., bin/, lib/, share/.[29] /var/ 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. - /var/cache/
Application cache data. Such data is 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 data loss - /var/lib/
State information. Persistent data modified by programs as they run, e.g., databases, packaging system metadata, etc. - /var/lock/
Lock files. Files keeping track of resources currently in use. - /var/log/
Log files. Various logs. - /var/mail/
Users' mailboxes. - /var/run/
Information about the running system since last boot, e.g., currently logged-in users and running daemons. - /var/spool/
Spool for tasks waiting to be processed, e.g., print queues and unread mail. - /var/spool/mail/
Deprecated location for users' mailboxes. - /var/tmp/
Temporary files to be preserved between reboots. Notes and references
- ^ (ANNOUNCE) FHS 2.3 Released, From: Christopher Yeoh - 2004-01-29, Email Archive: freestandards-fhs-discuss (read-only), Free Standards Group, SourceForge.net
- ^ Red Hat reference guide on file system structure
- ^ SuSE Linux Enterprise Server Administration, Novell authorized courseware, by Jason W. Eckert, Novell; Course Technology, 2006; ISBN 1418837318, 9781418837310
- ^ Debian policy on FHS compliance
- ^ Ubuntu Linux File system Tree Overview - Community Ubuntu Documentation
- ^ – FreeBSD Miscellaneous Information Manual
- ^ SunOS 4.1.3 manual page for filesystem(7), dated 10 January 1988 (from the FreeBSD Man Pages library)
- ^ – Solaris 10 Standards, Environments and Macros Reference Manual
- ^ "filesystem man page - Solaris 10 11/06 Man Pages". http://manpages.unixforum.co.uk/man-pages/unix/solaris-10-11_06/5/filesystem-man-page.html. Retrieved 2011-10-15.
- ^ The Linux Filesystem Standard, by Garrett D'Amore, Page 45-47 in Linux Journal, July 1995, Issue 15
- ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.0/
- ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.1/
- ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/old/
- ^ http://www.pathname.com/fhs/announce-2.0.html
- ^ http://www.skytel.co.cr/linux/research/1997/1116/index.htm
- ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/
- ^ http://www.pathname.com/fhs/announce-2.1.html
- ^ http://lists.debian.org/lsb-spec/2000/04/msg00005.html
- ^ http://cs.acadiau.ca/~jdiamond/Acadia-Linux-template-tutorial/resources/fhs-2.1.pdf
- ^ http://www.pathname.com/fhs/pub/fhs-2.2.pdf
- ^ http://www.pathname.com/fhs/pub/fhs-2.3.pdf
- ^ http://www.linuxfoundation.org/collaborate/workgroups/lsb/fhs
- ^ 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.
- ^ J. DeFelicc (1972-03-17). "E.0". Preliminary Release of UNIX Implementation Document. p. 8. IMO.1-1. http://www.bitsavers.org/pdf/bellLabs/unix/PreliminaryUnixImplementationDocument_Jun72.pdf.
- ^ http://www.pathname.com/fhs/pub/fhs-2.3.html#ETCHOSTSPECIFICSYSTEMCONFIGURATION
- ^ Define - /etc?, Posted by Cliff, March 03 2007 - Slashdot
- ^ http://www.pathname.com/fhs/pub/fhs-2.3.html#OPTADDONAPPLICATIONSOFTWAREPACKAGES
- ^ Should be shareable and read-only, cf. http://www.pathname.com/fhs/pub/fhs-2.3.html.
- ^ 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).
External links
- Official Home of the Filesystem Hierarchy Standard (FHS), The Linux Foundation
- Fortune Cookies through the /proc Filesystem
- The Dotted Standard Filename Hierarchy, yet another very different hierarchy (used in cLIeNUX) (mirror)
- Filesystem Hierarchy Standard 2.3 (29 January 2004)
Categories:- Computer file systems
- Computer standards
- Unix
- System administration
- File system directories
Wikimedia Foundation. 2010.