1、相关资料收集
关于物理内存分布与虚拟地址空间对应的文章:点击打开链接
2、setup_arch函数做的主要工作如下(顺序可能略有调整):例子:Setup_32.c和Setup_64.c
(1)基本的内存设置;
(2)分析命令行
(3)创建可用内存的列表
(4)将可用的物理内存直接映射到虚拟地址空间中从PAGE_OFFSET开始的内核部分
(5)激活bootmem分配器
(6)确定每个结点可用的内存页表的作用
(7)初始化内核页表并启动分页;完善内核管理页帧的数据结构
3、由free_area_init_nodes函数查到的好资料:LinuxKernel Exploration
4、bootmem阅读
5、伙伴系统阅读
(1)细节处理,likely和unlikely知多少
6、看看这个大神总结的一些基本概念:Linux物理内存管理基本概念