ファイルシステム階層標準

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

ファイルシステム階層標準
略語FHS
スターテス公開済み
年が始まった1994年2月14日; 28年前 (1994-02-14)
最新バージョン3.0
2015年6月3日; 6年前 (2015-06-03)
組織Linux Foundation
ドメインディレクトリ構造
Webサイト公式サイト
公式サイト(歴史的)

Filesystem Hierarchy StandardFHS)は、UNIXシステムのレイアウトに使用される規則を説明するリファレンスです。GNU / Linuxディストリビューションでの使用により人気が高まっていますが、他のUNIXバリアントでも使用されています。[1] LinuxFoundationによって保守されています。最新バージョンは3.0で、2015年6月3日にリリースされました。[2]

ディレクトリ構造

典型的なUbuntuファイルシステム階層

FHSでは、すべてのファイルとディレクトリは、異なる物理デバイスまたは仮想デバイスに保存されている場合でも、ルートディレクトリ の下に表示されます。/これらのディレクトリの一部は、X WindowSystemなどの特定のサブシステムがインストールされている場合にのみ特定のシステムに存在します。

これらのディレクトリのほとんどは、すべてのUnixライクなオペレーティングシステムに存在し、一般的にほとんど同じように使用されます。ただし、ここでの説明はFHS専用に使用されているものであり、Linux以外のプラットフォームに対して信頼できるとは見なされません。

ディレクトリ 説明
/
ファイルシステム階層全体の プライマリ階層ルートおよびルートディレクトリ。
/bin
システムの起動や修復など、シングルユーザーモードで使用できる必要のある重要なコマンドバイナリ[3]は、すべてのユーザー(catlscpなど)に適用されます。
/boot
ブートローダーファイル(カーネルinitrdなど)。
/dev
デバイス ファイル、、、、、、 /dev/null/dev/disk0/dev/sda1/dev/tty/dev/random
/etc
ホスト固有のシステム全体の構成ファイル

名前自体の意味については論争がありました。Bell labsのUNIX実装ドキュメントの初期バージョンでは、 etceteraディレクトリ/etc呼ばれています[4]。このディレクトリには、他の場所に属していないものがすべて含まれていました(ただし、FHSは静的構成ファイルに制限されており、バイナリが含まれていない場合があります)。 。[5]初期のドキュメントの公開以来、ディレクトリ名はさまざまな方法で再説明されてきました。最近の解釈には、「編集可能なテキスト構成」や「拡張ツールチェスト」などのバックロニムが含まれます。[6]/etc

