虚拟文件系统

它是允许和操作系统使用不同的文件系统实现的接口。

分层结构

屏幕快照 2021-02-09 下午9 37 21

目标

对所有不同文件系统的抽象。

功能

  • 提供相同的文件和文件系统接口
  • 管理所有文件和文件系统关联的数据结构
  • 高效查询例程,遍历文件系统
  • 与特定文件系统模块的交互

文件系统基本数据结构

文件卷控制块(Unix: superblock)

  • 每个文件系统一个
  • 文件系统详细信息
  • 块、块大小、空余块、计数/ 指针等

文件控制块(Unix: vnode或者inode)

  • 每个文件一个
  • 文件详细信息
  • 访问权限、拥有者、大小、数据块位置等

目录项(Linux: dentry)

  • 每个目录项一个(目录和文件)
  • 将目录项数据结构及树型布局编码成树型数据结构
  • 指向文件控制块、父目录、子目录等

文件系统的组织视图

屏幕快照 2021-02-09 下午9 52 38

文件系统的存储

持久存储在外存中,存储设备的数据块中。
当需要时加载进内存:

  • 卷控制模块:当文件系统挂载时进入内存
  • 文件控制块:当文件被访问时进入内存
  • 目录节点:在遍历一个文件路径时进入内存

文件系统的存储视图

屏幕快照 2021-02-09 下午10 04 13

References

21.4 虚拟文件系统 详见:https://www.youtube.com/watch?v=q5oejwc-azM


Dame pan y dime tonto.Give me bread and call me a fool.