//是什么?
虚拟文件系统(VFS)是内核的子系统,为用户空间程序提供拉文件系统相关的接口。系统中所有的文件系统都依赖于VFS共存,并且依靠VFS系统共同协作。VFS就相当于一个中转站,连接不同文件系统的桥梁。
//为什么?
linux之所以支持对所有类型文件系统的操作,因为内核在它的底层文件系统上建立拉一个抽象层。正是由于这个抽象层的存在,是多个文件系统之间的差别被屏蔽了。VFS 提供了一个通用文件系统的模型,该模型基本上包含了我们所能想到的文件系统的常用功能和行为。
VFS抽象层之所以能衔接各种各样的文件系统,是因为它定义拉所有文件系统都支持的基本接口和数据结构。同时实际的文件系统也将自身的操作如“如何打开文件”等概念在形式上于VFS保持了一致。
//怎么用?
在内核中,除了文件系统本身之外,其他部分并需要了解文件系统的内部细节。用户只需要调用VFS提供的接口,就可以实现对各种文件系统的操作。
以write()函数为例,write()调用来自用户空间的数据流,首先通过VFS的通用系统调用,其次通过文件系统的特殊写的方法,最后写入到物理介质中。在这个过程中,很明显的看出VFS就是一个桥梁。
下一篇将介绍VFS是如何对文件进行管理的。
阅读(2675) | 评论(0) | 转发(1) |