hier(7)
と file-hierarchy(7)
の両方のmanページは、従来のファイルシステム階層を説明していると主張しています。ただし、それらの間にはいくつかの違いがあります。たとえば、hier(7)
は_/opt
_および_/var/crash
_を記述しますが、file-hierarchy(7)
は記述しません。これら2つの説明の違いは何ですか。実際のLinuxシステムはどちらを使用しますか?
hier
のマニュアルページには、1979年のUnix Seventh Editionにさかのぼる長い歴史があります。Linuxオペレーティングシステムにあるものは、元のUnixのものではなく、クローンです。
世紀の変わり目に、 FreeBSDの人々は既存の長年の慣行を文書化しました 、つまり、システム管理者は自分のシステムに合わせて調整し、優れたシステム管理者はローカルの調整に合わせてそのマニュアルページを変更します。
もちろん、Linuxオペレーティングシステムはdocoに関しては悪名高いです。 hier
のマニュアルページが調整されている場合でも、ディストリビューションのメンテナによって実際のオペレーティングシステムに完全に調整されることはほとんどありません。たとえば、Debianはまったくパッチを適用せず、単に Michael KerriskのLinux Manpages Projectの基になる一般的なhier
マニュアルページ 現状のまま提供します。
(BSDは一般に、オペレーティングシステムに変更を加える人々の伝統がはるかに強く、そのdocoの変更も含まれています。結果として、そのdocoの方が優れています。しかし、それ自体は、いくつかの領域ではまだかなり古くなっています。例: ul
コマンドのFreeBSDマニュアルには、2.9BSD以降、ツールの大部分が欠落しています 。)
だから Lennart Poetteringが書きました 2014年にsystemdの彼自身のマニュアルページ、file-hierarchy
、ご覧のように、それは本当にではありませんhier
ページよりも「最小限」。手始めに、それはユーザーのホームディレクトリに関する多くの追加事項を文書化します。
したがって、2つの異なる人々のセットからの2つの異なるマニュアルページがあり、実際にこれを決定するのはディストリビューションのメンテナ自身ではありません。
単純な真実は、実際のLinuxベースのオペレーティングシステムはどちらにも準拠していないということです。ディストリビューションのメンテナーがfile-hierarchy
ページにパッチを適用しないバニラsystemdからのディストリビューションのバリエーションがあります。また、前述のように、hier
ページにもローカルでパッチが適用されないことがよくあります。
さらに、Linux Filesystem Hierarchy Standardに準拠していません。意図的にそれから逸脱するいくつかのオペレーティングシステム、およびそれらのいくつかはこれを文書化します。 GoboLinuxなど、一部のLinuxオペレーティングシステムは意図的にそれをまったく参照しません。後で読むとわかるように、Arch Linuxは以前はそれを参照していましたが、それ以降それを削除しました。
(私は厳密な調査をしていませんが、Arch Linuxが[〜#〜] fhs [〜#〜]をドロップすることが転換点であることを強く疑っています。 [〜#〜] fhs [〜#〜]の順守は、Linuxオペレーティングシステムの標準ではなく、例外です。)
多くのLinuxオペレーティングシステムでは、このための単一のマニュアルページはありません。実際のオペレーティングシステムは、hier
、file-hierarchy
、Linux Filesystem Hierarchy Standard、およびドキュメントの程度が異なる個々のオペレーティングシステムの規範の混合です。 。
hier(7)
は man-pagesプロジェクト から派生し、 Filesystem Hierarchy Standard を反映することになっています。
file-hierarchy(7)
は systemd から取得され、
は、systemdがファイルシステム階層に対して行う提案と制限をより厳密に定義する、これらの仕様のより最小限の最新化されたサブセットについて説明しています。
特に、後者は各ファイルシステムの使用と制約をより詳細に説明します。ホストに対してローカルであるか共有できるか、永続的であるかtmpfs
- backedであるか、プログラムがどのように検索するかそれなど.
実際のLinuxシステムにはそれぞれ独自のファイルシステムポリシーがあり、通常は厳密にFHSに基づいています。たとえば、 Debianのポリシー は、FHSのバージョン3.0に基づいていますが、いくつかの例外があります。 systemdを使用するディストリビューション(現在、ほとんどの非組み込みディストリビューションが含まれています)は、実際にはsystemdの要件に従っています。