虚拟文件系统&文件系统挂载(安装)
一、虚拟文件系统
(一)普通的文件系统
先来看不存在虚拟文件系统的普通文件系统,彼此之间实现同一功能的接口具有差异,比较混乱。
(二)VFS 虚拟文件系统 Virtual File System
为解决同时使用不同文件系统需要频繁改动底层代码的问题,引入虚拟文件系统。
VFS的特点:
- 向上层用户进程提供统一标准的系统调用接口,屏蔽底层具体文件系统的实现差异。
- VFS 要求下层的文件系统必须实现某些规定的函数功能,如:open/read/write 。一个新的文件系统想要在某操作系统上被使用,就必须满足该操作系统 VFS 的要求。
- 每打开一个文件, VFS 就在主存中新建一个 vnode,用统一的数据结构表示文件,无论该文件存储在哪个文件系统。
即不止2.的函数和接口,数据结构等也存在相同的问题和解决:
比如不同文件系统的目录项的数据结构差异
补充:inode 即 i 节点,即之前学习过的索引节点
重点:vnode 只存在于主存中,而 inode 既会被调入主存,也会在外存中存储。
二、文件系统挂载(mounting)
补充:挂载点即新文件系统挂载到的某个父目录下,如 Windows系统 和 MAC系统 挂载点位置如下: