linux 文件系统 是什么意思

linux 文件系统 是什么意思,第1张

文件系统是 *** 作系统用于明确存储设备(常见的是磁盘,也有基于NANDFlash的固态硬盘)或分区上的文件的方法和数据结构;

即在存储设备上组织文件的方法。

*** 作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统

文件系统由三部分组成:文件系统的接口,对对象 *** 纵和管理的软件集合,对象及属性。

从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。

Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux

用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。

Linux

允许众多不同的文件系统共存,并支持跨文件系统的文件 *** 作,这是因为有虚拟文件系统的存在。虚拟文件系统,即VFS(Virtual File

System)是 Linux 内核中的一个软件抽象层。它通过一些数据结构及其方法向实际的文件系统如 ext2,vfat

提供接口机制。本文在简要介绍 VFS 的相关数据结构后,以文件 I/O 为切入点深入 Linux 内核源代码,追踪了 sys_open 和

sys_read 两个系统调用的代码结构,并在追踪的过程中理清了跨文件系统的文件 *** 作的基本原理和“一切皆是文件”的口号得以实现的根本。

VFS

是一套代码框架(framework),它处于文件系统的使用者与具体的文件系统之间,将两者隔离开来。这种引入一个抽象层次的设计思想,即“上层不依赖

于具体实现,而依赖于接口;下层不依赖于具体实现,而依赖于接口”,就是著名的“依赖反转”,它在 Linux内核中随处可见。

VFS框架的设计,需要满足如下需求:

1、  为上层的用户提供统一的文件和目录的 *** 作接口,如  open, read, write

2、  为下层的具体的文件系统,定义一系列统一的 *** 作“接口”, 如 file_operations, inode_operations, dentry_operation,而具体的文件系统必须实现这些接口,才能融入VFS框架中。

为此,VFS 需要:

1、 定义一套文件系统的统一概念

2、 在这套概念基础上,实现提供给上层用户的 *** 作接口,如 open, read, write 等

3、 提供一套机制,让下层的具体的文件系统可融入 VFS 框架中,如文件系统的“注册”和“安装”

VFS核心概念

1、 VFS 通过树状结构来管理文件系统,树状结构的任何一个节点都是“目录节点”

2、 树状结构具有一个“根节点”

3、 VFS 通过“超级块”来了解一个具体文件系统的所有需要的信息。具体文件系统必须先向VFS注册,注册后,VFS就可以获得该文件系统的“超级块”。

4、 具体文件系统可被安装到某个“目录节点”上,安装后,具体文件系统才可以被使用

5、 用户对文件的 *** 作,就是通过VFS 的接口,找到对应文件的“目录节点”,然后调用该“目录节点”对应的 *** 作接口。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8430363.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存