文件系统需要向上层的用户提供一些简单易用的功能接口。
这层就是用于处理用户发出的系统调用请求(Read、Write、Open、Close等系统调用)
用户是通过文件路径来访问文件的,因此这一层需要根据用户给出的文件路径找到相应的FCB或索引结点。
所有和目录、目录项相关的管理工作都在本层完成,如:管理活跃的文件目录表、管理打开文件表等。
为了保证文件数据的安全,还需要验证用户是否有访问权限。
这一层主要完成了文件保护相关功能。
用户指明想要访问文件记录号,这一层需要将记录号转换为对应的逻辑地址。
这一层需要把上一层提供的文件逻辑地址转换为实际的物理地址。
负责文件存储空间的管理,即负责分配和回收存储空间。
直接与硬件交互,负责和硬件直接相关的一些管理工作。
如:分配设备、分配设备缓冲区、调度、启动设备、释放设备等。
假设某用户请求删除文件“D:/工作目录/学生信息…xlsx”的最后100条记录。
新磁盘初始化步骤:



①向上层用户进程提供统一标准的系统调用接口,屏蔽底层具体文件系统的实现差异
②VFS要求下层的文件系统必须实现某些规定的函数功能,如: open/read/write。一个新的文件系统想要在某操作系统上被使用,就必须满足该操作系统VFS的要求.
③每打开一个文件,VFS就在主存中新建一个vnode,用统一的数据结构表示文件,无论该文件存储在哪个文件系统。

打开文件后,创建vnode,并将文件信息复制到vnode中, vnode的函数功能指针指向具体文件系统的函数功能。


注意:vnode只存在于主存中,而inode既会被调入主存,也会在外存中存储.
文件系统挂载( mounting) ,即文件系统安装/装载到操作系统。
①在VFS中注册新挂载的文件系统。内存中的挂载表( mount table)包含每个文件系统的相关信息,包括文件系统类型、容量大小等。
②新挂载的文件系统,要向VFS提供一个函数地址列表
③将新文件系统加到挂载点(mountpoint) ,也就是将新文件系统挂载在某个父目录下