Filesystem Hierarchy Standard

ファイルシステム階層標準(FHS)とは



ファイルシステム階層標準(Filesystem Hierarchy Standard、FHS)は、Linuxを含むUnix系オペレーティングシステム(OS)における、主要なディレクトリとその内容を定めた規約です。この標準は、主にBSD系のディレクトリ階層を基に拡張・定式化されたもので、ファイルシステムの構造における一貫性と整合性を目指しています。

FHSは、主要なソフトウェアおよびハードウェアベンダーが参加する非営利団体であるLinux Foundationによって保守・管理されています。参加ベンダーには、HP、レッドハットIBMデルなどが含まれています。

2020年11月時点での最新版はバージョン3.0で、2015年6月3日に発表されました。

FHSの概要



多くのLinuxディストリビューションは、FHSへの準拠を基本方針としています。Unix系OSでは、/etc、/bin、/usrなどの基本的なディレクトリについては共通の慣習がありましたが、それ以外は開発元ごとの仕様や、プロプライエタリなバイナリにハードコードされている場合などもあり、変則的な環境での運用は困難でした。FHSは、このような問題点を解決し、ファイルシステム構造の標準化を図ることを目的としています。

例えば、Version 7 Unix(1979)にはhier(7)で示されるファイルシステムレイアウトがあり、SunOSのfilesystem(7)やSolarisのfilesystem(5)も同様の役割を果たしていました。しかし、これらのシステム間で完全な互換性があるわけではありませんでした。

近年では、Linuxディストリビューションに仮想ファイルシステムとして/sysディレクトリ(sysfs)が導入され、/procディレクトリ(procfs)と共にシステムのデバイス設定を動的に変更できるようになりました。

しかし、Gobo[[Linux]]やSyllable Serverといった一部のLinuxシステムでは、FHSとは全く異なるファイルシステム階層を採用しており、FHSに依存しないシステムも存在します。

FHSの歴史



ファイルシステム階層の標準化の試みは、1993年8月にLinuxのファイルおよびディレクトリ構造を整理する取り組みとして始まりました。1994年2月14日にはFSSTND(Filesystem Standard)というLinux上のファイルシステム階層標準がリリースされ、その後、1994年10月9日と1995年3月28日に改訂されました。

1996年初頭には、FSSTNDをLinuxだけでなく、他のUnix系システムにも適用できる包括的な標準とするための作業が開始されました。BSD開発コミュニティからも参加者を迎え、Unix系システム全体で共通して問題となっていた様々な課題の解決を目指しました。この過程で、標準の名称がFilesystem Hierarchy Standard(FHS)に変更されました。

リリース履歴



FSSTND (1994年2月14日)
FSSTND 改訂 (1994年10月9日)
FSSTND 改訂 (1995年3月28日)
FHS (1996年初頭以降)
FHS 3.0 (2015年6月3日)

ディレクトリ構造



FHSでは、全てのファイルとディレクトリは、物理的に別々のデバイスに存在する場合でも、ルートディレクトリ(/)の下に配置されると規定しています。一部のディレクトリは、特定のサブシステム(X Window Systemなど)がインストールされないと作成されないことに注意が必要です。

これらのディレクトリの多くは、Unix系OSに共通して存在し、類似した使われ方をしていますが、FHSにおける説明はFHS固有のものであり、Linux以外のプラットフォームに必ずしも適用できるわけではありません。

主要なディレクトリ



/bin: ユーザーが利用する基本的な実行ファイル(コマンド)。
/boot: ブートローダーに関連するファイル。
/dev: デバイスファイル。
/etc: システム全体の設定ファイル。
/home: ユーザーのホームディレクトリ
/lib: 共有ライブラリ
/media: 取り外し可能なメディアのマウントポイント。
/mnt: 一時的なマウントポイント。
/opt: オプションのアプリケーションソフトウェア
/proc: プロセスカーネルに関する情報を提供する仮想ファイルシステム
/root: rootユーザーのホームディレクトリ
/sbin: システム管理用の実行ファイル
/srv: システムが提供するサービスに関するデータ。
/sys: カーネルが管理するデバイス情報を提供する仮想ファイルシステム
/tmp: 一時ファイル。
/usr: ユーザー向けの実行ファイルライブラリ、ドキュメントなど。
/var: 可変データ(ログファイル、スプールなど)。

まとめ



FHSは、Unix系OSにおけるファイルシステム構造の標準化を推進し、ディストリビューション間の互換性と一貫性を高める上で重要な役割を果たしています。LinuxディストリビューションはFHSに準拠することで、より安定したシステム運用を可能にしています。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。