当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]本文主要是介绍一下linux内核的虚拟文件系统(VFS)。虚拟文件系统(VFS,virtual filesystem),是一个内核软件层,是物理文件系统与服务之间的一个接口层,它对Linux的每个文件系统的所有细节进行抽象,使得不同的文件系统在Linux核心以及系统中运行的其他进程看来,都是相同的。 

本文主要是介绍一下linux内核的虚拟文件系统(VFS)。虚拟文件系统(VFS,virtual filesystem),是一个内核软件层,是物理文件系统与服务之间的一个接口层,它对Linux的每个文件系统的所有细节进行抽象,使得不同的文件系统在Linux核心以及系统中运行的其他进程看来,都是相同的。 

严格说来,VFS并不是一种实际的文件系统。它只存在于内存中,不存在于任何外存空间。VFS在系统启动时建立,在系统关闭时消亡。 Linux中系统可以使用连接成单一树形结构的不同文件系统。VFS可以无缝地使用多个不同的文件系统,通过VFS可以访问文件系统的系统调用提供一个统一的抽象接口,支持多种文件系统。  

VFS的作用是采用标准的UNIX系统调用读/写位于不同物理介质上的不同文件系统,方便的在不同文件系统间进行数据交换和管理。  Linux系统中,VFS使用4个主要对象:超级块、索引节点、目录项、文件对象。每个对象的数据结构中不仅包含了属性还包含了对应的操作。

1、超级块 

超级块用于存储已安装文件系统的控制信息的数据结构,代表已安装的文件系统,一个安装实例和一个超级块是一一对应关系。超级块描述文件系统的状态、文件系统类型、大小、区块数、索引节点数等,存放在磁盘的特定扇区中。  超级块使用结构体super_block表示。 

(1)变量s_list指向超级块链表的指针,同一时间内核会拥有好几个文件系统的超级块,内核采用双向循环链表的方式来组织这些超级块。 

(2)变量s_root指针指向目录项的根目录。 

2、索引节点 

存储文件的元数据的一种结构,文件的元数据就是文件的相关信息,和文件本身是两种概念。它包含诸如文件大小、拥有者、创建时间、磁盘位置等和文件相关的信息。  每个索引节点都有一个索引节点号,唯一的标识文件系统中的文件。索引节点在文件的整个生命周期都存在。

索引节点使用结构体inode来表示。 

(1)变量i_hash包含了一个指向哈希链表的指针,哈希表加速索引节点的查找。  

(2)i_ino保存一个索引号,唯一标识。 

(3)变量i_sb指针指向文件所驻留的文件系统的超级块。

3、目录项(dentry)

存放目录项(文件的特定名称)与对应文件进行链接的有关信息。在一个文件路径中,路径中的每一部分都被称为目录,如/home/source/hello.c中,目录/,home,source和文件hello.c都是一个目录项。  

目录项使用结构体struct dentry来表示。 

4、文件对象 

文件对象表示进程已打开的一个文件,它是已打开文件在内存中的表示。多进程可能同时打开同一文件,内存中可能存在多个与同一文件对应的文件对象,但与该文件对应的索引节点和目录项是唯一的。  

文件对象使用结构体struct file来表示。 

 

5、四者的关系 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

双系统将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对双系统的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 双系统 Windows Linux

安装Linux操作系统并不复杂,下面是一个大致的步骤指南,以帮助您完成安装。1. 下载Linux发行版:首先,您需要从Linux发行版官方网站下载最新的ISO镜像文件。

关键字: Linux 操作系统 ISO镜像

计算机是由一堆硬件组成的,为了有限的控制这些硬件资源,于是就有了操作系统的产生,操作系统是软件子系统的一部分,是硬件基础上的第一层软件。

关键字: Linux 操作系统 计算机

Linux操作系统是一套免费使用和自由传播的类Unix操作系统,通常被称为GNU/Linux。它是由林纳斯·托瓦兹在1991年首次发布的,并基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Lin...

关键字: Linux 操作系统

所谓进程间通信就是在不同进程之间传播或交换信息,它是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息;还可以让一个程序能够在同一时间里处理许多用户的需求。

关键字: Linux 进程通信 编程接口

串口通信作为一种最传统的通信方式,在工业自动化、通讯、控制等领域得到广泛使用。

关键字: Linux 串口通信 通讯

2023年11月16日: MikroElektronika(MIKROE) ,作为一家通过提供基于成熟标准的创新式硬软件产品来大幅缩短开发时间的嵌入式解决方案公司,今天宣布推出一款基于单线设备的软硬件开源解决方案Cli...

关键字: 嵌入式 Linux 操作系统

Linux是一种免费使用和自由传播的类Unix操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布。它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CP...

关键字: Linux 操作系统

本文中,小编将对嵌入式予以介绍,如果你想对它的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 嵌入式 Linux

在这篇文章中,小编将为大家带来嵌入式 Linux的相关报道。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: 嵌入式 Linux
关闭
关闭