原本笔者想将这个系列命名为“Linux内核观止之XXX”,但是后来觉得一则不太可能完全网络天下Linux内核文章而融会贯通,做到类似于四库全书的事情;二来Linux内核技术并非一成不变的,而是不断向前发展的,假使当时完全达到了前一目标,随着时间的推移,也是会逐渐过时的。因此冠以“观止”二字显然是不合适的。
经过一番思索,还是觉得应立足于当下,重其意而不重其形,因此将本系列命名为“Linux内核有什么之XXX子系统有什么”。之所以如此命名,以内存管理子系统为例,我是想表达两层意思:
总之,笔者希望通过本系列,大家(包括我自己)能够修炼并提升内功,完成Linux Kernel(各个子系统)由入门到提高、由提高到掌握、由掌握到精通、由精通到大师、由大师到化境的一步步的蜕变。
在本系列中我并不准备沿用之前和华清远见合作推出的“Linux内核开发及优化”系列课程中《Linux内存管理》课程中的思路(也是一般文章或课程的常规思路),一开始先讲解Linux内存管理子系统概述即相关概念,然后开始讲体系结构与内存模型,再之后是内存管理模型、三级结构及相关数据结构,最后讲伙伴系统、slab分配器。而是换一套思路,以应用层代码作为切入点,单刀直入地到系统调用,再由系统调用切入内核的内存管理子系统。在此过程中,结合实际代码再对于所涉及到的相关数据结构以及机制进行解析,这样由上到下、以一条主线带动整体,学起来要比常规思路掌握得通透并且过程要更加有趣。
闲言少叙,书归正传。