VFS 与文件系统抽象

共 20 题
#

1. Linux 文件系统家族,ext4、xfs、btrfs、f2fs、ntfs3 的差异化场景

A f2fs 适合机械硬盘
B ext4 不支持日志与延迟分配
C ntfs3 是 Linux 原生的高性能文件系统
D xfs 适合高并发大文件场景,btrfs 主打 CoW/快照/子卷,f2fs 面向闪存设备 ✓ 正确答案
#

2. VFS 路径解析流程,逐分量 lookup、符号链接解析与深度限制、跨挂载点,RCU-walk 如何加速无修改路径?

A 路径解析不经过 dcache
B 符号链接可以无限嵌套
C RCU-walk 总是需要持锁
D 路径解析逐分量进行,符号链接展开有深度限制,RCU-walk 在无修改路径上无锁快速遍历 ✓ 正确答案
#

3. 挂载传播与 mount namespace,shared/slave/private 挂载如何影响 bind mount 的递归传播,容器卷场景如何选型?

A private 挂载会传播给所有 namespace
B slave 的挂载事件会反向传播到主
C shared 让 mount 事件在 peers 间双向传播,slave 单向跟随主,private 完全隔离 ✓ 正确答案
D 挂载传播与 bind mount 无关
#

4. VFS 的 file_operations、inode_operations、super_operations 钩子

A inode_operations 负责文件读写
B file_operations 负责目录创建
C file_operations 面向已打开文件的读写,inode_operations 面向元数据与目录操作,super_operations 面向超级块操作 ✓ 正确答案
D super_operations 面向单个文件
#

5. VFS(Virtual File System)的四大对象,super_block、inode、dentry、file

A dentry 代表磁盘块
B inode 代表已打开的文件
C super_block 代表文件系统实例,inode 代表文件元数据,dentry 代表路径分量缓存,file 代表已打开的文件实例 ✓ 正确答案
D file 代表文件元数据
#

6. btrfs 的 copy-on-write(CoW)与 subvolume/snapshot 能力

A btrfs 只能有一个子卷
B snapshot 创建时需复制全部数据
C CoW 写数据到新块保证一致性,snapshot 通过共享元数据块实现即时快照 ✓ 正确答案
D CoW 不会产生任何多余开销
#

7. dentry cache(dcache)与路径查找加速

A dcache 缓存路径分量的 dentry,命中后无需磁盘 lookup 从而加速路径解析 ✓ 正确答案
B dcache 每次路径解析都需访问磁盘
C dcache 无法被回收
D dcache 只缓存文件内容不缓存路径
#

8. f2fs 的 FTL(Flash Translation Layer)友好设计

A f2fs 支持随机覆写任意块
B f2fs 采用 log-structured 顺序写、SSA/NAT 映射与 GC/磨损均衡,减少闪存写放大并延长寿命 ✓ 正确答案
C f2fs 不管理段回收
D f2fs 只适合机械硬盘
#

9. inode 的元数据(metadata)与磁盘块映射

A inode 不保存在磁盘上
B inode 只保存文件内容
C extent 比间接块更多间接寻址
D inode 保存权限/大小/时间戳等元数据,并用 extent 或间接块把逻辑偏移映射到物理块 ✓ 正确答案
#

10. page cache 在 fsync 下的写回顺序与崩溃一致性

A fsync 刷盘脏页与元数据,并通过 journal 与合适的写回顺序保证崩溃一致性 ✓ 正确答案
B fsync 只刷数据不刷元数据
C 崩溃一致性不需要日志
D fsync 是无开销操作
#

11. 文件系统挂载(mount)的 flags,MS_NOATIME、MS_NODIRATIME、MS_LAZYTIME

A MS_NOATIME 只影响 ctime
B MS_NOATIME 关闭文件 atime 更新,MS_NODIRATIME 只关目录 atime,MS_LAZYTIME 延迟更新时间戳 ✓ 正确答案
C MS_LAZYTIME 会立即写盘所有时间戳
D 这些标志与 I/O 无关
#

12. /proc 与 /sys 的虚拟文件系统实现

A /proc 以进程为核心暴露内核状态,/sys 以设备与子系统为中心,两者均由内核动态生成数据 ✓ 正确答案
B /proc 与 /sys 都占用磁盘
C /sys 以进程为中心
D 两者都是真实文件系统
#

13. fanotify 与 inotify 的文件系统事件监控

A 两者能力完全相同
B fanotify 只能监控单个文件
C inotify 支持权限决策
D inotify 是轻量单进程监听,fanotify 支持全局文件系统监控与访问权限事件 ✓ 正确答案
#

14. tmpfs 与 ramfs 的内存文件系统差异

A tmpfs 可 swap 且支持大小限制,ramfs 不可 swap 且无大小限制 ✓ 正确答案
B ramfs 可被 swap 换出
C tmpfs 无大小限制
D 两者完全相同
#

15. FUSE(Filesystem in Userspace)的性能与场景

A FUSE 实现了与内核文件系统相同的性能
B FUSE 允许用户态实现文件系统,灵活但每次 IO 有上下文切换开销,性能低于内核文件系统 ✓ 正确答案
C FUSE 需要修改内核才能使用
D FUSE 无法提供任何缓存
#

16. overlayfs 的 union mount 与容器镜像层

A copy-up 会修改 lowerdir
B overlayfs 无法共享只读层
C overlayfs 用 lowerdir(只读)+upperdir(可写)叠加,写时 copy-up,容器镜像层因此共享只读层 ✓ 正确答案
D overlayfs 只能有一个目录
#

17. O_TMPFILE 如何创建未链接的匿名文件,相比 tmpnam+unlink 在原子性与安全性上的优势?

A O_TMPFILE 创建未链接匿名文件,避免 tmpnam+unlink 的竞态窗口与符号链接攻击 ✓ 正确答案
B O_TMPFILE 必须先有随机文件名
C O_TMPFILE 文件无法被链接
D tmpnam+unlink 更安全
#

18. ext4 的 extent mapping 与 delayed allocation

A extent 一定造成更多碎片
B extent 用连续块区间减少寻址开销,delayed allocation 延迟分配块以聚合写并减少碎片 ✓ 正确答案
C delayed allocation 立即分配物理块
D ext4 仍用间接块映射
#

19. xfs 的 B+ tree allocation 与日志(journal)设计

A xfs 用链表管理空闲空间
B xfs 用 B+ 树管理 inode/空闲空间/映射,支持高扩展性,日志可在线扩展 ✓ 正确答案
C xfs 日志不可扩展
D xfs 只适合小文件系统
#

20. inode 生命周期与 final iput,删除仍被打开的文件为何 inode 不立即释放,引用计数如何协同清理?

A i_count 表示链接数
B 删除文件立即释放 inode
C 删除文件只减 i_nlink,inode 需等引用计数 i_count 归零(final iput)才真正释放 ✓ 正确答案
D final iput 与引用计数无关