Linux内核虚拟文件系统

听闻少年二字,当与平庸相斥。这篇文章主要讲述Linux内核虚拟文件系统相关的知识,希望能为你提供帮助。
【Linux内核虚拟文件系统】Linux内核支持多种文件系统,它和其它unix变种一样,通过虚拟文件系统完成对不同文件系统的支持。第一个虚拟文件系统出现在1986年sun公司的微系统SunOS中,自此以后,大多数unix文件系统都包含VFS。Linux的VFS支持的文件系统最为广泛。
虚拟文件系统(VFS)是内核处理所有标准Unix文件系统相关的系统调用的软件层,linux内核通过虚拟文件系统层屏蔽了不同底层文件系统的差异,向上提供了统一的接口。VFS支持的文件系统类型主要分为以下三大类:

  • 基于磁盘的文件系统:
数据存储于本地磁盘或其他能枚举出磁盘的设备(如USB falsh)的文件系统,比如Linux的文件系统exe2,ext3,其他Unix变种的文件系统如syssv,UFS,VxFS,微软文件系统如VFAT,NTFS,CD-ROM文件系统如UDF,其他私有文件系统如IBM的HPFS,苹果的HFS等等。
  • 网络文件系统:
用来简单的访问网络上其他主机上的文件系统,比如NFS,Coda, AFS,CIFS和NCP等。
  • 特殊文件系统:
该类文件系统不会管理本地或远程磁盘空间,/proc是一个典型的特殊文件系统。

文件系统挂载:
不同于大部分类unix内核,linux内核允许一个文件系统被多次挂载,当一个文件系统被挂载n次的时候,其根目录的挂载点也有n个。虽然同一个文件系统可以通过不同的路径访问,但是他们之间确是不同的。一个文件系统对应一个超级块,不管它被挂载了多少次。文件系统的挂载点可能是另一个挂载在其他文件系统上的文件系统的某个目录。
Linux同样允许多个文件系统挂载到同一个挂载点,每一个新挂载的文件系统隐藏了前一个文件系统的目录,即便前一个文件系统目录中的某些文件被当前运行的某些进程使用(这些进程仍能正常使用被隐藏的文件)。当某个挂载点上的最后挂载的文件系统被卸载时,在它之前(如果有)挂载的文件系统目录此时变为可见的。

    推荐阅读