linux内核与实现中分别大致介绍了内核子系统的各个模块,并给出了该模块下重要的数据结构。但是,阅读过本书之后(感觉底层确实欠缺)发现只是对各个子系统分别有了一个大致的印象,单凭自己的理解难以将各个系统之间串联起来,尤其是每个内核子系统总是涉及较多的数据结构。趁着即将元旦假期,花点时间将内核中的虚拟文件系统、进程地址空间、页缓存以及内存映射之间的关系建立一个大致的框图。有关于各个子系统内部的结构体之间的关系,尤其是虚拟文件系统,请参考图中红色部分的博客地址。关于虚拟内存,逻辑地址、线性地址和物理地址之间的转换请参考途中蓝色部分的博客。
下文中的图是根据《linux内核设计与实现》以及众多的博客画出,希望能对初步了解linux内核的同学有所帮助。