Linux内核各个模块中,内存管理这一块是非常复杂的一部分。主要是因为作为公共资源,内存模块几乎关联了所有的其他模块。要满足各种各样的需求,导致内存部分的设计十分庞杂,又充满各种技巧。整体来看,总是给人云里雾里的感觉,似乎明白了,又似乎不明白;抓住了这一块,似乎又丢了那一块。最难有一个整体的视图。
当然,上述只是博主个人的感觉。相信在相关设计者的心中,一切可能都脉络清晰,层次分明。不管怎样,我等学习者,只能硬着头皮一点一点肯了。
最近,就因为上述原因,整理了下之前了解的Linux内存相关的结构关系,将它们放在一起,以期能有一个初步的全局的视图。姑且就叫做大蓝图吧。不过这个蓝图还不够详细,省略了很多结构细节。记得之前学习计算机网络时,见过一个汇总各种协议的文档,可以不断放大,然后不断显现更多细节的信息。缩小时,细节又被收缩起来,从而展示更加全局的关系。做这个大蓝图的最终目标也如上述协议蓝图,可大可小,可全可细。这里,先开一个头,记录一下,后面边学边补充,这其中可能还夹杂有问题,欢迎大家指正。