答案1
VFS是内核中的一个接口层。它为应用程序与文件系统对话提供了一个统一的接口,无论使用什么文件系统:因此,诸如open
、write
、等系统调用read
都进入 VFS 层,然后由 VFS 层将它们分派到适当的文件系统。
文件系统向VFS层注册自己并提供一组标准信息,以便VFS层可以使用它们。这意味着Linux中的所有文件系统都需要实现类似的概念:主要是索引节点、目录项和文件。
这是内核中有详细记录。
答案2
VFS 是内核中位于系统调用和文件系统驱动程序之间的整个软件层,它本身并不是一个文件系统。
它提供了一个通用的界面多种文件系统类型。
想象一下我们使用以下命令:
cp /usb/file /tmp/file
/usb
安装在 fat32 USB 上,/tmp
是一个etx2
文件系统。
VFS 层位于应用程序和文件系统之间,因此该cp
命令不需要知道执行复制的文件系统。相反,cp
使用通用系统调用与 VFS 交互,例如:open
、write
等read
...
答案3
界面和常用功能。
界面
文件系统需要实现该接口
常用功能
有些事情是所有文件系统都必须实现的,但实现是相同的。例如缓存、符号链接遍历。
(注意,我没有做过,所以可能有一些错误)