我正在研究“/ proc / iomem”条目,并对此有疑问。
我的Linux PC正在运行一个Intel Xeon并具有4GB的系统RAM。
/ proc / iomem条目我的系统看起来像
00000000-0000ffff:保留 00010000-0009f3ff:系统RAM 0009f400-0009ffff:保留 000a0000-000bffff:PCI总线0000:00 000c0000-000c7fff:videoROM 000ca000-000cbfff:保留 000ca000-000cafff:适配器ROM 000cb000-000cbfff:适配器ROM 000cc000-000cffff:PCI总线0000:00 000d0000-000d3fff:PCI总线0000:00 000d4000-000d7fff:PCI总线0000:00 000d8000-000dbfff:PCI总线0000:00 000dc000-000fffff:保留 000f0000-000fffff:系统ROM 00100000-7fedffff:系统RAM 01000000-01520fa4:内核代码 内核数据 01d56000-0201d963:内核bss 03000000-0b0fffff:崩溃内核 7fee0000-7fefefff:ACPI表 7feff000-7fefffff:ACPI非易失性存储器 7ff00000-7fffffff:系统RAM c0000000-febfffff:PCI总线0000:00 fec00000-fec0ffff:保留 fec00000-fec003ff:IOAPIC 0 fed00000-fed003ff:HPET 0 fed00000-fed003ff:pnp 00:08 fee00000-fee00fff:本地APIC fee00000-fee00fff:保留 fffe0000-ffffffff:保留
现在,假设我的处理器有32条地址线(我觉得它有40条地址线 – 我从/ proc / cpuinfo中看到这一行),这意味着我的处理器将能够处理4GB的物理内存。
从我的“/ proc / iomem”项目看,我看到只有2GB的系统RAM被我的CPU直接寻址。
现在我的疑问是
您正在运行3 GB的屏障 (您的BIOS已经下移到2 GB)。 只有2 GB用作系统RAM; 另外2 GB的物理地址空间用于I / O设备。
另一个内存用作高内存 ,不能直接使用,但是每当访问时必须逐页映射到虚拟地址空间。