/etc/opt
に保存されているアドオンパッケージの構成ファイル/opt
/etc/sgml
SGMLを処理するソフトウェアのカタログなどの構成ファイル
/etc/X11
X WindowSystemバージョン11 の構成ファイル。
/etc/xml
XMLを処理するソフトウェアのカタログなどの構成ファイル
/home
保存されたファイル、個人設定などを含む ユーザーのホームディレクトリ。
/lib
およびのバイナリ不可欠なライブラリ/bin/sbin
/lib<qual>
代替形式の必須ライブラリ。これらは通常、 32ビットおよび64ビットバージョンの命令セットをサポートするシステムなど、複数の実行可能コード形式をサポートするシステムで使用されますこのようなディレクトリはオプションですが、存在する場合はいくつかの要件があります。
/media
CD-ROMなどのリムーバブルメディアのマウントポイント(2004年にFHS-2.3に登場)。
/mnt
一時的にマウントされたファイルシステム。
/opt
アドオンアプリケーションソフトウェア パッケージ[7]
/proc
プロセスカーネルの情報をファイルとして提供する仮想ファイルシステム。Linuxでは、procfsマウントに対応します。通常、システムによって自動的に生成され、オンザフライで入力されます。
/root
rootユーザー ホームディレクトリ。
/run
実行時変数データ:前回の起動以降の実行中のシステムに関する情報。たとえば、現在ログインしているユーザーや実行中のデーモンなど。このディレクトリの下にあるファイルは、起動プロセスの開始時に削除または切り捨てる必要がありますが、このディレクトリを一時ファイルシステムtmpfs)として提供するシステムでは必要ありません。
/sbin
必須のシステムバイナリ(例:fsckinitroute)。
/srv
Webサーバーのデータとスクリプト、FTPサーバーによって提供されるデータ、バージョン管理システムのリポジトリ(2004年にFHS-2.3に表示)など、このシステムによって提供されるサイト固有のデータ。
/sys
デバイス、ドライバー、およびいくつかのカーネル機能に関する情報が含まれています。[8]
/tmp
一時ファイルのディレクトリ(も参照/var/tmp)。多くの場合、システムの再起動間で保持されず、サイズが大幅に制限される場合があります。
/usr
読み取り専用ユーザーデータの2次階層。マルチ)ユーザーユーティリティとアプリケーションの大部分が含まれています。共有可能で読み取り専用である必要があります。[9] [10]
/usr/bin
必須ではないコマンドバイナリシングルユーザーモードでは必要ありません); すべてのユーザー向け。
/usr/include
標準のインクルードファイル
/usr/lib
およびバイナリライブラリ/usr/bin/usr/sbin
/usr/lib<qual>
代替形式のライブラリ(たとえば、/usr/lib3264ビットマシン上の32ビットライブラリの場合(オプション))。
/usr/local
このホストに固有のローカルデータの3次階層。通常、さらにサブディレクトリがあります(たとえば、、、bin[NB 1]libshare
/usr/sbin
必須ではないシステムバイナリ(たとえば、さまざまなネットワークサービスのデーモン)。
/usr/share
アーキテクチャに依存しない(共有)データ。
/usr/src
ソースコード(たとえば、カーネルソースコードとそのヘッダーファイル)。
/usr/X11R6
X Window System、バージョン11、リリース6(FHS-2.3まで、オプション)。
/var
可変ファイル:ログ、スプールファイル、一時的な電子メールファイルなど、システムの通常の操作中にファイルの内容が継続的に変更されることが予想されるファイル。
/var/cache
アプリケーションキャッシュデータ。このようなデータは、時間のかかるI / Oまたは計算の結果としてローカルで生成されます。アプリケーションは、データを再生成または復元できる必要があります。キャッシュされたファイルは、データを失うことなく削除できます。
/var/lib
状態情報。プログラムの実行時にプログラムによって変更される永続データ(データベース、パッケージングシステムのメタデータなど)。
/var/lock
ファイルをロックします。現在使用中のリソースを追跡するファイル。
/var/log
ログファイル。さまざまなログ。
/var/mail
メールボックスファイル。一部のディストリビューションでは、これらのファイルは非推奨のにある場合があります/var/spool/mail
/var/opt
に格納されているアドオンパッケージからの変数データ/opt
/var/run
実行時変数データ。このディレクトリには、起動後のシステムを説明するシステム情報データが含まれています。[11]

FHS 3.0では、は;/var/runに置き換えられています。システムは、下位互換性の/runために、ディレクトリを提供し続けるか、から/var/runのシンボリックリンクを提供する必要があります。[12]/var/run/run

/var/spool
処理を待機しているタスク(印刷キューや送信メールキューなど)の スプール。
/var/spool/mail
ユーザーのメールボックスの非推奨の場所。[13]
/var/tmp
再起動の間に保持される一時ファイル。

FHSコンプライアンス

ほとんどのLinuxディストリビューションは、ファイルシステム階層標準に準拠しており、FHSコンプライアンスを維持するための独自のポリシーを宣言しています。[14] [15] [16] [17] GoboLinux [18]NixOS [19]は、意図的に非準拠のファイルシステム実装の例を示しています。

一部のディストリビューションは一般的に標準に準拠していますが、一部の領域では標準から逸脱しています。FHSは「トレーリング標準」であるため、ある時点での一般的な慣行を文書化します。もちろん、時代は変わり、配布の目標とニーズには実験が必要です。一般的な逸脱には次のものがあります。

  • 最新のLinuxディストリビューションには、仮想ファイルシステムsysfs 、 procfsであるに相当)/sysとしてディレクトリが含まれています。このディレクトリは、システムに接続されているデバイスを保存して変更できます[20]が、従来の多くのUnixライクなオペレーティングシステムはシンボリックとして使用します。カーネルソースツリーへのリンク。[21]/proc/sys
  • 多くの最新のUnixライクなシステム(ポートシステムを介したFreeBSDなど)は、サードパーティのパッケージをにインストールしますが、コードはオペレーティングシステムの一部と見なされます。/usr/local/usr
  • 一部のLinuxディストリビューションは、とを区別しなくなり/lib/usr/lib/libシンボリックリンクされてい/usr/libます。[22]
  • /bin一部のLinuxディストリビューションは、andと/usr/binandの間/sbin区別しなくなりまし/usr/sbinた。それらはとにシンボリックリンク/binする場合が/usr/binあり/sbinます/usr/sbin他のディストリビューションは、4つすべてを統合し、それらをにシンボリックリンクすることを選択します/usr/bin[23]

