Linux文件系统之虚拟文件系统(VFS)

分享到:
           

    Linux系统成功的关键因素之一就是具有与其他操作系统和谐共存的能力。Linux的文件系统由两层结构构建:第一层是虚拟文件系统(VFS),第二层是各种不同的具体的文件系统。

    VFS就是把各种具体的文件系统的公共部分抽取出来,形成一个抽象层,是系统内核的一部分,它位于用户程序和具体的文件系统之间。它对用户程序提供了标准的文件系统调用接口,对具体的文件系统(如EXT2、FAT32等),它通过一系列的对不同文件系统公用的函数指针来实际调用具体的文件系统函数,完成实际的各有差异的操作。任何使用文件系统的程序必须经过这层接口来使用它。通过这样的方式,VFS就对用户屏蔽了底层文件系统的实现细节和差异。

    VFS不仅可以对具体文件系统的数据结构进行抽象,以一种统一的数据结构进行管理,并且还可以接受用户层的系统调用,如open()、read()、write()、stat()、link()等。此外,它还支持多种具体文件系统之间的相互访问,接受内核其他子系统的操作请求,例如,内存管理和进程调度。VFS在Linux系统中的位置如图2.2所示。


图2.2 VFS在Linux系统中的位置

    通过以下命令可以查看系统中支持哪些文件系统:

    $ cat /proc/filesystems
    nodev sysfs
    nodev rootfs
    …
    nodev tmpfs
    nodev pipefs
    …
            ext2
    nodev ramfs
    nodev hugetlbfs
    iso9660
    nodev mqueue
    nodev selinuxfs
            ext3
    nodev rpc_pipefs
    …

    本文选自华清远见嵌入式培训教材《从实践中学嵌入式Linux应用程序开发》

   热点链接:

   1、嵌入式文件系统构建
   2、Linux系统调用及用户编程接口(API)
   3、什么是Linux系统调用,包括哪些内容
   4、Linux内核移植的简介
   5、典型嵌入式Linux系统设置

更多新闻>>