写在开头
在Linux Kernel - 探索Ram Disk 驱动(1) - 体验使用 和 Linux Kernel - 探索Ram Disk 驱动(2) - 源码探索 中, 我们探索了好玩的Ram Disk底层实现. 从直觉上来说, 我们能够理解数据是怎么通过文件系统写入到最后的内存中了, 但是具体对于用户程序是如何一步步通过系统调用和底层驱动交互的, 现在还是一片迷雾.
因此, 本着趁热好打铁的势头, 接下来打算对整体的文件系统框架做一个基本分析. 基本目标是, 在研究完整体框架后, 能够对文件系统整体有个大概的了解, 回到我们的起点Ram Disk, 我们能知道用户层是怎么通过层层调用最终和Ram Disk交互的.
研究重点
本次研究目的是分析整体框架, 关注流程中的关键点和关键的软件层如page cache和block io等, 对细节的地方不会过多深入.
VFS大致框架如图所示:
由于Linux中VFS(虚拟文件系统层)的存在, 使得具体的文件系统对我们理解分析整体框架的影响不大, 在涉及具体的文件系统的地方, 将采用Minix文件系统来分析. Minix是Linux最早采用的文件系统, 具备一个文件系统的基本功能, 如文件创建, 目录管理等, 如不考虑其限制的话, 使用起来和其他文件系统没有区别. 通过它, 我们可以看到具体的文件系统是如何与用户层和设备层进行交互的.
研究过程中将以Ram Disk为线索, 提出疑问, 然后通过代码解决疑问.
文章列表(持续更新)
[1] Linux Kernel - 探索Ram Disk 驱动(1) - 体验使用
[2] Linux Kernel - 探索Ram Disk 驱动(2) - 源码探索
[3] Linux Kernel - mknod系统调用
[4]