最新のLinuxディストリビューションには、FHSバージョン3.0に準拠した、揮発性のランタイムデータを格納する一時ファイルシステムtmpfs/run )としてディレクトリが含まれています。FHSバージョン2.3によると、このようなデータはに保存されていましたが、このディレクトリが初期起動時に常に使用できるとは限らないため、これが問題になる場合がありました。その結果、これらのプログラムは、デバイスディレクトリがそのようなデータ用ではない場合でも、、、、またはディレクトリ使用するなどのトリックに頼らざるを得ませんでした。[24]他の利点の中でも、これにより、ルートファイルシステムが読み取り専用でマウントされた状態でシステムを通常どおりに使用しやすくなります。たとえば、Debianが2013Wheezyリリースで行った変更は次のとおりです。/var/run/dev/.udev/dev/.mdadm/dev/.systemd/dev/.mount[25]

  • /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

歴史

FHSはFSSTND( "Filesystem Standard" [26]の略)として作成され、主に他のUnixライクなオペレーティングシステムの同様の標準に基づいています。注目すべき例は次のとおりです。ファイルシステムレイアウトのhier(7)記述[27]は、バージョン7 Unixのリリース(1979年)以降に存在しています。SunOS ファイルシステム(7)[28]とその後継であるSolarisファイルシステム(5)[29] [30]

リリース履歴

バージョン 発売日 ノート
Old version, no longer maintained:1.0 1994-02-14 FSSTND [31]
Old version, no longer maintained:1.1 1994-10-09 FSSTND [32]
Old version, no longer maintained:1.2 1995-03-28 FSSTND [33]
Old version, no longer maintained:2.0 1997-10-26 FHS 2.0は、FSSTND1.2の直接の後継です。標準の名前がFilesystemHierarchyStandardに変更されました。[34] [35] [36]
Old version, no longer maintained:2.1 2000-04-12 FHS [37] [38] [39]
Old version, no longer maintained:2.2 2001-05-23 FHS [40]
Older version, yet still maintained:2.3 2004-01-29 FHS [41]
Current stable version: 3.0 2015-05-18 FHS [42]
伝説:
古いバージョン
古いバージョン、まだ維持されています
最新バージョン
Latest preview version
Future release

も参照してください

メモ

  1. ^ 歴史的に、そして厳密に標準に従ってネットワークを介してマウントされるかもしれないのとは/usr/local対照的/usrほとんどの場合、標準のオペレーティングシステムディストリビューションの一部ではない/usr/localソフトウェア/データのインストールに使用されます(このような場合、標準のオペレーティングシステムディストリビューションの一部であるソフトウェア/データのみが含まれます)。FHS標準は、この事実上の規則を反映するように将来変更される可能性があります。/usr

