ファイルシステム関連構造体
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