Filesystem Hierarchy Standard
| 開発者 | リナックスファウンデーション |
|---|---|
| 初版 | 1994年02月14日 |
| 最新版 | 2.3 / 2004年01月29日 |
| 公式サイト | www.linuxfoundation.org/collaborate/workgroups/lsb/fhs www.pathname.com/fhs/ (Historical) |
Filesystem Hierarchy Standard(FHS、ファイルシステム階層標準)は、Linuxと他のUNIX系オペレーティングシステムでの主なディレクトリとその内容を定めたものである。大部分において、BSD系のディレクトリ階層を基にして拡張し定式化している。
主要ソフトウェアおよびハードウェアベンダーからなる非営利組織リナックスファウンデーションが保守管理しており、HP、レッドハット、IBM、デルといったベンダーが参加している。
現行版は2.3で、2004年1月29日に発表された[1]。
目次 |
[編集] 概要
多くのLinuxディストリビューションはFHS準拠を方針として宣言し、FHSにしたがっている[2][3][4][5]。
FHSが策定されたころ、UNIXやUnix系OSには既に独自の標準が存在していた。例えば、hier(7) で示されるファイルシステムのレイアウト[6]は Version 7 Unix (1979) から存在していたし、SunOS の filesystem(7)[7]、その後継である Solaris の filesystem(5)[8] もある。
最近のLinuxディストリビューションには仮想ファイルシステムとしての /sys ディレクトリがあり(sysfs、/proc の場合はprocfs)、それを使ってシステムに接続しているデバイスの設定変更が可能である。
GoboLinux や Syllable Server といったLinuxシステムはFHSとは全く異なったファイルシステム階層を採用している。
[編集] 歴史
ファイルシステム階層の標準化は、Linuxのファイルおよびディレクトリ構造を再構成する試みとして1993年8月に始まった。FSSTND (Filesystem Standard) というLinux上のファイルシステム階層標準が 1994年2月14日にリリースされ、1994年10月9日と1995年3月28日に改版されている[9]。
1996年初頭、FSSTND をLinuxだけでなく他のUNIX系システムも含めた包括的なものとする作業が、BSD開発コミュニティからも参加者を迎えて行われた。結果としてUNIX系システムで広く問題となっていた様々な事柄を解決するために集中することとなった。そのような対象範囲の拡大過程でこの標準の名称が Filesystem Hierarchy Standard (略称 FHS)となった。
[編集] リリース履歴
| 意味 | |
|---|---|
| 赤 | 古い標準/ドラフト版; 既にサポートされていない。 |
| 黄 | 古い標準; サポート中。 |
| 緑 | 現行標準。 |
| 青 | 将来のドラフト版 |
| バージョン | リリース日 | 注釈 |
|---|---|---|
| v1.0 | 1994-02-14 | FSSTND[10] |
| v1.1 | 1994-10-09 | FSSTND[11] |
| v1.2 | 1995-03-28 | FSSTND[12] |
| v2.0 | 1997-10-26 | FHS 2.0 は FSSTND 1.2 の直接の後継。標準の名称が Filesystem Hierarchy Standard に変更された[13][14]。 |
| v2.1 | 2000-04-12 | FHS[15][16][17] |
| v2.2 | 2001-05-23 | FHS[18] |
| v2.3 | 2004-01-29 | FHS[19] |
| v3.0 | 2012-07-01 | FHS[20] |
[編集] ディレクトリ構造
物理的には別々のデバイスにあるとしても、全てのファイルとディレクトリはルートディレクトリ "/" の下に置かれる。一部のディレクトリは特定のサブシステム(X Window Systemなど)がインストールされないと作成されないことに注意されたい。
これらのディレクトリの多くはあらゆるUnix系オペレーティングシステムに存在し、だいたい同じような使われ方をしている。しかし、ここでの説明はFHS特有のものであって、Linux以外のプラットフォームにも適用可能とは言えない。
| ディレクトリ | 説明 |
|---|---|
/ |
ファイルシステム階層全体の第一階層(ルートディレクトリ) |
|
シングルユーザモードで必要となる一般ユーザー向けの基本コマンドの実行ファイル (binaries)。例えばcat、ls、cpなど。 |
|
ブートローダー (boot loader) 関連のファイル群。例えば、カーネルや initrd(初期RAMディスク)。通常は別パーティション[21]。 |
|
基本デバイス(device)。例えば、/dev/nullなど。 |
|
システム全体に関わる固有設定ファイル群。 ディレクトリ名自体の意味については議論がある。初期のベル研究所のUNIX実装文書では、/etc は単に「その他 = etcetra」のディレクトリだった[22]。そのため他のディレクトリにそぐわないファイルは何でもこのディレクトリに置いていた(ただし、FHSでは /etc を静的設定ファイル用でバイナリを置かないという制限を設けている)[23]。今では様々なディレクトリ名の後付解釈が行われており、バクロニムとして "Editable Text Configuration" や "Extended Tool Chest" と解釈する例もある[24]。 |
|
/opt/のための設定ファイル群。 |
|
X Window System, version 11 用の設定ファイル群。 |
|
SGML の設定ファイル群。 |
|
XML の設定ファイル群。 |
|
ユーザーの ホームディレクトリ (home directory) 群。セーブファイル、個人用設定など。別パーティションとすることが多い。 |
|
/bin/ や /sbin/ にある実行ファイルの基本となるライブラリ (library) 群。 |
|
CD-ROMなどのリームバブル媒体 (media) のマウントポイント(FHS-2.3 で追加) |
|
ファイルシステムの一時マウントポイント (mount) |
|
オプション (option) のアプリケーションソフトウェアパッケージのインストール用[25] |
|
カーネルやプロセス (process) の状態に関する情報を主にテキストで示す仮想ファイルシステム(例えば、実行時間やネットワークなど) 用。procfsのマウントポイント。 |
|
rootユーザのホームディレクトリ。 |
|
システム管理系コマンドの実行ファイル群(例えば、init、ip、mount)。(system binaries) |
|
システムによって提供された (served) サイト固有のデータ |
|
一時ファイル置場 (temporary files)。/var/tmp も参照されたい。リブート時に内容が保持されない。 |
|
ユーザーが共有する読み込み専用データの第二階層。大部分の(マルチ)ユーザ・ユーティリティとアプリケーションを格納する[26]。 |
|
一般ユーザ向けだが基本的ではないコマンドの実行ファイル(シングルユーザモードで必要としない)。 |
|
標準 includeファイル群 |
|
/usr/bin/ や /usr/sbin/ にある実行ファイルの基本となるライブラリ (library) 群。 |
|
基本的でないシステム実行ファイル群。例えば、各種ネットワークサービス用デーモンなど。 |
|
アーキテクチャに依存しない共有 (shared) データ |
|
ソースコード (Source code)。例えば、カーネルのソースコードとそのヘッダファイル群など。 |
|
X Window System, Version 11 Release 6 |
|
ホスト固有のローカル (local) データを格納する第三階層。通常、さらにサブディレクトリとして bin/、lib/、share/ などを持つ[27] |
|
可変 (Variable) なファイル群。内容が常に変化するようなファイル群を格納する。例えば、ログ、スプール、一時的電子メールファイルなど。別パーティションとすることもある。 |
|
アプリケーションのキャッシュデータ。時間のかかるI/Oや計算によって生成されたデータなど。従って再度生成することも可能なので、削除してもデータが失われるわけではない(時間は無駄となる可能性がある)。 |
|
状態情報。プログラムの実行によって更新された永続性データなど。例えばデータベース、パッケージングシステムのメタデータなど。 |
|
ロック(Lock)ファイル群。使用中リソースを保持するファイル。 |
|
ログ(Log)ファイル。各種ログ。 |
|
ユーザーのメールボックス(mail-box) |
|
最近のブート以降の走行中(runing)システムに関する情報。例えば現在ログイン中のユーザー、走行中のデーモンなど。 |
|
処理待ち状態のタスクのスプール(spool)。例えばプリントキュー、未読メールなど。 |
|
互換のために残された、かつてのユーザーのメールボックス(mail-box)の場所。 |
|
一時ファイル置場(Temporary files)。マルチユーザーモードではこちらの使用が推奨される。リブートで保持されない。 |
[編集] 脚注
- ^ (ANNOUNCE) FHS 2.3 Released, From: Christopher Yeoh - 2004-01-29, Email Archive: freestandards-fhs-discuss (read-only), Free Standards Group, SourceForge.net
- ^ Red Hat reference guide on file system structure
- ^ SuSE Linux Enterprise Server Administration, Novell authorized courseware, by Jason W. Eckert, Novell; Course Technology, 2006; ISBN 1-4188-3731-8, ISBN 978-1-4188-3731-0
- ^ Debian policy on FHS compliance
- ^ Ubuntu Linux File system Tree Overview - Community Ubuntu Documentation
- ^ – FreeBSD Miscellaneous Information Manual Pages (en)
- ^ SunOS 4.1.3 manual page for filesystem(7), dated 10 January 1988 (from the FreeBSD Man Pages library)
- ^ – SunOS 標準、環境、マクロ リファレンスマニュアル
- ^ The Linux Filesystem Standard, by Garrett D'Amore, Page 45-47 in Linux Journal, July 1995, Issue 15
- ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.0/
- ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.1/
- ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/old/
- ^ FHS 2.0 Announcement
- ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/
- ^ FHS 2.1 is done!
- ^ FHS 2.1 is released
- ^ Filesystem Hierarchy Standard - Version 2.1
- ^ Filesystem Hierarchy Standard - Version 2.2 final
- ^ Filesystem Hierarchy Standard
- ^ FHS The Linux Foundation
- ^ 単にブートローダーが読めるファイルシステムの種類が限られているなどの制限があるために、別パーティションにしているだけである。
- ^ J. DeFelicc (1972-03-17). “E.0”. Preliminary Release of UNIX Implementation Document. p. 8. IMO.1-1
- ^ /etc : Host-specific system configuration Filesystem Hierarchy Standard
- ^ Define - /etc?, Posted by Cliff, March 03 2007 - Slashdot
- ^ /opt : Add-on application software packages Filesystem Hierarchy Standard
- ^ リードオンリーで共有可能であるべき。cf. http://www.pathname.com/fhs/pub/fhs-2.3.html.
- ^ 歴史的にもFHS標準においても、
/usr/local/はローカルホストで格納すべきデータのためにある(/usr/がネットワークをはさんで共有可能であったのとは対照的である)。多くの場合/usr/local/はOSのディストリビューションには含まれないソフトウェアやデータをインストールするのに使われてきた(逆に言えば、/usr/には標準のOSディストリビューションに含まれるソフトウェアやデータのみを格納すべきである)。これはデファクトスタンダードだが、FHSは今のところこれを採用していない。
[編集] 関連項目
[編集] 外部リンク
- Home of the FHS standard
- Official Home of the Filesystem Hierarchy Standard (FHS), The Linux Foundation
- objectroot – オブジェクト指向設計の原理に基づいた新たなファイルシステム階層の提案
- Fortune Cookies through the /proc Filesystem