×
嵌入式开发 > 详情

Linux虚拟文件系统的基本概念

发布时间:2020-06-30 发布时间:
|

计算机技术发展到今天.已经形成了各种不同的文件系统。以通用操作系统为目标的Linux,当然应具有管理各种文件系统的能力。那么,如何来管理这些格式各异的文件系统呢?

Linux基本思想是:既然都是文件系统,那么它们总有一些共性,于是就可以利用这些共性来构建一个统一的文件系统框架,并在这个框架中留出必要的空间;当这个虚拟文件系统需要管理一个实际文件系统时,把这个实际文件系统与共性有差异的信 息抽取到这个预留的空间,而以框架的通用部分作为与用户的接口,就可以实现不同文件系统的统一管理了。

基于上述思想,Linux构建了一个格式统一的文件管理框架,其中的各个数据结构,除了保存所有文件系统的共性信息和框架本身所需的信息之外,同时也留出 了必要的空间以存放实际文件系统的特殊信息。系统初始化时就在内存中创建这样一个文件系统框架,当系统需要使用某一个具体的文件系统时,就把这个文件 系统的特殊信息采集到框架的预留空间中来。这样,就可以把各种不同的文件系统统一纳人到一个框架体系中管理起来,从而使用户可用一个统一的界面(即统 一的系统调用)对各种不同的文件系统中的文件进行操作了。这个格式统一的文件系统框架,就叫做虚拟文件系统。

简单地说,就是在各种格式的文件系统基础上用虚拟文件的格式进行一次封装,把具体文件系统的差异用虚拟文件系统隔离开来,从而使用户面对的是一个统一 的虚拟文件系统界面。

Linux虚拟文件系统与实际文件系统之间的关系示意图如图所示。图中×××_info所表示的就是自实际文件系统提取到虚拟文件系统,以表征实际文件系统差异 的信息。

图 Linux虚拟文件系统与实际文件系统的关系示意图

由上可知,虚拟文件系统既没有文件,也不直接管理文件,它只是用户与实际文件系统之间的接口。因此,它并不需要保存在永久存储介质中,而只是在需要 时由内核在内存中创建起来的一个文件系统,所以叫做虚拟文件系统。

为了构建虚拟文件系统,Linux定义了一些数据结构。这些数据结构的形式很像我们今天使用的格式合同:里面也有统一、标准的条目,也有由用户来填写的 与用户特殊要求相关的条目。

出于系统性能和Linux系统设计者的喜好(他们对Ext2文件系统情有独钟),VFS的构架与Ext2基本相同:文件系统与文件的基本信息仍然分别用VFS超级块和 VFS的i节点这两个数据结构来描述,而对目录文件项的描述则使用了一个新的数据结构dentry。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
寻找半导体产业未来10年的驱动力