12章 VFS
詳細Linuxカーネル 12章 VFSを読む
LinuxはVFSを導入することで、 いろんなファイルシステムを扱うことを可能にしている。
共通ファイルモデルの役割
VFSは共通ファイルモデルに従っている。
共通ファイルモデルで
Linuxのカーネルは各ファイルシステム固有の関数を呼び出し、
ソフト・アプリ側に意識をさせない役割がある。
VFSが取り扱うシステムコール
ファイルコピーのプログラムcp()
を通してVFSシステムコールを確認する。
cpが以下のコードで実現できる。(正常系のみ)
nf = open("/floppy/TEST", O_RDONLY, 0);
outf = open("/tmp/test", O_WRONLY | O_CREAT | O_TRUNC, 0600);
do {
len = read(inf, buf, 4096);
write(outf, buf, len);
} while (len);
close(outf);
close(inf);
open() システムコール
open()
の実体はdo_sys_open()
になる。
+getname
でファイルのパス名を読み取り
+get_unused_fd_flags
で空きを作成
力尽きた・・・