我在Linux主機上使用“dmesg | grep e820”列印出了e820表的資訊:
aaa@aaa:~$ dmesg | grep e820
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x00000000000903ff] usable
[ 0.000000] BIOS-e820: [mem 0x0000000000090400-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000c9f98fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000c9f99000-0x00000000c9f99fff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000c9f9a000-0x00000000c9f9afff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000c9f9b000-0x00000000d987cfff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000d987d000-0x00000000daeb3fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000daeb4000-0x00000000daef7fff] ACPI data
[ 0.000000] BIOS-e820: [mem 0x00000000daef8000-0x00000000db818fff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000db819000-0x00000000dbdfefff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000dbdff000-0x00000000dbdfffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000dbe00000-0x00000000dfffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000f8000000-0x00000000fbffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fe000000-0x00000000fe010fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000021dffffff] usable
[ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[ 0.000000] e820: last_pfn = 0x21e000 max_arch_pfn = 0x400000000
[ 0.000000] e820: last_pfn = 0xdbe00 max_arch_pfn = 0x400000000
[ 0.000000] e820: [mem 0xe0000000-0xf7ffffff] available for PCI devices
[ 0.135637] e820: reserve RAM buffer [mem 0x00090400-0x0009ffff]
[ 0.135638] e820: reserve RAM buffer [mem 0xc9f99000-0xcbffffff]
[ 0.135638] e820: reserve RAM buffer [mem 0xd987d000-0xdbffffff]
[ 0.135639] e820: reserve RAM buffer [mem 0xdbe00000-0xdbffffff]
[ 0.135640] e820: reserve RAM buffer [mem 0x21e000000-0x21fffffff]
aaa@aaa:~$
可以看到BIOS-e820提供的最大物理地址為0x000000021dffffff,但是我這臺主機記憶體條的大小只有8G,也就是最大物理地址應該是0x00000001ffffffff。
為什么物理地址范圍超過了記憶體條8G的地址空間? 這個e820表應該如何詳細解讀?
uj5u.com熱心網友回復:
你應該理解地址空間和記憶體這兩個概念是有區別的,你的最大物理地址0x000000021dffffff,并不代表就是從0到0x000000021dffffff,中間有很多空洞,例如[ 0.000000] BIOS-e820: [mem 0x0000000000090400-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
這兩個都不連續,你把這些不連續的空洞減去,總量應該就是8G了
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/114790.html
標籤:CPU和硬件區
下一篇:ubuntu上不了網
