Linux Kernel(2.6)の実装に関するメモ書き

ファイルシステム関連構造体


1. 関連構造体

1.1 struct file

open済みのファイルを管理する構造体。ファイルopen時にdo_filp_open()により確保される。

新しいstruct fileを取得するにはget_empty_filp()を使用する。get_empty_filp()はスラブアロケータからstruct fileを取得(キャッシュ名:filp)して初期化する。

表1 struct fileの主なフィールド 
フィールド
説明
f_op
ファイルシステムのstruct file_operationsへのポインタ。read,write,ioctlなどのハンドラへのポインタ群を持つ
f_pos
ファイルのRead/Write位置。
f_mode
ファイルのアクセスモード
f_uid
ファイルのUser ID
f_gid
ファイルのGroup ID

1.2 struct file_operations

ファイルシステム毎のopen,read,writeなどのシステムコールに対するハンドラを登録する。VFSからファイルシステムに応じたハンドラを呼び出すのに仕様する。

1.3 struct address_space_operations

ファイルのaddress_spaceを操作するハンドラを登録する。これらのルーチンはaddress_space内のPageCacheとディスクの間でデータをやり取りする(PageCacheのデータをWriteしたり、PageCacheへReadしたり)。ファイルシステム毎に定義する。

1.4 struct inode

ディスク上のi-nodeをメモリ上にキャッシュしたオブジェクト。i-nodeはファイル、ディレクトリ毎に1つ割り当てられ、パーミッション、修正時刻などの属性情報を管理する。

1.5 struct super_block

ディスク上のスーパーブロックをメモリ上にキャッシュしたオブジェクト。

関連ページ

Virtual File System

 


最終更新 2007/02/16 23:27:58 - kztomita
(2007/02/16 23:00:28 作成)


リンク
最近更新したページ
検索