linux 内核大小,Linux-Linux内核是如何知道物理内存大小的?

linux 内核大小,Linux-Linux内核是如何知道物理内存大小的?BIOS会提供一个physicalRAMmap,内核启动时会解析从BIOS中读取到系统内存映射,并打印出来,[0.000000]BIOS-providedphysicalRAMmap:[0.000000]BIOS-e820:0000000000000000-000000000009f800(usable)[0.000000]BIOS-e820:…

大家好,欢迎来到IT知识分享网。

BIOS会提供一个physical RAM map,内核启动时会解析从BIOS中读取到系统内存映射,并打印出来,

[ 0.000000] BIOS-provided physical RAM map:

[ 0.000000] BIOS-e820: 0000000000000000 – 000000000009f800 (usable)

[ 0.000000] BIOS-e820: 000000000009f800 – 00000000000a0000 (reserved)

[ 0.000000] BIOS-e820: 00000000000f0000 – 0000000000100000 (reserved)

[ 0.000000] BIOS-e820: 0000000000100000 – 000000003f590000 (usable)

[ 0.000000] BIOS-e820: 000000003f590000 – 000000003f5e3000 (ACPI NVS)

[ 0.000000] BIOS-e820: 000000003f5e3000 – 000000003f5f0000 (ACPI data)

[ 0.000000] BIOS-e820: 000000003f5f0000 – 000000003f600000 (reserved)

[ 0.000000] BIOS-e820: 00000000e0000000 – 00000000f0000000 (reserved)

[ 0.000000] BIOS-e820: 00000000fec00000 – 0000000100000000 (reserved)

实模式下的初始化代码通过使用BIOS的int 0x15服务并执行0xe820号函数(即上面的BIOS-e820字符串)来获得系统的内存映射信息。内存映射信息中包含了预留的和可用的内存,内核将随后使用这些信息创建其可用的内存池。

至于LZ问的BIOS如何得知这个RAM map,这个还真不知道,有没有可能通过硬件电路判断呢?(举个简单的例子,PC用户在添加内存条时,并不需要手动去配置,这个应该只能是通过硬件去感知了吧)

参考阅读:《精通Linux设备驱动开发》第2章

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23752.html

(0)
上一篇 2023-09-03 16:45
下一篇 2023-09-06 21:00

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信