Filesystem Hierarchy Standardを読む
Linuxに出会ってから10年ほど経つが標準文書を読んだことはなかった.
まずはファイルシステムについて規定されたFilesystem Hierarchy Standardを理解がてらまとめる.
適宜省略しているため必要に応じて原文を読んでください.
Linuxの標準について
Linuxの規定はLinux Standard Base(以後LSB)
に記載されている.
目的: LinuxディストリLSBの目標は、Linuxディストリビューション間での互換性を向上させ、準拠システム上でのアプリケーションの動作を保証するよう標準規格を策定・振興することである。さらに、ソフトウェアベンダーがLinux向けに製品を移植したり開発する際の調整努力を助ける。
(Wikipediaより)
最新は5(2020/05/17現在)
.Coreドキュメントは964ページある.
基本的なライブラリlibc
関係とかよくしらなかったがそんな疑問もこれを読めばとっかかりとなりそう.
Filesystem Hierarchy Standard
ようやく本題.3.0
(50 page)を読み進めていく.
Linuxの必要なファイル・ディレクトリ配置を記載した文書.
目的はアプリケーション,管理ツールなどの互換性を図るもの.
文書の目的(Chapter1 Introduction Purpose)
ユーザ・ソフトがインストールされているファイルやディレクトリの場所を予想できるようにすること.
Root Filesystem(Chapter3)
root filesystem
はboot/restore/recover/repairのために必要なものを格納する.
必要なディレクトリ一覧
ディレクトリ名 | 詳細 |
---|---|
bin | 必須コマンドバイナリ置き場 |
boot | ブートローダ用の静的ファイル |
dev | デバイスファイル |
etc | ホスト特有の設定ファイル |
lib | 必須共有ライブラリとカーネルモジュール |
media | removable meidaのマウントポイント |
mnt | 一時的なファイルシステムのマウントポイント |
opt | Add-onアプリ置き場 |
run | running processesのデータ関連 |
sbin | 必須システムバイナリ |
srv | システムから提供されるサービスのデータ |
tmp | 一時ファイル |
usr | Secondary Hierarchy |
var | Variable data |
以下,オプション | |
home | ユーザ用ホームディレクトリ |
lib |
必須な共有ライブラリの代替 |
root | root用のホームディレクトリ |
bootableなLinuxを作ろうと思ったら,最低限上記のディレクトリを揃える必要があるということか.
ここでは省略するが,各ディレクトリの詳細も記載されている.
/usr/share/color
とか初耳なディレクトリもある.
/var Hierarchy(Chapter5)
可変データファイル置き場. スプールディレクトリ,ファイル,管理ログも含まれる.
必要なディレクトリ一覧
ディレクトリ名 | 詳細 |
---|---|
cache | キャッシュデータ |
lib | 状態情報 |
local | /usr/localの情報 |
lock | lock files |
log | ログファイル関連 |
opt | /opt用の情報 |
run | running processes関連のデータ |
spool | アプリのspool data(syorimati data) |
tmp | 一時ファイル |
以下,オプション | |
account | process accounting logs |
crach | system crash dumps |
games | variable game data |
user mailbox files | |
yp | Network Information Service database files |
/var/lock
は複数のアプリで共有されているデバイスやリソースを管理するために使われる.
所感
文書によっては2770ページという頭が真っ白になりそうな量もあるが,調べたい領域を絞れば数十ページで済む.
読み始めてしまえばわかりやすい英語でスラスラ読めた.
今回読んだFHSには各ディレクトリ全てについて何に使うために存在するかが書かれている.
何度も繰り返し読みながら理解を進めていきたい.
spool
は処理待ちの一時ファイルを格納する場所初めて知ることもあってまだまだ勉強不足だと思い知った.
kernel開発者になる道は遠い.
一歩々々進んでいきたい.