我们晓得文件系统的种类有好多。不仅Linux标准的文件系统Ext2/Ext3/Ext4外,还有好多种文件系统。linux通过称作VFS的中间层对那些文件系统提供了完美的支持。在大部份情况下,用户通过libc和kernel的VFS交互,不须要关心底层文件系统的具体实现。
我的理解,vfs就是对各类文件系统的一个具象,它为各类文件系统提供了一个通用的插口,类似于c++中虚子类的作用,而每一种具体的文件系统则将其数学组织结构转换为虚拟文件系统的通用模型。
vfs的作用
vfs所蕴涵的思想是把表示好多不同种类文件系统的共同信息装入内核;其中有一个数组或函数来支持Linux所支持的所有实际文件系统所提供的任何操作。对所调用的每位读、写或其他函数,内核都能把它们替换成支持本地Linux文件系统、NTFS文件系统,或则文件所在的任何其他文件系统的实际函数。
有了vfs中国linux,能够很容易实现不同文件系统之间的数据读写,由于它们对外插口都是一样的,都是vfs导入的通用插口。
以下ulk3书上的反例:
比如,假定一个用户输入以下shell命令:
$cp/floppy/TEST/tmp/test
其中/floppy是MS-DOSc盘的一个安装点,而/tmp是一个标准的第二扩充文件系统(secondExtendedFilesystom,Ext2)的目录。正如图(a)所示linux支持哪些文件系统,默认的文件系统是什么?,VFS是用户的应用程序与文件系统实现之间的具象层。为此linux培训机构,cp程序并不须要晓得/floppy/TEST和/tmp/test是哪些文件系统类型。相反linux支持哪些文件系统,默认的文件系统是什么?,cp
文章评论