操作系统

linux 文件系统比较复杂,通过上层的 VFS 层与用户交互。

VFS

当进行 linux 的文件操作时,用户进程根本不关心文件系统的具体类型(更不关心硬件细节),而是利用 C 语言库统一的、通用的函数(open、read、write 和 close)等完成文件操作。这得益于 linux 虚拟文件系统(Virtual File System)的支持。不同的文件系统的格式都由 VFS 代为处理,因此用户感受不到差异。

VFS 隐藏了底层文件系统格式的差异,向上提供统一的文件系统抽象和操作行为,即通用文件模型(common file model)。借助于 VFS 代码屏蔽具体文件系统细节(ext2ext3ntfs 等),linux 可以支持众多的文件系统类型,从而可以与 windows 等其他操作系统所创建的磁盘分区 “和平相处” 。

VFS 对象