操作系统实际支持的物理内存上限有三个决定因素:CPU、主板和操作系统本身。
32位操作系统一般是基于x86架构的CPU设计,传统的x86 CPU最大支持232Bytes即4GB的内存。不过目前的x86 CPU一般都支持PAE模式,启用PAE模式以后理论上能支持64位物理寻址,也就是264Bytes,但是出于性能、成本等原因,实际上PAE只是扩展到36位物理寻址,所以目前大多数CPU能支持236Bytes即64GB物理内存。
主板限制一般看主板说明书即可,都明确标明了最大支持的物理内存。这个限制一般受主板地址总线、芯片组及生产成本等影响。
说完了CPU和主板,再说回到操作系统本身。绝大多数32位操作系统都能支持到4GB内存,只有极少数例外,例如Windows XP Stater最大只支持512M内存,这主要出于产品定位的考虑。
要支持大于4GB的内存,需要操作系统能支持PAE模式。而由于PAE模式与No PAE模式虽然大体兼容,但多少还是有些不同的,所以以前的驱动程序能正常支持PAE的比较少,因此大多数操作系统默认关闭了PAE模式。
即便是启用了PAE,也不是都能支持64GB内存,有的8GB,有的到16GB……一方面是因为实际上大多数系统用不到那么大内存,支持太大内存反而会消耗很多内存做内存管理;另一方面可能也有产品分级定位的考量。
下面列出一下常见的32位操作系统支持的最大内存。
操作系统 |
最大内存(GB) |
备注 |
Windows 2000 Professional, Server |
4 |
|
Windows 2000 Advanced Server |
8 |
PAE |
Windows 2000 Datacenter |
32 |
PAE |
Windows XP Starter |
0.5 |
|
Windows XP Home & Media Center |
4 |
|
Windows XP Professional |
4 |
|
Windows Server 2003 Web |
2 |
|
Windows Server 2003 Small Business, Home, Storage |
4 |
|
Windows Server 2003 Enterprise Storage |
8 |
PAE |
Windows Server 2003 Standard (SP1/SP2/R2) |
4 |
|
Windows Server 2003 Enterprise (SP2) |
64 |
PAE |
Windows Server 2003 Datacenter (SP2) |
128 |
PAE 需特殊的服务器配置 |
Windows Vista Starter |
1 |
|
Windows Vista Home Basic |
4 |
|
Windows Vista Home Premium |
4 |
|
Windows Vista Business, Enterprise, Ultimate |
4 |
|
Windows Server 2008 Standard, Web |
4 |
|
Windows Server 2008 Enterprise, Datacenter |
64 |
PAE |
Windows 7 Starter |
2 |
|
Windows 7 Home Basic |
4 |
|
Windows 7 Home Premium |
4 |
|
Windows 7 Professional, Enterprise, Ultimate |
4 |
|
Linux kernel 2.3.23之前版本 |
4 |
|
Linux kernel 2.3.23及之后更高版本 |
64 |
PAE |
Mac OS X 10.4.4之前版本 |
4 |
|
Mac OS X 10.4.4至目前版本 |
32 |
PAE |