我看这块代码是十多年前
之所以记着,是因为当时看这块代码纠正了我的认知
在看这块代码之前,也是跟LZ理解的类似,任意物理内存都由伙伴系统管理
当时看的2.4.2x还是2.6早期代码,具体忘了
内核初始化阶段好像是通过bootmem进行物理内存的分配管理,细节上用的是bitmap(现在的内核不知道是否还用这种方法)
bootmem运行到最后,把free的提交给伙伴系统初始化,像内核代码占用的区域是不交给伙伴系统初始化的
可以理解成,伙伴系统看到多少物理内存是由bootmem位图决定的(自己没有尝试过,LZ可以自己更改对bootmem的调用,比如占据一部分物理内存,最后看看伙伴系统是否会管理这部分内存)
伙伴系统看不到这部分物理内存,产生page fault进行映射的时候,虚拟地址也不会映射到这块物理地址
LZ可以自己看看对应的内核代码,如果觉得新内核代码太多,找一个旧版本看看会省点时间
【 在 wjhtingerx 的大作中提到: 】
: 不分配也要映射的啊
:
--
FROM 123.113.69.*