一个系统中应当可以支持多个文件系统。但是由于每一个文件系统底层机制不同,操作系统如何兼容各个文件系统?
这就是虚拟文件系统VFS的功能了。VFS是操作系统文件模块的一个软件层,对上面的用户空间提供统一的操作接口,同时也对下层提供了一套必须实现的接口。这个思想其实在软件工程中很常用,虽然文件系统底层实现不同,但是总是可以抽象出公共的部分,比如打开文件,读取文件等操作。所以这一层对底层的抽象是VFS的关键所在,一个新的文件系统要想在操作系统中被使用,就必须实现VFS所要求的接口。然后VFS使用这些接口的实现完成文件操作。
当VFS想要完成一个操作时,只需要调用这个文件系统的实现方法即可。