未使用的内存地址空间 32 位

未使用的内存地址空间 32 位

我在 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 的 RAM 条,并且都能被识别,但该系统从未能够看到超过 2.9GB 的空间,因为其余的地址空间都已被使用(或者我是这样认为的)。

答案1

即使没有分配给特定端口或设备,它仍然分配给 PCI 总线。

您的输出是一棵树,每个缩进都是该树中的一个子部分。查询地址前有一行

c0000000-febfffff : PCI Bus 0000:00

您的地址属于哪个范围d0900000-dfffffff。这意味着整个地址范围被阻止并分配给 PCI 总线及其所有子设备。

如果愿意,您可以将其视为“保留以供将来使用”的路标,但正是该地址分配阻止了该范围。

相关内容