Filesystem Hierarchy Standard

Filesystem Hierarchy Standard（ファイルシステム・ハイアラーキー・スタンダード、FHS、ファイルシステム階層標準）は、Linuxを含むUnix系オペレーティングシステム (OS) での主なディレクトリとその内容を定めたものである。大部分において、BSD系のディレクトリ階層を基にして拡張し定式化している。 主要ソフトウェアおよびハードウェアベンダーからなる非営利組織Linux Foundationが保守管理しており、HP、レッドハット、IBM、デルといったベンダーが参加している。 2020年11月 (2020-11)現在[update]の最新版は3.0で、2015年6月3日に発表された。 多くのLinuxディストリビューションはFHS準拠を方針として宣言し、FHSにしたがっている。 もともと、UNIXやUnix系OSには、/etcや/binや/usrなどごく基本的な部分においてはほぼ共通である他は、緩い慣習と、それぞれの主要な開発元によるもう少し強い（たとえば、プロプライエタリなバイナリのみが提供されるプログラムの中にハードコードされているなどといったことがあると、変則的な環境での運用は面倒である）仕様などがあった。例えば、hier(7)で示されるファイルシステムのレイアウトはVersion 7 Unix（1979）から存在し、その他にはSunOSのfilesystem(7)、その後継であるSolarisのfilesystem(5)もある。 最近のLinuxディストリビューションには仮想ファイルシステムとしての/sysディレクトリがあり（sysfs、/procの場合はprocfs）、それを使ってシステムに接続しているデバイスの設定変更が可能である。 GoboLinuxやSyllable ServerといったLinuxシステムはFHSとは全く異なったファイルシステム階層を採用している。 ファイルシステム階層の標準化は、Linuxのファイルおよびディレクトリ構造を再構成する試みとして1993年8月に始まった。FSSTND（Filesystem Standard）というLinux上のファイルシステム階層標準が 1994年2月14日にリリースされ、1994年10月9日と1995年3月28日に改版されている。 1996年初頭、FSSTNDをLinuxだけでなく他のUnix系システムも含めた包括的なものとする作業が、BSD開発コミュニティからも参加者を迎えて行われた。結果としてUnix系システムで広く問題となっていた様々な事柄を解決するために集中することとなった。そのような対象範囲の拡大過程でこの標準の名称がFilesystem Hierarchy Standard（略称：FHS）となった。 物理的には別々のデバイスにあるとしても、全てのファイルとディレクトリはルートディレクトリ（/）の下に置かれる。一部のディレクトリは特定のサブシステム（X Window Systemなど）がインストールされないと作成されないことに注意する必要がある。 これらのディレクトリの多くはあらゆるUnix系オペレーティングシステムに存在し、だいたい同じような使われ方をしている。しかし、ここでの説明はFHS特有のものであって、Linux以外のプラットフォームにも適用可能とは言えない。 ^ “FHS 3.0 Released” (June 3, 2015). 2016年4月14日閲覧。 ^ 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 1-4188-3731-8, ISBN 978-1-4188-3731-0 ^ Debian policy on FHS compliance ^ Ubuntu Linux File system Tree Overview - Community Ubuntu Documentation ^ hier(7) – FreeBSD Miscellaneous Information Manual Pages (en) ^ SunOS 4.1.3 manual page for filesystem(7), dated 10 January 1988 (from the FreeBSD Man Pages library) ^ filesystem(5) – Solaris11.4マニュアルページ「ユーザーコマンド」章（日本語） ^ 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/ ^ FHS 2.0 Announcement ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/ ^ FHS 2.1 is done! ^ FHS 2.1 is released ^ Filesystem Hierarchy Standard - Version 2.1 ^ Filesystem Hierarchy Standard - Version 2.2 final ^ Filesystem Hierarchy Standard ^ “Filesystem Hierarchy Standard”. The Linux Foundation (19 March 2015). 2015年5月20日閲覧。 ^ ブートローダが非対応のパーティション（例:GRUBを使用する場合のF2FS）や、BIOSに容量の壁がある場合など ^ 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  ^ /etc : Host-specific system configuration Filesystem Hierarchy Standard ^ Define - /etc?, Posted by Cliff, March 03 2007 - Slashdot ^ a b c d e https://www.pathname.com/fhs/pub/fhs-2.3.html#OPTADDONAPPLICATIONSOFTWAREPACKAGES ^ “/sys : Kernel and system information virtual filesystem”. Filesystem Hierarchy Standard 3.0. 4 June 2017閲覧。 ^ https://www.pathname.com/fhs/pub/fhs-2.3.html#TMPTEMPORARYFILES ^ a b https://www.itmedia.co.jp/help/tips/linux/l0609.html ^ 例えば、複数のディスクレスワークステーションがファイルサーバの同一のディレクトリツリーを共有する、といった運用が想定されている。 ^ “unix/PreliminaryUnixImplementationDocument_Jun72.pdf at a090f614e4b7e68dcb0eeaa0a71abcbb2bc15cd4 · qrush/unix” (英語). GitHub. Preliminary Release of UNIX Implementation Document (14 Sep 1972). 2023年7月8日閲覧。 “/ user directory […] Section E.0 Page 9” ^ 1972年9月の日付があるベル研の内部資料（「PreliminaryUnixImplementationDocument_Jun72.pdf」というファイル名でネットに流通している）の中にあるソースコード中にあるファイルシステムの雛形を作るためのデータ記述のコメント（資料の14枚目先頭部）に「user directory」とあるので、本来は「USeR」の略であったことは確かである。 ^ この説の広まった経路は不明である。1980年代の情報が由来である一例としては『UNIX 用語 由来/読み方辞書』に “米国のユーザグループ UniForum が発行している機関誌 CommUNIXations(May/ June 1989) からの転載ということで、 JUS の /etc/wall No.8/1990/May に載っていた 「UNIX Trivia -- UNIX に関するクイズ100問」によると” として「"User Services and Routines" の略」という説が載せられている。UNIXではなく、RT-11のマニュアルに「User Service Routine (USR)」とあるため、それとの混同の可能性が指摘されている（ http://blog.bitmeister.jp/?p=2516 ）。 ^ 歴史的にもFHS標準においても、/usr/local/ はローカルホストで格納すべきデータのためにある（/usr/がネットワークをはさんで共有可能であったのとは対照的である）。多くの場合 /usr/local/ はOSのディストリビューションには含まれないソフトウェアやデータをインストールするのに使われてきた（逆に言えば、/usr/ には標準のOSディストリビューションに含まれるソフトウェアやデータのみを格納すべきである）。これはデファクトスタンダードだが、FHSは今のところこれを採用していない。 ^ “/usr/local”. 2020年12月24日閲覧。 ^ “No other directories, except those listed below, may be in /usr/local after first installing a FHS-compliant system.”. 2020年12月24日閲覧。 ^ 5.13. /var/run : Run-time variable data ^ https://www.pathname.com/fhs/pub/fhs-2.3.html#VARTMPTEMPORARYFILESPRESERVEDBETWEE Linux Standard Base lsb:fhs [Wiki] at The Linux Foundation FHS Referenced Specifications Home of the FHS standard – FHSの旧ウェブサイト objectroot – オブジェクト指向設計の原理に基づいた新たなファイルシステム階層の提案 Fortune Cookies through the /proc Filesystem