二、VFS概述
  1、VFS

  虚拟文件系统或者虚拟文件插口,叫做插口更合适,也是官方的叫法,vfs向上和用户进程文件?问系统调用接口,如open,read,write等,向下和详细不同文件系统的实现接口,如read,write的不同实现。例如以下图所看到的:

  2、VFS的重要性
  VFS屏蔽了详细文件的实现细节,向上提供统一的操作接口。通过VFS能够实现随意的文件系统,这些文件系统通过文件?问系统调用都能够?问。在操作系统内核中,vfs是对离用户态近期的一层,由于它的存在,linux的使用才变得方便。实际上,正是vfs实现了树形的文件系统组织,然而vfs的作用还不止这些,设备的文件抽象也是通过vfs来实现的。
  3、VFS举例
  3.1、procfs
  3.2、sysfs
  3.3、cpusetfs
  3.4、ntfs
  3.5、extX
  3.6、随意你想实现的。
  须要做什么呢?仅仅须要在一大堆switch函数例程中实现你的逻辑可以,是说实现file_operations函数集合可以。注意,在linux中,文件和存储没有必定关系,实际上没有不论什么关系,也是说linux中的文件有的不须要被存储,比方proc文件夹中的文件,仅仅有在你read它的时候,数据才从内核出来,这个数据是内核逻辑提供的,而是可能实时变化,linux根本没有必要在还有一个地方再存储它。
  4、一个重要结论
  由于linux的树形文件系统是全然抽象的,因此它不和不论什么介质进行绑定,仅存在于内核其中,内核仅仅要起来,这个虚拟的树存在了,仅仅是此时仅仅有树根,然而linux此时却能够挂载随意类型的文件系统到这个树根,这样能够实现非常方便的定制,linux能够在initrd中挂载随意文件系统到树根,这是由于内核和文件系统是分离的概念,内核启动并不依赖不论什么文件系统。