ここでは,2 次記憶装置を表現するファイルシステム(file system) について説明する.最初に, 低いレベルの記憶装置本体から説明しよう.Unix 系のオペレーティングシステムの ように,ネットワーク上のプロセス間通信なども,ファイルシステムとして扱うことが できる OS もあるが,ここでは単に,2 次記憶を表現するソフトウエアとして ファイルシステムを扱う.
「ファイルシステム」とは,文字どうり「ファイル」を管理し,「ファイル」を 表現するソフトウエア (デバイスドライバ) である. Unix 系オペレーティングシステムのように,「ディレクトリ」を扱うことが できるファイルシステムもある.しかし,「ファイルシステム」は, その下層に,物理的な装置(2 次記憶装置)があり,その装置を扱うデバイスドライバが 必用である. 結果として,デバイスドライバは,上のような,階層構造になっている.
最初に,FD(フロッピディスク),HD(ハードディスク) などの記憶装置に ついて説明しよう.
ディスク装置は,このように円盤を何枚も重ねた構造になっている. 各円盤(ディスク)は,以下のような同心円の(磁気の溝)から成り立っている.
各円盤(disk) には,色のついた部分に磁性体が塗られ,面(surface), トラック(track),セクタ(sector) によって管理されている. トラックは,円盤が複数ある場合は,シリンダ(cylinder)といわれる. 各面,各トラック,各セクタは,通常,固定長の長さを示す. 例えば,フロッピディスクは,円盤は 1 枚からなり,両面使うことができる. よって,面は,2 である.
NO | 形式 | バイト/セクタ | セクタ/トラック | トラック/面 | 計算式 | 容量 |
---|---|---|---|---|---|---|
1 | 1S | 512 | 4 | 40 | 512×4×40 | 80K |
2 | 2S | 512 | 4 | 40 | 512×4×40×2 | 160K |
3 | 2D | 512 | 8 | 40 | 512×8×40×2 | 320K |
4 | 2DD | 512 | 8 | 80 | 512×8×80×2 | 640K |
5 | 2DD | 512 | 9 | 80 | 512×9×80×2 | 720K |
6 | 2HC | 512 | 15 | 80 | 512×15×80×2 | 1200K |
7 | 2HD | 1024 | 8 | 77 | 1024×8×77×2 | 1232K |
8 | 2HD | 512 | 18 | 80 | 512×18×80×2 | 1440K |
フロッピディスクの大きさは,3.5 インチ であるが, 他に 5 インチ,8 インチ がある.
最近では,特別な用途に使われるフロッピディスクであるが,HD や, CD,CD-R,DVD など,最近の 2 次記憶のもとになる構造をしているので フロッピディスクを理解することは,重要である.HD などのように, 円盤が複数ある場合は, さらに大きな情報を取り扱うので,いくつかのセクタを集め,クラスタ として管理する.また,最近の HD は,非常に高密度であるため,各トラックに 記録する情報(セクタ数) が異なることが多い.円の外側は,セクタ数が多く, 円の内側は,セクタ数が少なくなっている.
ディスクは,セクタ(クラスタ(cluster)で管理する場合もある)で管理する.つまり, デバイス毎に,セクタの通し番号がついている.例えば,2HD のフロッピディスクなら 上の表より 18×80×2=2880 のセクタが存在するので,通常,0 〜 2879 まで, セクタ番号がふられている.0 番のセクタは,IPL などブートに必用な情報が 格納されているため,ディスクを管理する FAT 領域は,その後につづく.
FAT 領域は,
ディレクトリは, 図のように,ファイル名,開始セクタ番号,終了セクタ番号,属性などが書かれた 表でである.テーブル には, ファイルに割り当てられたセクタ番号の鎖(チェーン) が書かれている.どちらも,複数セクタにより形成されている. 例えば,"test.txt" という名前のファイルは, セクタ番号 3FA から始まり,
セクタ番号 402 で終わることがわかる.よって,テーブルの数字が書かれている セクタは,次に続くセクタがあることになり,現在 使用中 であることがわかる.
FAT 形式は,初期の PC のオペレーティングシステムである CP/M,CP/M-86, (初期の)MS-DOS など,いわゆる Disk Operating System(DOS) で採用された, 最も単純なファイルシステムである.
i-ノード形式は,Unix 系オペレーティングシステムで採用され,さらに, 上の FAT よりも本格的なファイルシステムである. 簡単には,上の FAT のディレクトリを複数作成することができ, さらに,ディレクトリの生成,削除を動的に行うことができる (もちろん,動的に 削除もすることができる) 構造になっている.
ルートディレクトリ(root directory) のみ作成され,他のディレクトリは, 動的に作成される.ディレクトリ には,ファイルまたは,ディレクトリ を含むことができ,同じようなポインタで結ばれている.