参考文献

  1. ^ 「FHS」Linux FoundationWiki 2022年1月4日取得
  2. ^ 「FHS3.0がリリースされました」2015年6月3日。
  3. ^ "hier(7)-Linuxのマニュアルページ"man7.org 2021年1月6日取得
  4. ^ J. DeFelicc(1972年3月17日)。「E.0」。UNIX実装ドキュメント(PDF)の暫定リリース。p。8.IMO.1-1。
  5. ^ "/ etc:ホスト固有のシステム構成"ファイルシステム階層標準2.3 2016年2月18日取得
  6. ^ 定義-/ etc?、投稿者Cliff、2007年3月3日-スラッシュドット。
  7. ^ "/ opt:アドオンアプリケーションソフトウェアパッケージ"ファイルシステム階層標準2.3 2016年2月18日取得
  8. ^ "/ sys:カーネルお​​よびシステム情報仮想ファイルシステム"ファイルシステム階層標準3.0 2017年6月4日取得
  9. ^ 「第4章/ usr階層」ファイルシステム階層標準2.3
  10. ^ 「第4章/ usr階層、セクション4.1目的」ファイルシステム階層標準3.0
  11. ^ "/ var / run:実行時変数データ"ファイルシステム階層標準2.3
  12. ^ "5.13。/var/run:実行時変数データ"ファイルシステム階層標準3.0
  13. ^ 「ファイルシステム標準」(PDF)LinuxFoundation。p。5.11.1。
  14. ^ ファイルシステム構造に関するRedHatリファレンスガイド
  15. ^ SuSE Linux Enterprise Server Administration、Novell認定コースウェア、Jason W. Eckert、Novell; コーステクノロジー、2006; ISBN 1-4188-3731-8 ISBN978-1-4188-3731-0 _  
  16. ^ FHSコンプライアンスに関するDebianポリシー
  17. ^ Ubuntu Linuxファイルシステムツリーの概要 –コミュニティUbuntuドキュメント。
  18. ^ Hisham Muhammad(2003年5月9日)。「Unixツリーの再考:GoboLinuxの紹介」2016年10月4日取得
  19. ^ Dolstra、E。; Löh、A。(2008年9月)。NixOS:純粋関数型Linuxディストリビューション(PDF)ICFP 2008:関数型プログラミングに関する第13回ACMSIGPLAN国際会議ビクトリア、ブリティッシュコロンビア、カナダ。pp。367–378。
  20. ^ 「5.3 / sys仮想ファイルシステムについて」docs.oracle.comオラクル。2016年7月8日にオリジナルからアーカイブされました2016年7月8日取得
  21. ^ Lehey、Greg(2003年5月)。完全なFreeBSD:ソースからのドキュメンテーション(第4版)。O'Reilly Media、Incorporated。pp。188、609。ISBN _ 9780596005160
  22. ^ アラン・マクレー。「ArchLinux–ニュース:/ libディレクトリがシンボリックリンクになります」archlinux.org2014年9月9日にオリジナルからアーカイブされました2019年12月14日取得
  23. ^ アラン・マクレー。「ArchLinux–ニュース:バイナリは/ usr / binに移動し、更新の介入が必要です」archlinux.org2014年9月10日にオリジナルからアーカイブされました2019年12月15日取得
  24. ^ Lennart Poettering(2011年3月30日)。「この/ runディレクトリは私のシステムで何をしていて、どこから来たのですか?」[email protected](メーリングリスト)。
  25. ^ 「ReleaseGoalsRunDirectory」DebianWiki
  26. ^ 「FSSTNDFAQページ」2016年5月10日取得
  27. ^ hier(7)  –FreeBSD その他の情報マニュアル
  28. ^ 1988年1月10日付けのfilesystem(7)のSunOS 4.1.3マニュアルページ( FreeBSD Man Pagesライブラリから)。
  29. ^ filesystem(5)  –  Solaris 10標準、環境、およびマクロのリファレンスマニュアル
  30. ^ 「ファイルシステムのマニュアルページ– Solaris 1011/06のマニュアルページ」2007年7月4日にオリジナルからアーカイブされました2011年10月15日取得
  31. ^ 「/ pub / Linux / docs / fsstnd / old / fsstnd-1.0 /のインデックス」Ibiblio.org 2012年10月16日取得
  32. ^ 「/ pub / Linux / docs / fsstnd / old / fsstnd-1.1 /のインデックス」Ibiblio.org 2012年10月16日取得
  33. ^ 「/ pub / Linux / docs / fsstnd / old /のインデックス」Ibiblio.org 2012年10月16日取得
  34. ^ 「FHS2.0の発表」Pathname.com 2012年10月16日取得
  35. ^ Quinlan、Daniel(2012年3月14日)[1997]、「FHS 2.0発表」BSD、Linux、Unixおよびインターネット– Kenneth R. Saborioによる調査、コスタリカ、サンホセ:Kenneth R. Saborio、オリジナルからアーカイブ2016年3月5日、2016年2月18日取得
  36. ^ 「/ pub / Linux / docs / fsstnd /のインデックス」Ibiblio.org 2012年10月16日取得
  37. ^ 「FHS2.1の発表」Pathname.com 2012年10月16日取得
  38. ^ 「FHS2.1がリリースされました」Lists.debian.org。2000年4月13日2012年10月16日取得
  39. ^ クインラン、ダニエル(2000年4月12日)。「ファイルシステム階層標準–バージョン2.1、ファイルシステム階層標準グループ」(PDF)AcadiaLinuxチュートリアルカナダ、ノバスコシア州ウルフビル:アカディア大学ジョドリーコンピュータサイエンススクール2012年10月18日取得
  40. ^ ラッセル、さびた; クインラン、ダニエル、編 (2001年5月23日)。「ファイルシステム階層標準–バージョン2.2最終ファイルシステム階層標準グループ」(PDF)ファイルシステム階層標準2016年2月18日取得
  41. ^ ラッセル、さびた; クインラン、ダニエル; ええ、クリストファー編 (2004年1月28日)。「ファイルシステム階層標準-ファイルシステム階層標準グループ」(PDF)2014年11月29日取得
  42. ^ ええ、クリストファー; ラッセル、さびた; クインラン、ダニエル、編 (2015年3月19日)。「ファイルシステム階層標準」(PDF)LinuxFoundation 2015年5月20日取得

外部リンク