Linux VFS Objects
Linux VFS 用幾種 in-memory objects 加 operation tables 來統一不同 file systems。VFS 呼叫固定 slot;各 implementation 填入自己的 function。
四個主要 objects
- Inode object:代表 file-system object(regular file、directory、symlink、device node)。保存 mode、owner、size、timestamps,並指向 file-system-specific data;不等於某個 on-disk inode layout。
- File object:代表一次 open file instance。同一 inode 可被多次 open;每個 file object 可有自己的 offset、flags、access mode、FD references。
- Superblock object:代表一個 mounted file system,保存 block size、mount state、root dentry、operation table、FS-wide metadata。
- Dentry object:代表 directory entry,也就是 name → inode mapping。Dentry cache 加速 repeated path lookup;同一 inode 可因 hard links 有多個 dentries。
Operation tables
File、inode、superblock 等 objects 各有 operations:open、release、read、write、mmap、lookup 等。Local FS 的 read 可能走 block cache;procfs 可能即時產生資料;NFS 可能變成 RPC。對 VFS 來說都是同一個 operation slot。