我正在查看“ / proc / iomem”条目,对此有疑问。
我的Linux PC正在运行Intel Xeon,并且具有4GB的系统RAM。
/ proc / iomem我的系统条目看起来像
00000000-0000ffff:保留00010000-0009f3ff:系统RAM0009f400-0009ffff:保留000a0000-000bffff:PCI总线0000:00000c0000-000c7fff:视频ROM000ca000-000cbfff:保留000ca000-000cafff:适配器ROM000cb000-000cbfff:适配器ROM000cc000-000cffff:PCI总线0000:00000d0000-000d3fff:PCI总线0000:00000d4000-000d7fff:PCI总线0000:00000d8000-000dbfff:PCI总线0000:00000dc000-000fffff:保留000f0000-000fffff:系统ROM00100000-7fedffff:系统RAM01000000-01520fa4:内核代码01520fa5-01c0e44f:内核数据01d56000-0201d963:内核bss03000000-0b0fffff:崩溃内核7fee0000-7fefefff:ACPI表7feff000-7fefffff:ACPI非易失性存储7ff00000-7fffffff:系统RAMc0000000-febfffff:PCI总线0000:00fec00000-fec0ffff:保留fec00000-fec003ff:IOAPIC 0fed00000-fed003ff:HPET 0fed00000-fed003ff:PNP 00:08fee00000-fee00fff:本地APICfee00000-fee00fff:保留fffe0000-ffffffff:保留
现在,假设我的处理器有32条地址线(我觉得它有40条地址线-我从/ proc / cpuinfo中看到了这条线,这意味着我的处理器将能够寻址4GB的物理内存。
从我的“ / proc / iomem”条目来看,我发现我的CPU仅直接寻址2GB的系统RAM。
现在我的疑问是
您正在运行3 GB barrier(BIOS已降低到2 GB)。仅2 GB用作系统RAM。其他2 GB的物理地址空间用于I / O设备。
另一个内存用作high memory,不能直接使用,但是每当要访问它时,都必须将其逐页映射到虚拟地址空间。