它是允许和操作系统使用不同的文件系统实现的接口。
分层结构
目标
对所有不同文件系统的抽象。
功能
- 提供相同的文件和文件系统接口
- 管理所有文件和文件系统关联的数据结构
- 高效查询例程,遍历文件系统
- 与特定文件系统模块的交互
文件系统基本数据结构
文件卷控制块(Unix: superblock)
- 每个文件系统一个
- 文件系统详细信息
- 块、块大小、空余块、计数/ 指针等
文件控制块(Unix: vnode或者inode)
- 每个文件一个
- 文件详细信息
- 访问权限、拥有者、大小、数据块位置等
目录项(Linux: dentry)
- 每个目录项一个(目录和文件)
- 将目录项数据结构及树型布局编码成树型数据结构
- 指向文件控制块、父目录、子目录等
文件系统的组织视图
文件系统的存储
持久存储在外存中,存储设备的数据块中。
当需要时加载进内存:
- 卷控制模块:当文件系统挂载时进入内存
- 文件控制块:当文件被访问时进入内存
- 目录节点:在遍历一个文件路径时进入内存
文件系统的存储视图
References
21.4 虚拟文件系统 详见:https://www.youtube.com/watch?v=q5oejwc-azM