Linux中有关物理探测的思维导图,包括物理探测信息、setup_arch()函数、setup_memory_region() 函数
树图思维导图提供 物理探测思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 物理探测思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:722fa51e50fcacc836e42a7a80a9cf77
物理探测思维导图思维导图模板大纲
BIOS 不仅能引导操作系统,还担负着加电自检和对资源的扫描探测
对物理内存的自检和扫描
刚开机时所看到的信息就是此阶段 BIOS 显示的信息
内核本身就得代为检查,并根据获得的信息生成一幅物理内存构成图
调用 setup_memory_region()函数
函数处理内存构成图(map),并把内存的分布信息存放在全局变量 e820 中,后面会对此函数进行具体描述
调用 parse_mem_cmdline(cmdline_p)函数
可以通过引导命令行中的选择项来改变存储空间的逻辑结构,使其正确反映内存的物理结构
宏描述
VMALLOC_RESERVE:为 vmalloc()函数访问内核空间所保留的内存区,大小为 128MB
MAXMEM:内核能够直接映射的最大 RAM 容量,为 1GB-128MB=896MB(-PAGE_OFFSET就等于 1GB)
MAXMEM_PFN:返回由内核能直接映射的最大物理页面数
MAX_NONPAE_PFN:给出在 4GB 之上第 1 个页面的页面号
当页面扩充(PAE)功能启用时,才能访问 4GB 以上的内存
调用 sanitize_e820_map()函数
以删除内存构成图中任何重叠的部分,因为 BIOS所报告的内存构成图可能有重叠
调用 copy_e820_map()进行实际的拷贝
操作失败,创建一个伪内存构成图,这个伪构成图有两部分
0 到 640K 及 1M 到最大物理内存
打印最终的内存构成图