为什么32位的 *** 作系统限制内存到4G

为什么32位的 *** 作系统限制内存到4G,第1张

这问题就得去问微软了,谁叫32位的 *** 作系统是他们开发的呢,其中的道理也只有微软才能解释的通

补充参考资料:

很多人可能都听过类似微软的声明,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的内存,这是由于线性地址空间的限制。

win7 32位最大只给程序分配2G内存,可以用下面的命令提升。

bcdedit /set IncreaseUserVA 3072

要恢复的话就执行

bcdedit /Deletevalue IncreaseUserVa

两行命令都需要重启机器生效。

64位系统内存限制不清楚。

1不能到4G的原因是32位系统的X86架构。32位X86架构是指个人电脑的地址总线是32位的,CPU、内存控制器、 *** 作系统都是按32位地址总线设计。32位地址总线可以支持的内存地址代码是4096MB。这4GB个地址码正好可以分配给4GB内存。但是其它寄存器都需要系统分配给它们地址代码,所以总容量为4GB的内存就有一部分内存分配不到地址代码而不能使用。

2你的只有235GB是因为你的笔记本是集成显卡。集成显卡占用了你的一部分物理内存作为显存使用了。

3其实在Win7上可以通过程序破解Windows PAE内核文件ntkrnlpaexe,绕系统内部函数的许可限制,让32位的VISTA/Win7支持超过4GB物理内存。

以上就是关于为什么32位的 *** 作系统限制内存到4G全部的内容,包括:为什么32位的 *** 作系统限制内存到4G、win7 32位和64位单进程内存限制各是多少、关于32位win7内存限制等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9663885.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存