7.14 VFS虚拟文件系统
VFS
- 虚拟文件系统(Virtual File System, VFS), 为用户程序提供文件和文件系统操作的统一接口,屏蔽不同文件系统的差异和操作细节
VFS原理
-
VFS之所以能够衔接各种各样的文件系统,是因为它抽象了一个通用的文件系统模型,定义了通用文件系统都支持的、概念上的接口。新的文件系统只要支持并实现这些接口,并注册到Linux内核中,即可安装和使用。
-
write()
写入流程- 勾起VFS通用系统调用
sys_write()
处理 sys_write()
根据fd找到所在的文件系统提供的写操作函数,比如op_write()
- 调用
op_write()
实际的把数据写入到文件中
- 勾起VFS通用系统调用
虚拟文件系统组成
- 超级块(
super_block
), 表示已安装文件系统 - 索引节点对象(
inode
), 表示具体文件 - 目录项对象, 代表一个目录项,是文件路径的一个组成部分
- 文件对象, 代表进程打开的文件, 在内存中的实例