表 FHS2.3で規定する13個の必須ディレクトリ
表 FHS2.3で規定する13個の必須ディレクトリ
[画像のクリックで拡大表示]

 FHS(Filesystem Hierarchy Standard)とは,Linuxを含むUNIX系OSの標準的なディレクトリ構造およびファイル配置,名前などを定めた標準仕様です。Linuxディストリビューション間の差異をできるだけなくす目的で作られた「Linux Standard Base」(LSB)という開発ガイドラインの一部として仕様が策定されています。2009年2月末現在のFHSの最新バージョンは「2.3」で,2004年1月に公開されたものです。

 それにしても,なぜディレクトリ構造やファイル配置などで標準仕様を定めなければならないのでしょうか。OSやディストリビューションごとに独自の哲学に基づいて作った方が個性があっていいのにと考えたりする人もいるかもしれません。しかし,特にアプリケーションの開発をしたり,システムの管理や運用に少しでも関わる立場の人からすると,そんなところには個性など一切ない方が都合が良いのです。

 ワープロや表計算ソフトで作った文書ファイルをセーブするとき,あなたはどんなファイル名を付けて保存するでしょうか。ファイルの中身に関連する名前を付けたり,日付を基にしたり,単純に連番を振ったり,あるいはその日のフィーリングで決めたりと,人によってバラバラでしょう。でも,こうした個人的なファイルを保存する分には,どんな名前を付けても誰も困りません。せいぜい整理が付かなくなって自分が困るだけです。

 一方,OSの場合は,例えば「コマンド」や「共有ライブラリ」,「設定ファイル」などシステムを使ううえで重要なファイルがあり,それらが決まった場所に置かれていないと,いざ使おうとしたときにファイルを探し回る羽目になって困ってしまいます。ディレクトリ名が違うだけならまだマシで,ファイル名まで異なると,Aというシステムと,Bというシステムで同じ役割を持つファイルはどれかを突き合わせるところから始めなければなりません。

 そんな悲劇をできる限り避けられるようにしようと,FHSでは標準的なディレクトリ名やファイル名配置を規定しているわけです。具体的には,<表>に示すようなルート(/)直下の13個の必須ディレクトリについて,それぞれの役割や格納すべきファイルなどを細かく定めています。なお,これらシステムに必須のディレクトリやファイル以外についても,オプション扱いで規定しています。より詳しく知りたい場合は,こちらからFHS2.3の仕様書を入手できます。

 実際のLinuxディストリビューションは,必ずしもFHS2.3の仕様に準拠しているとは限りません。FHS2.3はあくまでも「推奨仕様」であり,義務ではないからです。とはいうものの,少なくとも最近の主要なディストリビューションであれば,少なくとも表に示した必須ディレクトリはまず間違いなく持っており,そのうえで独自のディレクトリやファイルを追加するという形をとっています。