how does the OS know the real size of the physical memory?

佐手、 提交于 2020-01-02 04:25:15

问题


When the OS is loaded at the moment the computer is started, how does the OS know the hardware information, is there some io instruction or the booter program get information from the bios.??


回答1:


The motherboard firmware (also called BIOS, ACPI interface or EFI) allows the OS to find out the physical mapping of RAM and ROM in the system.

For example, this is the output of a booting Linux:

[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 0000000000098c00 (usable)
[    0.000000]  BIOS-e820: 0000000000098c00 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e6000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 00000000bfea0000 (usable)
[    0.000000]  BIOS-e820: 00000000bfeae000 - 00000000bfeb0000 type 9
[    0.000000]  BIOS-e820: 00000000bfeb0000 - 00000000bfec0000 (ACPI data)
[    0.000000]  BIOS-e820: 00000000bfec0000 - 00000000bfef0000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000bfef0000 - 00000000c0000000 (reserved)
[    0.000000]  BIOS-e820: 00000000ffc00000 - 0000000100000000 (reserved)
[    0.000000]  BIOS-e820: 0000000100000000 - 0000000c40000000 (usable)



回答2:


An OS that boot from a BIOS-based system query the Query System Address Map function using INT 0x15, AX=0xE820.

A UEFI-based OS would typically get the physical memory map using the GetMemoryMap() interface.




回答3:


On machines like desktop or laptop PCs, the amount of memory is given to the OS by the BIOS or the UEFI



来源:https://stackoverflow.com/questions/10337210/how-does-the-os-know-the-real-size-of-the-physical-memory

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!