免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

第二十讲:Linux 文件系统

第二十讲:Linux 文件系统 大家好接下来的一段时间我将开始学习野火的Linux 系统课程并将学习到的干货逐步更新到我的CSDN博客中。没时间刷课的同学可以把我的博客喂给AI 突击一下。目录一、一切皆文件思想二、VFS 虚拟文件系统VFS 内部核心结构体两套操作函数集函数指针多态实现三、文件系统两大分类四、完整调用层级五、总结一、一切皆文件思想Linux 内核设计思想屏蔽硬件差异将普通文件、硬件设备、进程信息全部抽象为文件。 上层应用统一使用open/read/write/close一套系统调用接口访问无需关心底层是磁盘、Flash、硬件设备还是内核运行信息。二、VFS 虚拟文件系统VFS 不是真正可以挂载使用的文件系统是内核抽象中间层框架。作用定义一套统一的文件操作接口由不同底层文件系统去实现这套接口。应用访问文件本质是访问 VFS 抽象层VFS 再转发给对应的底层文件系统。VFS 内部核心结构体super_block超级块描述一个已经挂载的文件系统。inode代表一个具体文件保存文件元数据权限、大小不保存文件名。dentry目录项保存文件名、文件路径用于路径查找缓存。两套操作函数集函数指针多态实现inode_operations文件管理操作rmdir删除、rename重命名、link创建链接。file_operations文件读写操作open打开、read读、write写。VFS 只定义接口真正逻辑由底层文件系统实现。三、文件系统两大分类普通文件系统、特殊虚拟文件系统是平级关系二者都注册、挂载到 VFS 抽象层不存在父子层级。分类特点代表文件系统挂载点说明普通文件系统有实体数据存储在磁盘 / Flash 物理介质掉电数据保留ext4、fat32、ubifs/、/mnt等ext4Linux 主流磁盘文件系统fat32U 盘、SD 卡跨平台ubifs嵌入式 NAND‑Flash 专用特殊虚拟文件系统内核内存动态生成无物理存储断电数据丢失procfs、devfs、sysfs/proc/dev/sysprocfs进程文件系统查看进程、CPU、内存信息devfs设备文件系统硬件操作接口四、完整调用层级应用程序app → glibc库 ↓ ↓ 系统调用 open/read/write ↓ VFS虚拟文件系统抽象框架定义统一接口 ├─普通文件系统实现ext4 / fat32 / ubifs → 磁盘/Flash硬件 └─虚拟特殊文件系统实现procfs / devfs → 内核内存调用流程APP 发起文件操作经过 glibc触发系统调用进入内核 VFS 层查找对应的super_block、inode、dentryVFS 调用对应文件系统实现的inode_operations/file_operations如果是普通文件系统读写物理存储虚拟文件系统读取内核内存数据。五、总结VFS抽象框架不能直接挂载procfs、devfs是真实可挂载的虚拟文件系统运行在 VFS 之下
返回列表