Linux内核虚拟文件系统

Posted 五个板栗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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是一个典型的特殊文件系统。

Linux内核虚拟文件系统_虚拟文件系统

文件系统挂载:

不同于大部分类unix内核,linux内核允许一个文件系统被多次挂载,当一个文件系统被挂载n次的时候,其根目录的挂载点也有n个。虽然同一个文件系统可以通过不同的路径访问,但是他们之间确是不同的。一个文件系统对应一个超级块,不管它被挂载了多少次。文件系统的挂载点可能是另一个挂载在其他文件系统上的文件系统的某个目录。

Linux同样允许多个文件系统挂载到同一个挂载点,每一个新挂载的文件系统隐藏了前一个文件系统的目录,即便前一个文件系统目录中的某些文件被当前运行的某些进程使用(这些进程仍能正常使用被隐藏的文件)。当某个挂载点上的最后挂载的文件系统被卸载时,在它之前(如果有)挂载的文件系统目录此时变为可见的。

以上是关于Linux内核虚拟文件系统的主要内容,如果未能解决你的问题,请参考以下文章

Linux内核虚拟文件系统

Linux 内核Linux 内核特性 ( 组织形式 | 进程调度 | 内核线程 | 多平台虚拟内存管理 | 虚拟文件系统 | 内核模块机制 | 定制系统调用 | 网络模块架构 )

(笔记)Linux内核学习之虚拟文件系统概念

linux内核分析 第六周读书笔记

LFS 系列从零开始 DIY Linux 系统:构建 LFS 系统 - 准备虚拟内核文件系统

Linux内核里的DebugFS