ファイル・システム:1本のツリーで全ファイルを扱う

 WindowsやMac OSでは,ハード・ディスク(のパーティション)やフロッピ・ディスク,光磁気ディスク(MO),CD-ROMといった記録装置/メディアごとに,独立したディレクトリ・ツリー(ファイル/ディレクトリの階層構造)を形成する。そして,そのディレクトリ・ツリーの名前(ドライブ名やドライブ・レター)とディレクトリ・パスを使って,ファイルを指定する。

 しかし,UNIX系OSでは“/”と表記されるルート・ディレクトリを頂点とした1本の論理的なツリー構造(階層構造)で,ハード・ディスクやフロッピ・ディスク,CD-ROMなど複数種類の記録装置/メディアを扱う(図5)。ネットワーク上にある別のコンピュータのディスクでさえ,そのツリーの中に組み込める。

図5●UNIXのディレクトリ構造
図5●UNIXのディレクトリ構造
“/”と表記されるルート・ディレクトリを頂点としたツリー構造(階層構造)になっている。1本のツリーの中で,ハード・ディスクやフロッピ・ディスク,CD-ROMなど複数種類の記録装置/メディアが扱われている。
[画像のクリックで拡大表示]

 UNIXが開発された当時は,実用的な記録装置/メディアはハード・ディスクとバックアップ用のテープ装置だけしかなかった。特にハード・ディスクは高価で容量も小さかったため,複数のハード・ディスクを組み合わせて1つの大きな論理ボリュームを仕立てるという考え方がごく自然だった。こうした背景から,UNIX系OSには異なる記録装置/メディアごとに,互いに独立したディレクトリ・ツリーを与える仕組みが実装されていない。

マウントとアンマウント

 ディスク・ドライブを論理的なディレクトリ・ツリーに割り当てるのが,マウントと呼ばれる操作である。例えば,CD-ROMを“/mnt/cdrom”というディレクトリに割り当てる場合は,

# mount -t iso9660 /dev/cdrom /mnt/cdrom

 と入力する。引数の“-t”の後ろに,ファイル・システムのタイプを指定する。このようにしてマウントすると,フロッピ・ディスクやCD-ROMにアクセスできるようになる。

 フロッピ・ディスクやCD-ROMなどのリムーバブル・メディアの場合には,使用した後にドライブから取り出す(イジェクトする)前にマウントを解除する処理を明示的に実施する必要がある。それがアンマウント(umount)である。CD-ROMを例にとると,

# umount /mnt/cdrom

 と入力するとアンマウントされ,CD-ROMを着実に取り出せる。

ホーム・ディレクトリ

 ユーザーが自由に使える作業領域として割り当てられるのが,ホーム・ディレクトリである。一般的には,“/home”以下にユーザー名と同じ名前でディレクトリが作成される。ログインしたときのディレクトリ(カレント・ディレクトリ)は,このホーム・ディレクトリである。

 ホーム・ディレクトリ内のファイルやディレクトリは,基本的には持ち主であるユーザー自身が自由に操作できる。ただし,管理を容易にするなどの理由によって,スーパーユーザーが一般ユーザーのホーム・ディレクトリ内のファイルやディレクトリに対して,そのユーザーが自由に操作できないような権限を設定していることもある。

 ホーム・ディレクトリ内には,持ち主であるユーザーが自分に合った環境でシステムを利用できるようにするための各種設定ファイルが存在する。設定ファイルは通常,ファイル名が“.”(ドット)で始まる。ドットで始まるファイルは「ドット・ファイル」と呼ばれ,通常はファイル名一覧に名前が表示されない。ドット・ファイルも表示させるには,

$ ls -a

 と入力する。これらドット・ファイルは,さまざまな用途に利用されている。例えば,プログラム起動直後に実行されるサブプログラムを記述するためのファイルや,次回起動時に同じ環境が再現されるように各種の設定/データを保存するためのファイルなどとして使われている。Linuxの代表的なドット・ファイルを表2に示す。

表2●Linuxの代表的なドット・ファイル
表2●Linuxの代表的なドット・ファイル