2009年8月26日星期三

微软有意让32位Vista操作系统内存限制为4GB zz

很多人可能都听过类似微软的声明,32位操作系统的内存上限为4GB,原因是32位架构只能处理这么大的物理寻址空间,如果要利用4GB以上的内存则需要64位操作系统。这些都是胡说八道,4GB的限制不是因为架构或物理硬件限制等问题,而是微软只许可你使用这么多内存。我们可以追溯一下历史,如果按照这一理论,16位操作系统的内存限制为64K,但比尔盖茨让微软的第一个16位版本操作系统设计能在1MB的物理寻址空间内使用640KB内存。Geoff Chappell在一篇文章内详细解释了为什么32位Windows Vista其实可以使用4GB以上的物理内存。

Windows Server 2008和Windows Vista SP1的核心代码是完全相同的,微软宣传32位Windows Server 2008可以使用最大64GB内存,但为什么Windows Vista SP1只能限制为4GB。难道Windows Server 2008的驱动能安全的使用4GB以上内存,而Windows Vista SP1却不行?这是一个许可问题,因为微软自己就是这么称呼它的,通过调用名为ZwQueryLicenseValue的函数,可以从注册表中检索到4GB内存限制。实际上早在10年前,32位操作系统就能在Intel的32位处理器上使用4GB以上的物理寻址空间,如Windows 2000 Professional便可以通过物理地址扩展(PAE)使用4GB以上的内存。32位和64位Windows都能使用所有物理内存,但32位Windows只能分配给每个应用程序不超过3GB的内存,这是由于线性地址空间的限制。

标签:


评论: 发表评论

订阅 博文评论 [Atom]





<< 主页

This page is powered by Blogger. Isn't yours?

订阅 博文 [Atom]