首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux内核是如何挂载文件系统的?这到底是怎么回事?

问Linux内核是如何挂载文件系统的?这到底是怎么回事?
EN

Unix & Linux用户
提问于 2013-08-14 21:35:47
回答 3查看 3.9K关注 0票数 7

我的问题涉及Linux源代码,如果它实际上包含安装、解析和使用文件系统所必需的代码,或者是否添加到源代码中。

如果Linux源代码包含通过文件系统解析和访问/组织文件的代码,那么可以肯定地说,文件系统是由一个在Linux中编码的设备驱动程序控制的,还是这个过程是基于发行版、发行版等而不同的。

Linux如何在其他存储设备上使用文件系统访问文件,即用户空间程序如何访问proc、ext3、ext4等,以及ext3、ext4是否被认为是“设备驱动程序”,因为它们直接使用硬件操作,还是我错了?

EN

回答 3

Unix & Linux用户

发布于 2013-08-15 00:53:47

内核中有一个组件(简称虚拟文件系统 ),它为所有文件系统提供了一个通用接口。它理解文件类型(常规文件、目录、符号链接、…)。,元数据(时间、权限、…)和文件内容。

每个Linux进程都位于指定文件系统挂载位置的命名空间中。通常,所有进程都位于同一个名称空间中;名称空间主要用于支持虚拟化。命名空间本质上是路径的集合,内部文件系统引用与每个路径相关联。挂载和卸载包括更改名称空间。

当进程访问文件时,VFS组件将根据进程的命名空间和当前目录解析路径,并确定文件位于哪个挂载点下。然后,VFS根据与挂载点关联的内部文件系统引用,将与文件相关的命令分发给适当的文件系统驱动程序。

文件系统驱动程序的工作是将命令转换为数据存储或检索。每种文件系统类型。大多数文件系统驱动程序不直接与硬件交互,而只与其他驱动程序交互。磁盘支持的文件系统的驱动程序(ext4、btrfs、vfat、…)将命令转换为块存储操作(从分区或其他块设备读取和写入扇区)。网络支持的文件系统(nfs、cifs、…)的驱动程序。通过网络通道将命令转换为通信。内部内核文件系统(proc、sysfs、…)的驱动程序只能靠自己工作。熔断器文件系统驱动程序将命令传递给用户进程。

票数 12
EN

Unix & Linux用户

发布于 2013-08-14 21:49:10

对于每个文件系统,都有一个使用API编写的驱动程序,当它遇到存储在该类型文件系统上的对象时,VFS可以调用该驱动程序。这允许在整个目录层次上透明地处理Linux的面向文件和面向文件系统的系统调用(尽可能多,例如没有对VFAT的权限,因此chown(2)将失败)。

票数 6
EN

Unix & Linux用户

发布于 2013-08-15 01:41:21

每种类型的FileSystem都是内核中的驱动程序。FileSystem驱动程序调用磁盘驱动程序访问块设备。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/86787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档