| 略語 | FHS |
|---|---|
| 状態 | 公開済み |
| 開始年 | 1994年2月14日 |
| 最新バージョン | 3.0 2015年6月3日 |
| 組織 | Linux財団 |
| ドメイン | ディレクトリ構造 |
| Webサイト | 公式サイト 公式サイト(歴史) |
ファイルシステム階層標準( FHS ) は、 Unix 系システムのレイアウトに使用される規則を記述したリファレンスです。Linuxディストリビューションでの使用により普及しましたが、他の Unix 系システムでも使用されています。[1] Linux Foundationによって管理されています。最新バージョンは 3.0 で、2015 年 6 月 3 日にリリースされました。[2]
ディレクトリ構造

FHS では、すべてのファイルとディレクトリは、異なる物理デバイスまたは仮想デバイスに保存されている場合でも、ルート ディレクトリ の下に表示されます。これらのディレクトリの一部は、 X Window System/などの特定のサブシステムがインストールされている場合にのみ、特定のシステムに存在します。
これらのディレクトリのほとんどは、すべてのUnix 系オペレーティング システムに存在し、一般的にほぼ同じ方法で使用されます。ただし、ここでの説明は FHS 専用であり、Linux 以外のプラットフォームでは正式なものではありません。
FHS準拠
ほとんどのLinuxディストリビューションはファイルシステム階層標準に従っており、FHS準拠を維持するという独自のポリシーを宣言しています。[14] [15] [16] [17] GoboLinux [18]とNixOS [19]は、意図的に準拠していないファイルシステムの実装の例を示しています。
一部のディストリビューションは、一般的には標準に従っていますが、一部の領域では標準から外れています。FHS は「後続の標準」であるため、ある時点での一般的な慣行を文書化しています。もちろん、時代は変わり、ディストリビューションの目標とニーズには実験が必要です。一般的な逸脱には次のものがあります。
- 現代のLinuxディストリビューションには、仮想ファイルシステム(procfsであるsysfsに類似)
/sysとしてのディレクトリが含まれており、システムに接続されたデバイスを保存し、変更することができます。[20 ]一方、多くの従来のUnix系オペレーティングシステムでは、カーネルソースツリーへのシンボリックリンクとしてを使用します。[21]/proc/sys - 多くの最新の Unix 系システム ( FreeBSDやOpenBSDなど) では、ports システムを介してサードパーティのパッケージを にインストールしますが
/usr/local、オペレーティング システムの一部と見なされるコードは に保持されます/usr。 /lib一部のLinuxディストリビューションでは、とを区別しなくなり/usr/lib、/libにシンボリックリンクが張られるようになりました/usr/lib。[22]/bin一部のLinuxディストリビューションでは、 と/usr/bin、および と/sbinを区別しなくなりました/usr/sbin。および/binにシンボリックリンクすることがあります。 他のディストリビューションでは、4つすべてを統合してにシンボリックリンクすることを選択します。[23]/usr/bin/sbin/usr/sbin/usr/bin
最近の Linux ディストリビューションには、FHS バージョン 3.0 に従って、揮発性ランタイム データを保存する一時ファイルシステム( tmpfs/run )としてディレクトリが含まれています。FHS バージョン 2.3 によると、そのようなデータは に保存されていましたが、このディレクトリは起動初期に常に利用できるとは限らないため、場合によっては問題がありました。その結果、これらのプログラムは、デバイス ディレクトリがそのようなデータ用ではないにもかかわらず、、、などのディレクトリを使用するなどのトリックに頼らざるを得ませんでした。 [24]他の利点の中でも、これにより、ルート ファイルシステムを読み取り専用でマウントして通常どおりにシステムを使いやすくなります。たとえば、以下はDebian が2013 Wheezy リリースで行った変更です。[25]/var/run/dev/.udev/dev/.mdadm/dev/.systemd/dev/.mount
/dev/.*→/run/*/dev/shm→/run/shm/dev/shm/*→/run/*/etc/*(書き込み可能なファイル)→/run/*/lib/init/rw→/run/var/lock→/run/lock/var/run→/run/tmp→/run/tmp
歴史
の名前usr
/usrは元々「ユーザー」の略でした。[26]これは初期の Unix プログラミングの産物です。具体的には、ケン・トンプソンとデニス・リッチーがUnix を PDP-11 に移行していたとき、/bin, /lib起動時に最初にマウントされ、OS が機能するために必要なすべてのものを含まなければならない ... ディレクトリがRK05ディスク ドライブよりも大きくなっていました。そこで彼らは、2 番目の RK05 ドライブをロードするために必要なものも含めて、それらの一部を最初の RK05 に配置しました。残りは/usrディレクトリに配置されました。[27] 3 番目のドライブを入手したとき、ユーザーのファイルは という新しいディレクトリに移動されました/home。[28]
FHSはFSSTND(「ファイルシステム標準」の略[29])として作成され、主に他のUnix系オペレーティングシステムの同様の標準に基づいています。注目すべき例としては、バージョン7 Unix(1979年)のリリース以来存在するファイルシステムレイアウトのhier(7)記述[ 30 ] 、 SunOSファイルシステム(7)[32]、およびその後継のSolarisファイルシステム( 7 )[33] [34]が挙げられます。
リリース履歴
参照
注記
- ^ 歴史的に、そして厳密に標準に従うと、
/usr/localはローカル ホストに保存する必要があるデータ用です (/usrネットワーク経由でマウントできる とは対照的です)。ほとんどの場合、は標準のオペレーティング システム ディストリビューションの一部ではない/usr/localソフトウェア/データをインストールするために使用されます(このような場合、 には標準のオペレーティング システム ディストリビューションの一部であるソフトウェア/データのみが含まれます)。FHS 標準は将来、この事実上の慣例を反映するように変更される可能性があります。/usr
参考文献
- ^ 「FHS」。Linux Foundation Wiki 。 2022年1月4日閲覧。
- ^ “lsb:fhs-30 [Wiki]”. wiki.linuxfoundation.org . 2023年2月22日閲覧。
- ^ 「hier(7) - Linuxマニュアルページ」. man7.org . 2021年1月6日閲覧。
- ^ J. DeFelicc (1972 年 3 月 17 日). 「E.0」. UNIX 実装ドキュメントの暫定リリース(PDF) p. 8. IMO.1-1 . 2024 年6 月 6 日に閲覧。
- ^ 「/etc : ホスト固有のシステム構成」。ファイルシステム階層標準 2.3。2016年2 月 18 日閲覧。
- ^ Define - /etc?、投稿者 Cliff、2007 年 3 月 3 日 - Slashdot。
- ^ 「/opt : アドオンアプリケーションソフトウェアパッケージ」。ファイルシステム階層標準 2.3。2016年2 月 18 日閲覧。
- ^ 「/sys : カーネルとシステム情報の仮想ファイルシステム」。ファイルシステム階層標準 3.0。2017年6 月 4 日閲覧。
- ^ 「第4章 /usr 階層」。ファイルシステム階層標準 2.3。
- ^ 「第 4 章 /usr 階層、セクション 4.1 目的」。ファイルシステム階層標準 3.0。
- ^ "/var/run : 実行時変数データ".ファイルシステム階層標準 2.3。
- ^ 「5.13. /var/run : 実行時変数データ」。ファイルシステム階層標準 3.0。
- ^ 「ファイルシステム標準」(PDF)。Linux Foundation。p. 5.11.1。
- ^ ファイルシステム構造に関するRed Hatリファレンス ガイド。
- ^ SuSE Linux Enterprise Server Administration、Novell 公認コースウェア、Jason W. Eckert 著、Novell、Course Technology、2006 年、ISBN 1-4188-3731-8、ISBN 978-1-4188-3731-0。
- ^ FHS 準拠に関する Debianポリシー。
- ^ Ubuntu Linux ファイル システム ツリーの概要 – コミュニティ Ubuntu ドキュメント。
- ^ Hisham Muhammad (2003年5月9日). 「Unixツリーの再考:GoboLinuxの紹介」 . 2016年10月4日閲覧。
- ^ Dolstra, E.; Löh, A. (2008 年 9 月). NixOS: 純粋に機能的な Linux ディストリビューション(PDF) . ICFP 2008: 13th ACM SIGPLAN International Conference on Functional Programming. ビクトリア、ブリティッシュ コロンビア、カナダ. pp. 367–378.
- ^ 「5.3 /sys 仮想ファイルシステムについて」。docs.oracle.com。Oracle。2016年 7 月 8 日時点のオリジナルよりアーカイブ。2016 年7 月 8 日に取得。
- ^ Lehey, Greg (2003 年 5 月)。The Complete FreeBSD: Documentation from the Source (第 4 版)。O'Reilly Media, Incorporated。pp. 188、609。ISBN 9780596005160。
- ^ Allan McRae. 「Arch Linux – ニュース: /lib ディレクトリがシンボリックリンクになります」。archlinux.org。2014年9月9日時点のオリジナルよりアーカイブ。2019年12月14日閲覧。
- ^ Allan McRae. 「Arch Linux – ニュース: バイナリが /usr/bin に移動するため、更新の介入が必要」。archlinux.org 。 2014年9月10日時点のオリジナルよりアーカイブ。2019年12月15日閲覧。
- ^ Lennart Poettering (2011 年 3 月 30 日)。「この /run ディレクトリは私のシステム上で何をしているのでしょうか。また、どこから来たのでしょうか?」。devel@lists.fedoraproject.org (メーリング リスト)。
- ^ 「ReleaseGoalsRunDirectory」。Debian Wiki。
- ^ "/usr". tldp.org . 2023年12月10日閲覧。
- ^ MD McIlroy (1987). 「A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986」(PDF) . Bell Labs. CSTR 139.
- ^ Landley, Rob (2010 年 12 月 9 日). 「bin、sbin、usr/bin、usr/sbin の分割を理解する」. busybox (メーリング リスト).
- ^ 「FSSTND FAQページ」 。 2016年5月10日閲覧。
- ^ – FreeBSDその他の情報マニュアル。
- ^ – バージョン 7 Unixプログラマーズマニュアル
- ^ SunOS 4.1.3 のファイルシステム(7)のマニュアルページ、1988年1月10日付 (FreeBSD Man Pages ライブラリより)。
- ^ – Solaris 11.4標準、環境、マクロ、文字セット、およびその他のリファレンスマニュアル。
- ^ 「ファイルシステムのマニュアルページ – Solaris 10 11/06 マニュアルページ」。2007年7月4日時点のオリジナルよりアーカイブ。2011年10月15日閲覧。
- ^ 「/pub/Linux/docs/fsstnd/old/fsstnd-1.0/ のインデックス」 Ibiblio.org . 2012 年10 月 16 日閲覧。
- ^ 「/pub/Linux/docs/fsstnd/old/fsstnd-1.1/ のインデックス」 Ibiblio.org . 2012 年10 月 16 日閲覧。
- ^ 「/pub/Linux/docs/fsstnd/old/ のインデックス」 Ibiblio.org . 2012 年10 月 16 日閲覧。
- ^ 「FHS 2.0 発表」。Pathname.com。2012年10 月 16 日閲覧。
- ^ Quinlan, Daniel (2012年3月14日) [1997]、「FHS 2.0 発表」、BSD、Linux、Unix、インターネット - ケネス・R・サボリオによる研究、サンノゼ、コスタリカ: ケネス・R・サボリオ、2016年3月5日時点のオリジナルよりアーカイブ、 2016年2月18日閲覧。。
- ^ 「/pub/Linux/docs/fsstnd/ のインデックス」 Ibiblio.org . 2012 年10 月 16 日閲覧。
- ^ 「FHS 2.1 発表」。Pathname.com。2012年10 月 16 日閲覧。
- ^ 「FHS 2.1 がリリースされました」。Lists.debian.org。2000 年 4 月 13 日。2012年10 月 16 日閲覧。
- ^ Quinlan, Daniel (2000 年 4 月 12 日). 「Filesystem Hierarchy Standard – バージョン 2.1、Filesystem Hierarchy Standard Group」(PDF)。Acadia Linux チュートリアル。カナダ、ノバスコシア州ウルフビル:アカディア大学Jodrey School of Computer Science。2012年 3 月 27 日時点のオリジナル(PDF)からアーカイブ。2012年10 月 18 日閲覧。
- ^ Russell, Rusty ; Quinlan, Daniel 編 (2001 年 5 月 23 日)。「Filesystem Hierarchy Standard – バージョン 2.2 最終版 Filesystem Hierarchy Standard Group」(PDF)。Filesystem Hierarchy Standard。2016年2 月 18 日閲覧。
- ^ Russell, Rusty ; Quinlan, Daniel; Yeoh, Christopher 編 (2004 年 1 月 28 日)。「Filesystem Hierarchy Standard - Filesystem Hierarchy Standard Group」(PDF) 。2014 年11 月 29 日閲覧。
- ^ Yeoh, Christopher、Russell, Rusty、Quinlan, Daniel 編 (2015 年 3 月 19 日)。「Filesystem Hierarchy Standard」(PDF)。The Linux Foundation。2015年5 月 20 日閲覧。
