我的问题是关于 Linux 源代码,以及它是否真的包含本地安装、解析和使用文件系统所需的代码,或者是否已将其添加到源代码中。
如果 Linux 源代码包含通过文件系统等解析和访问/组织文件的代码,那么可以肯定地说文件系统由编码到 Linux 中的设备驱动程序控制,或者此过程是否因发行版、发布等
Linux如何使用其他存储设备上的文件系统访问文件,即用户空间程序如何访问proc、ext3、ext4等,ext3、ext4被认为是“设备驱动程序”,因为它们直接与硬件操作,还是我有错吗?
Gil*_*il' 11
内核中有一个组件(称为虚拟文件系统,简称 VFS),为所有文件系统提供通用接口。它了解文件类型(常规文件、目录、符号链接等)、元数据(时间、权限等)和文件内容等内容。
每个 Linux 进程都位于指定文件系统挂载位置的命名空间中。通常所有进程都位于同一个命名空间中;命名空间主要用于支持虚拟化。命名空间本质上是一组路径,每个路径都有一个内部文件系统引用。挂载和卸载包括更改该命名空间。
当进程访问文件时,VFS 组件根据进程的命名空间和当前目录解析路径,并确定文件位于哪个挂载点。然后,VFS 根据与挂载点关联的内部文件系统引用,将与文件相关的命令分派给适当的文件系统驱动程序。
将命令转换为数据存储或检索是文件系统驱动程序的工作。每种文件系统类型。大多数文件系统驱动程序不直接与硬件交互,而只与其他驱动程序交互。磁盘支持的文件系统(ext4、btrfs、vfat 等)的驱动程序将命令转换为块存储操作(从分区或其他块设备读取和写入扇区)。网络支持的文件系统(nfs、cifs 等)的驱动程序将命令转换为通过网络通道进行的通信。内部内核文件系统(proc、sysfs 等)的驱动程序独立工作。的FUSE文件系统驱动程序上的用户级过程转到该命令。