Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
フラグメントを入れようとした痕跡はあるが、実装はされていない。非常に伝統的な構造をしている。「Design Of UNIX」の世界そのままである。詳しくはそちらを参照のこと。
ファイルを形作るディスク上のiノードとデータブロックの関係は、下図に示す構造になっている。これはレギュラーファイルでもディレクトリファイルでもシンボリックリンクファイルでも全て同じである。ext2のディスク上のiノードのi_block[]には12個の直接ブロックを登録できるようになっている。12個のブロック以上の大きさのファイルの場合は、i_block12に間接ブロックを登録し、13個目のデータブロックはこの間接ブロックに登録する。更にファイルが大きくなった時は、i_block13に間接ブロックを管理する間接ブロック(二段間接ブロック)を登録する。同様にi_block14には三段間接ブロックが登録される。ファイルサイズはi_sizeに記録されている。
i_block12に間接ブロックを登録されているからと言って、i_block0〜i_block11の全てに直接ブロックが登録されているとはかぎらない。
ディスク上のiノードが参照するときは、メモリ上のiノードに情報をコピーした後利用する。システム共通の情報はメモリiノードの共通部分へ、ファイルシステム固有の部分は メモリiノードのunion部分へコピーする。
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[PageInfo]
LastUpdate: 2008-08-27 14:18:43, ModifiedBy: hiromichi-m
[Permissions]
view:all, edit:login users, delete/config:members