- 虚拟文件系统作为内核子系统为用户空间程序提供了文件和文件系统相关的接口。VFS之所以能衔接各种各样的文件系统,是因为它定义了所有文件系统都支持的基本的,概念上的接口和数据结构。
- Unix文件系统相关的抽象概念:文件,目录项,索引节点,安装节点。在Unix中,文件系统被安装在一个特定的安装点上所有的已安装文件系统都作为根文件系统的树的枝叶出现在系统中。
- VFS采用的是面向对象的设计思路,使用一些数据结构来代表通用文件对象。VFS中四个主要对象类型:超级块对象,索引节点对象,目录项对象,文件对象。
- 超级块对象用于存储特定节点信息,通常对应于存放在磁盘特定扇区中的文件系统超级块。
- 索引节点对象包含了内核在操作文件或者目录时需要的全部信息。
- 目录项对象,总体来讲目录被当作文件看待。目录项缓存加快查找,避免每一次都需要解析路径。
- 文件对象表示进程已打开的文件。
- 和文件相关的数据结构:file_system_type , vsmount。
- Linux支持了相当多的种类的文件系统,VFS层提供给这些不同文件系统一个统一的实现框架,而且也提供了能和标准系统调用交互的统一接口。由于VFS的存在,使得在Linux上实现新文件系统的工作变得简单起来。