我在我的 mac mini core 2 duo 上运行 linux。有趣的是,这台机器的 EFI 是 32 位的,而操作系统是 64 位的。由于 32 位 EFI,我只有 4GB 的地址空间。其中一些空间是内存映射 I/O,但在 (sudo cat) 中窥探之后/proc/iomem
,我发现相当大的空间似乎没有被映射。例如:
00000000-00000fff : Reserved
00001000-0009fbff : System RAM
0009fc00-0009ffff : Reserved
000a0000-000bffff : PCI Bus 0000:00
000c0000-000c7fff : Video ROM
000e0000-000fffff : Reserved
000f0000-000fffff : System ROM
00100000-be0c4fff : System RAM
afe00000-b0c00eb0 : Kernel code
b0c00eb1-b165817f : Kernel data
b1927000-b1dfffff : Kernel bss
be0c5000-be2c5fff : ACPI Non-volatile Storage
be2c6000-beebdfff : ACPI Tables
beebe000-beeeefff : ACPI Non-volatile Storage
beeef000-beefffff : ACPI Tables
bef00000-bfffffff : Reserved
bf000000-bffc0000 : Graphics Stolen Memory
c0000000-febfffff : PCI Bus 0000:00
c0000000-cfffffff : 0000:00:02.0
d0000000-d00fffff : PCI Bus 0000:03
d0000000-d0000fff : 0000:03:03.0
d0000000-d0000fff : firewire_ohci
d0100000-d01fffff : PCI Bus 0000:02
d0100000-d010ffff : 0000:02:00.0
d0100000-d010ffff : ath5k
d0200000-d02fffff : PCI Bus 0000:01
d0200000-d0203fff : 0000:01:00.0
d0200000-d0203fff : sky2
d0220000-d023ffff : 0000:01:00.0
d0300000-d0300fff : Intel Flush Page
d0380000-d03fffff : 0000:00:02.0
d0400000-d043ffff : 0000:00:02.0
d0440000-d0443fff : 0000:00:1b.0
d0440000-d0443fff : ICH HD audio
d0444000-d0444fff : 0000:00:07.0
d0445000-d04453ff : 0000:00:1f.2
d0445400-d04457ff : 0000:00:1d.7
d0445400-d04457ff : ehci_hcd
d0500000-d06fffff : PCI Bus 0000:01
d0700000-d08fffff : PCI Bus 0000:02
e0000000-efffffff : PCI MMCONFIG 0000 [bus 00-ff]
e0000000-efffffff : Reserved
e0000000-efffffff : pnp 00:00
fec00000-fec00fff : Reserved
fec00000-fec003ff : IOAPIC 0
fed00000-fed003ff : HPET 0
fed00000-fed003ff : pnp 00:01
fed14000-fed19fff : Reserved
fed14000-fed17fff : pnp 00:00
fed18000-fed18fff : pnp 00:00
fed19000-fed19fff : pnp 00:00
fed1c000-fed1ffff : Reserved
fed1c000-fed1ffff : pnp 00:00
fed1f410-fed1f414 : iTCO_wdt.1.auto
fed20000-fed8ffff : pnp 00:00
fee00000-fee00fff : Local APIC
fee00000-fee00fff : Reserved
ff000000-ffffffff : INT0800:00
ffe00000-ffffffff : Reserved
系统 RAM 的地址空间为 2.969GB (00100000-be0c4fff),这是我的计算机可识别的 RAM 大小。我正在查看的位置之一是在最后一个 PCI 总线 (d08fffff) 之后,其中似乎没有任何来自 (d0900000-dfffffff) 的地址空间,即 247 MB 的地址空间。
为什么这里什么都没有?如果有东西,为什么我看不到?
值得一提的是,我安装了两个 2GB 内存条并且都被识别,但是这个系统从来没有看到超过 2.9GB 的内存,因为其余的地址空间都被使用了(或者我是这么认为的)。
即使没有分配给特定的端口或设备,它仍然分配给 PCI 总线。
您的输出是一棵树,每个缩进都是该树中的一个细分。您的查询地址前有一行
d0900000-dfffffff
您的地址属于哪个。这意味着整个地址范围被封锁并分配给 PCI 总线及其所有子设备。如果您愿意,可以将其视为“保留以供将来使用”的路标,但正是地址分配阻止了该范围。