微软解释为何故意将消费级 32 位 Windows 的内存限制在 4GB 32 位 Windows 受限于 4GB 内存是一个广为流传的误解,理由是 32 位地址只能表示 2^32 种组合,换算下来就是 4GB。这种说法乍听之下很有道理,但了解 Windows XP 和物理地址扩展(PAE)的历史后就会发现并非如此。
微软实际上提供了一种机制,让 32 位 x86 系统能够寻址超过 4GB 的物理内存。Windows Server 版本可以利用它访问超过这一上限的内存,而客户端版本则是有意不这么做。设置这一限制,是为了避免不可靠的硬件驱动导致电脑崩溃。
但更多内存为什么会导致电脑崩溃?既然 32 位 Windows 在技术上能够寻址更多内存,微软为什么不让普通用户使用呢?
人们认为 32 位 Windows 被限制在 4GB,是因为 32 位数字无法表示更大的数值。对于虚拟内存来说,这种理解基本没错,但物理内存的工作方式有所不同。
微软资深工程师 Raymond Chen 多年前就回答过这个问题,原因在于一项名为物理地址扩展的功能。它也被称为 PAE,是英特尔集成到 Pentium Pro 中的一项技术,能够让 32 位 x86 芯片使用 36 位物理地址,而不是 32 位地址。
Windows 仍会为每个 32 位程序提供 4GB 的虚拟地址空间,但普通程序只能使用其中的 2GB,其余空间由系统保留。变化在于,操作系统可以在后台管理多少物理内存。微软的 PAE 文档展示了这些额外位能够带来多大的扩展能力:Windows Server 2003 SP1 Enterprise 最高支持 64GB,而 Datacenter 在芯片支持相应寻址范围的情况下最高可达 128GB。
支持 PAE 的 Windows 版本。来源:微软因此,问题就变成了 CPU 在技术上能够做到什么,以及 Windows 客户端版本允许用户使用什么。
既然硬件能够支持更多内存,微软为什么不直接让所有人使用?Chen 的答案与驱动有关!
启用 PAE 来分配超过 4GB 的内存后,驱动就不能再假设物理地址能够轻松容纳在 32 位以内。Windows 的 PAE 文档说明了驱动代码可能出现的问题:
微软的支持文档写道:“通常情况下,设备驱动需要进行一些小幅修改。虽然实际的代码改动可能很少,但修改过程可能很困难。这是因为在不使用 PAE 内存寻址时,设备驱动可能会假设物理地址与 32 位虚拟地址的上限相同。而 PAE 内存使这一假设不再成立。”
启用 PAE 的 Windows XP。来源:Reddit想象一下,驱动获取到一个需要超过 32 位才能表示的物理地址,却仍然直接将其截断。Windows 以为自己把数据写入了某个位置,硬件却将数据写到了另一个位置。具体被覆盖的内容不同,可能导致内存损坏或系统崩溃。
消费级电脑中充满了这类风险。打印机、扫描仪、摄像头、声卡,以及用户随手购买的各种扩展卡,都需要相应的驱动,而微软的大多数人员并没有针对 PAE 对这些驱动进行测试。
这尤其影响了 Windows XP SP2 和 Windows Server 2003 SP1 Standard Edition。微软修改了两者的硬件抽象层,将物理地址空间限制在 4GB,正是为了防止 PAE 暴露更多内存后,未经测试的驱动损坏内存。

随着 64 位系统逐渐普及,只有 4GB 内存的电脑变得越来越少。正如 Chen 所说:“Windows 从 2020 年开始不再鼓励生产采用 32 位处理器的系统,并最终在 Windows 11 中彻底停止推出 32 位版本。”
当你意识到 Windows Server 与面向普通用户的 Windows 是两个完全不同的生态系统后,答案就很明显了。服务器管理员运行的是受到严格控制的系统,使用的硬件也经过精心挑选。
“服务器之所以启用超过 4GB 的内存,是因为作为服务器管理员,你不会安装从 Best Buy 淘来的、售价 10 美元的廉价手持扫描仪所配的随机驱动。”Chen 说道。
服务器管理员会坚持使用 Windows 自带的标准驱动。正如 Chen 所说,他们甚至不会安装显卡厂商提供的驱动。关键在于,Windows 自带的每个驱动都经过了超过 4GB 地址的测试。但一款 2001 年生产、售价 10 美元的扫描仪驱动并没有接受这种测试,很可能会截断这些地址并损坏内存。

我们消费者几乎什么都可能安装,而服务器管理员则会尽量少安装软件。大多数消费者没有专业技术能力,但服务器管理员身边有熟练的技术人员负责管理系统。
微软的文档证实,Windows XP SP2 和 Windows Server 2003 SP1 Standard Edition 修改了硬件抽象层,将物理地址空间限制在 4GB,从而降低驱动兼容性风险。
Chen 还否定了微软限制内存是为了推动用户转向 Windows Server 的阴谋论。但支持超过 4GB 内存的最便宜 Windows Server 2003 版本是 Enterprise 版,售价高达 3999 美元,仅这一点就足以驳斥这种说法。
Windows XP 和 Windows Server 2003 的内存限制。来源:微软经过多年发展,Windows 和第三方应用越来越占用内存,微软目前正努力让 Windows 11 在 8GB 内存的电脑上流畅运行。说到底,MacBook Neo 也起到了一定作用,正如我们此前报道的那样。
但如果整个行业当初又经历了十年内存短缺时代呢?得益于 AI,这种情况已经成为现实,而开发者如今似乎更加重视内存占用。
如今那些动辄占用数百 MB 内存的应用,或许会呈现完全不同的面貌。不过 WhatsApp 是个例外,因为 Meta 对优化这款应用似乎毫无兴趣。虽然过去的 4GB 限制并没有造成今天的软件臃肿,但这也提醒我们:硬件限制往往会迫使人们提高效率,而资源充足通常不会带来这种效果。