快科技 9 月 13 日消息,长期以来,大众普遍认为 32 位 Windows 只能用 4GB 内存是因为 2^32=4GB,32 位地址数不过来,但实际上这个说法对虚拟内存成立,但物理内存的工作方式完全不同。
微软资深工程师 Raymond Chen 曾解释称,32 位 Windows 被限制在 4GB 内存并非因为 32 位地址空间的技术天花板,而是为了防止大量未经测试的硬件驱动导致系统崩溃。
Intel 早在 Pentium Pro 时代就通过 PAE 技术让 32 位 x86 芯片支持 36 位物理地址,理论上可寻址空间提升至 64GB。

微软的 PAE 文档也显示,Windows Server 2003 SP1 企业版支持到 64GB 内存,数据中心版在支持的处理器上更是最高可达 128GB。
既然硬件和操作系统都支持,为什么不让普通用户用?Raymond Chen 给出的答案指向了驱动程序。
PAE 开启后,物理地址可能超过 32 位能表示的范围,此时驱动程序不能再假设物理地址能塞进 32 位整数里。
微软在文档中表示:" 不使用 PAE 内存寻址时,设备驱动程序可以假设物理地址和 32 位虚拟地址上限是相同的,但 PAE 内存使这一假设不再成立。"
比如驱动拿到一个需要超过 32 位表示的物理地址,直接截断高位塞进 32 位变量,Windows 以为数据写到了 A 位置,硬件实际写到了 B 位置,结果可能就是内存损坏或直接蓝屏。
在普通消费级 PC 中,打印机、扫描仪、摄像头、声卡、各种杂牌扩展卡都需要驱动,而微软不可能逐一测试这些驱动在 PAE 环境下的表现。
Windows XP SP2 和 Windows Server 2003 SP1 标准版因此修改了硬件抽象层,将物理地址空间硬性限制在 4GB。

至于 Windows Server 为什么不受此限制?Chen 的解释直白而精准:服务器管理员不会随便安装驱动,只用 Windows 自带的经过 PAE 测试的原版驱动,甚至连显卡厂商驱动都不装。
Chen 同时否定了 " 微软限制内存是为了逼迫用户购买 Windows Server" 的阴谋论。事实上,支持超过 4GB 内存的最便宜 Windows Server 2003 企业版,售价高达 3999 美元,这个价格本身就足以说明微软没有这个意图。
随着 64 位计算普及,4GB 内存的 PC 越来越少见,Windows 11 最终完全停止了 32 位版本的发布。PAE 这个曾经让 32 位系统突破 4GB 的权宜之计,也随着 64 位的全面普及退出了历史舞台。

【本文结束】如需转载请务必注明出处:快科技
责任编辑:雪花


登录后才可以发布评论哦
打开小程序可以发布评论哦