理解/ proc / iomem

时间:2013-12-09 11:31:52

标签: linux linux-kernel embedded-linux

我正在调查" / proc / iomem"条目并对此有疑问。

我的Linux PC运行的是Intel Xeon,系统RAM为4GB。

我的系统的

/ proc / iomem条目看起来像

00000000-0000ffff : reserved
00010000-0009f3ff : System RAM
0009f400-0009ffff : reserved
000a0000-000bffff : PCI Bus 0000:00
000c0000-000c7fff : Video ROM
000ca000-000cbfff : reserved
  000ca000-000cafff : Adapter ROM
  000cb000-000cbfff : Adapter ROM
000cc000-000cffff : PCI Bus 0000:00
000d0000-000d3fff : PCI Bus 0000:00
000d4000-000d7fff : PCI Bus 0000:00
000d8000-000dbfff : PCI Bus 0000:00
000dc000-000fffff : reserved
  000f0000-000fffff : System ROM
00100000-7fedffff : System RAM
  01000000-01520fa4 : Kernel code
  01520fa5-01c0e44f : Kernel data
  01d56000-0201d963 : Kernel bss
  03000000-0b0fffff : Crash kernel
7fee0000-7fefefff : ACPI Tables
7feff000-7fefffff : ACPI Non-volatile Storage
7ff00000-7fffffff : System RAM
c0000000-febfffff : PCI Bus 0000:00
fec00000-fec0ffff : reserved
  fec00000-fec003ff : IOAPIC 0
fed00000-fed003ff : HPET 0
  fed00000-fed003ff : pnp 00:08
fee00000-fee00fff : Local APIC
  fee00000-fee00fff : reserved
fffe0000-ffffffff : reserved

现在,假设我的处理器有32个地址线(我觉得它有40个地址线 - 我从/ proc / cpuinfo看到这个),这意味着我的处理器将能够处理4GB的物理内存。

从我的" / proc / iomem"条目,我看到我的CPU只能直接寻址2GB的系统RAM。

现在我怀疑是

  1. 我的CPU如何处理其他2 GB的RAM?我在哪里可以看到内存映射?

1 个答案:

答案 0 :(得分:3)

您正在运行3 GB barrier(您的BIOS已降至2 GB)。 只有2 GB用作系统RAM;另外2 GB的物理地址空间用于I / O设备。

另一个内存用作high memory,不能直接使用,但必须逐页映射到虚拟地址空间。