x86架构下的物理内存(3)

这个函数调用完毕之后,boot_params.e820_map中就保存了“哪段地址是干什么用”的信息,将来Linux在初始化物理内存的时候将使用这个信息,比如将保留给设备的地址处的页面设置为reversed,这样在分配物理页面的时候,会绕过这些被保留的地址处的页面。

附:察看Linux中的内存的问题

在Linux中可以通过top,free,/proc/meminfo等多种方式查看系统的内存,然而不同的内核编译选项编译出来的内核显示出来的内存总量却是不同的,在编译了HIGHMEM64G,也就是打开了PAE的情况下编译的内核,查到的内存总量会包括预留地址处的内存页面,而不打开PAE则不计算这些页面,显然打开PAE时的计算方式是不合理的,毕竟既然有那么多内存就应该可被使用,而实际上那些页面是不能使用的。

附:x86体系的地址映射图(注意,是地址,而不是ram)

mem

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/24773.html