本次笔记内容:
12.10 虚拟文件系统

虚拟文件系统抽象

【操作系统/OS笔记18】虚拟文件系统概念

如上图,虚拟文件系统就是,将复杂系统抽象,建立简单的接口,来屏蔽底层具体文件系统的差异性。

比如,对于Device I/O与Network I/O可能在底层实现很不一样,当时在上层,都被虚拟文件系统抽象成了包含write、read等基本操作的API。

虚拟文件系统的目的与功能

目的:

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

功能:

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

虚拟文件系统基本结构

卷控制块(Unix:“superblock”)

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

文件控制块(Unix:“vnode” or “inode”)

  • 每个文件一个;
  • 文件详细信息;
  • 许可、拥有者、大小、数据库位置等。

目录节点(Linux:“dentry”)

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

【操作系统/OS笔记18】虚拟文件系统概念

结构如上图。

虚拟文件系统如何保存

文件系统数据结构:

  • 卷控制块(每个文件系统一个);
  • 文件控制块(每个文件一个);
  • 目录节点(每个目录项一个)。

持续存储在二级存储中:

  • 在分配在存储设备中的数据块中。

当需要时加载进内存:

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

【操作系统/OS笔记18】虚拟文件系统概念

如上图,磁盘的头几个扇区存储superblock,按照逻辑关系,依此调用进内存。

相关文章:

  • 2021-08-19
  • 2021-06-03
  • 2021-10-27
  • 2021-12-31
  • 2021-05-01
  • 2021-07-10
  • 2021-11-24
猜你喜欢
  • 2021-11-23
  • 2021-11-10
  • 2022-12-23
  • 2021-10-06
  • 2021-08-15
  • 2021-06-10
  • 2022-12-23
相关资源
相似解决方案