现代操作系统有多种文件系统类型(如FAT32,NTFS,ext2,ext3等),因此文件系统的层次结构也不尽相同。

用户接口
文件系统需要向上层的用户提供一些简单易用的功能接口。
这层就是用于处理用户发出的系统调用请求(Read、Write、Open、 Close 等系统调用)
文件目录系统
用户是通过文件路径来访问文件的,因此这一层需要根据用户给出的文件路径找到相应的PCB或索引结点。
所有和目录、目录项相关的管理工作都在本层完成,如:管理活跃的文件目录表、管理打开文件表等。
存取控制模块
为了保证文件数据的安全,还需要严重用户是否有访问权限。
这一层主要完成了文件保护相关功能。
逻辑文件系统与文件信息缓冲区
用户指明想要访问文件记录号,这一层需要将记录号转换为对应的逻辑地址。
物理文件系统
这一层需要把上一层提供的文件逻辑地址转换为实际的物理地址
辅助分配模块
负责文件存储空间的管理,即负责分配个回收存储空间。
设备管理模块
直接与硬件交互,负责和硬件直接相关的一些管理工作。如:分配设备、分配设备缓冲区、磁盘调度、启动设备、释放设备等。
Sample
假设某用户请求删除文件“D:/工作目录/学生信息.xlsx”最后100条记录
- 1、用户需要通过操作系统提供的接口发出上述请求 —— 用户接口
- 2、由于用户提供的是文件存放路径,因此需要操作系统一层一层地查找目录,找到对应的目录项 —— 文件目录系统
- 3、不同的用户对文件有不同的操作权限,因此为了保证安全,需要检查用户是否有访问权限 —— 存取控制模块(存取控制验证层)
- 4、验证了用户的访问权限之后,需要把用户提供的“记录号”转变为对应的逻辑地址 —— 逻辑文件系统与文件信息缓冲区
- 5、知道了目标记录对应的逻辑地址后,还需要转换成实际的物理弟子 —— 物理文件系统
- 6、要删除这条记录,必定要对磁盘设备发出请求 —— 设备管理程序模块
- 7、删除这些记录后,会有一些盘块空闲,因此要将这些空闲盘块回收 —— 辅助分配模块