Filesystem Hierarchy Standard

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Filesystem Hierarchy Standard
開発者 Linux Foundation
初版 1994年02月14日(20年前) (1994-02-14
最新版 2.3 / 2004年01月29日(10年前) (2004-01-29
公式サイト www.linuxfoundation.org/collaborate/workgroups/lsb/fhs
www.pathname.com/fhs/ (Historical)
テンプレートを表示

Filesystem Hierarchy Standard(FHS、ファイルシステム階層標準)は、Linuxと他のUNIXオペレーティングシステムでの主なディレクトリとその内容を定めたものである。大部分において、BSD系のディレクトリ階層を基にして拡張し定式化している。

主要ソフトウェアおよびハードウェアベンダーからなる非営利組織Linux Foundationが保守管理しており、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) から存在していたし、SunOSfilesystem(7)[7]、その後継である Solarisfilesystem(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 Draft 1 FHS[20]

ディレクトリ構造[編集]

物理的には別々のデバイスにあるとしても、全てのファイルとディレクトリルートディレクトリ "/" の下に置かれる。一部のディレクトリは特定のサブシステム(X Window Systemなど)がインストールされないと作成されないことに注意されたい。

これらのディレクトリの多くはあらゆるUnix系オペレーティングシステムに存在し、だいたい同じような使われ方をしている。しかし、ここでの説明はFHS特有のものであって、Linux以外のプラットフォームにも適用可能とは言えない。

ディレクトリ 説明
/ ファイルシステム階層全体の第一階層(ルートディレクトリ)
/bin
シングルユーザモード英語版で必要となる一般ユーザー向けの基本コマンドの実行ファイル (binaries)。例えばcatlscpなど。
/boot
ブートローダー (boot loader) 関連のファイル群。例えば、カーネルinitrd(初期RAMディスク)。通常は別パーティション[21]
/dev
基本デバイス(device)。例えば、/dev/nullなど
/etc
システム全体に関わる固有設定ファイル群。

ディレクトリ名自体の意味については議論がある。初期のベル研究所のUNIX実装文書では、/etc は単に「その他 = etcetra」のディレクトリだった[22]。そのため他のディレクトリにそぐわないファイルは何でもこのディレクトリに置いていた(ただし、FHSでは /etc を静的設定ファイル用でバイナリを置かないという制限を設けている)[23]。今では様々なディレクトリ名の後付解釈が行われており、バクロニムとして "Editable Text Configuration" や "Extended Tool Chest" と解釈する例もある[24]

/etc/opt
/opt/のための設定ファイル群。
/etc/X11
X Window System, version 11 用の設定ファイル群。
/etc/sgml
SGML の設定ファイル群。
/etc/xml
XML の設定ファイル群。
/home
ユーザーの ホームディレクトリ (home directory) 群。セーブファイル、個人用設定など。別パーティションとすることが多い。
/lib
/bin//sbin/ にある実行ファイルの基本となるライブラリ (library) 群。
/media
CD-ROMなどのリームバブル媒体 (media) のマウントポイント(FHS-2.3 で追加)
/mnt
ファイルシステムの一時マウントポイント (mount)
/opt
オプション (option) のアプリケーションソフトウェアパッケージのインストール用[25]
/proc
カーネルプロセス (process) の状態に関する情報を主にテキストで示す仮想ファイルシステム(例えば、実行時間やネットワークなど) 用。procfsのマウントポイント。
/root
rootユーザのホームディレクトリ
/sbin
システム管理系コマンドの実行ファイル群(例えば、init、ip、mount)。(system binaries)
/srv
システムによって提供された (served) サイト固有のデータ
/tmp
一時ファイル置場 (temporary files)。/var/tmp も参照されたい。リブート時に内容が保持されない。
/usr
User Services and Routines の略で、ユーザーが共有する読み込み専用データの第二階層。大部分の(マルチ)ユーザ・ユーティリティとアプリケーションを格納する[26]
/usr/bin
一般ユーザ向けだが基本的ではないコマンドの実行ファイルシングルユーザモード英語版で必要としない)。
/usr/include
標準 includeファイル
/usr/lib
/usr/bin//usr/sbin/ にある実行ファイルの基本となるライブラリ (library) 群。
/usr/sbin
基本的でないシステム実行ファイル群。例えば、各種ネットワークサービス用デーモンなど。
/usr/share
アーキテクチャに依存しない共有 (shared) データ
/usr/src
ソースコード (Source code)。例えば、カーネルのソースコードとそのヘッダファイル群など。
/usr/X11R6
X Window System, Version 11 Release 6
/usr/local
ホスト固有のローカル (local) データを格納する第三階層。通常、さらにサブディレクトリとして bin/lib/share/ などを持つ[27]
/var
可変 (Variable) なファイル群。内容が常に変化するようなファイル群を格納する。例えば、ログ、スプール、一時的電子メールファイルなど。別パーティションとすることもある。
/var/cache
アプリケーションのキャッシュデータ。時間のかかるI/Oや計算によって生成されたデータなど。従って再度生成することも可能なので、削除してもデータが失われるわけではない(時間は無駄となる可能性がある)。
/var/lib
状態情報。プログラムの実行によって更新された永続性データなど。例えばデータベース、パッケージングシステムのメタデータなど。
/var/lock
ロック(Lock)ファイル群。使用中リソースを保持するファイル。
/var/log
ログ(Log)ファイル。各種ログ。
/var/mail
ユーザーのメールボックス(mail-box)
/var/run
最近のブート以降の走行中(runing)システムに関する情報。例えば現在ログイン中のユーザー、走行中のデーモンなど。
/var/spool
処理待ち状態のタスクのスプール(spool)。例えばプリントキュー、未読メールなど。
/var/spool/mail
互換のために残された、かつてのユーザーのメールボックス(mail-box)の場所。
/var/tmp
一時ファイル置場(Temporary files)。 /tmp と異なり、リブートしても内容が失われることはない。

脚注[編集]

  1. ^ (ANNOUNCE) FHS 2.3 Released, From: Christopher Yeoh - 2004-01-29, Email Archive: freestandards-fhs-discuss (read-only), Free Standards Group, SourceForge.net
  2. ^ Red Hat reference guide on file system structure
  3. ^ 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
  4. ^ Debian policy on FHS compliance
  5. ^ Ubuntu Linux File system Tree Overview - Community Ubuntu Documentation
  6. ^ hier(7) – FreeBSD Miscellaneous Information Manual Pages (en)
  7. ^ SunOS 4.1.3 manual page for filesystem(7), dated 10 January 1988 (from the FreeBSD Man Pages library)
  8. ^ filesystem(5) – SunOS 標準、環境、マクロ リファレンスマニュアル
  9. ^ The Linux Filesystem Standard, by Garrett D'Amore, Page 45-47 in Linux Journal, July 1995, Issue 15
  10. ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.0/
  11. ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/old/fsstnd-1.1/
  12. ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/old/
  13. ^ FHS 2.0 Announcement
  14. ^ http://www.ibiblio.org/pub/Linux/docs/fsstnd/
  15. ^ FHS 2.1 is done!
  16. ^ FHS 2.1 is released
  17. ^ Filesystem Hierarchy Standard - Version 2.1
  18. ^ Filesystem Hierarchy Standard - Version 2.2 final
  19. ^ Filesystem Hierarchy Standard
  20. ^ FHS The Linux Foundation
  21. ^ 単にブートローダーが読めるファイルシステムの種類が限られているなどの制限があるために、別パーティションにしているだけである。
  22. ^ J. DeFelicc (1972-03-17). “E.0”. Preliminary Release of UNIX Implementation Document. p. 8. IMO.1-1. http://www.bitsavers.org/pdf/bellLabs/unix/PreliminaryUnixImplementationDocument_Jun72.pdf 
  23. ^ /etc : Host-specific system configuration Filesystem Hierarchy Standard
  24. ^ Define - /etc?, Posted by Cliff, March 03 2007 - Slashdot
  25. ^ /opt : Add-on application software packages Filesystem Hierarchy Standard
  26. ^ リードオンリーで共有可能であるべき。cf. http://www.pathname.com/fhs/pub/fhs-2.3.html.
  27. ^ 歴史的にもFHS標準においても、/usr/local/ はローカルホストで格納すべきデータのためにある(/usr/がネットワークをはさんで共有可能であったのとは対照的である)。多くの場合 /usr/local/ はOSのディストリビューションには含まれないソフトウェアやデータをインストールするのに使われてきた(逆に言えば、/usr/ には標準のOSディストリビューションに含まれるソフトウェアやデータのみを格納すべきである)。これはデファクトスタンダードだが、FHSは今のところこれを採用していない。

関連項目[編集]

外部リンク[編集]