关于32位操作系统最大能支持4G内存的问题
关于这个问题,我是这么理解的:
① 确切的说,应该是32位CPU最大支持4G内存
因为32位CPU有32根地址总线,每根线0或1,总共2^32种可能性,2^32个内存地址,每个内存地址对应1个字节的内容,所以是4G
② 因为32位操作系统本身只是为32位cpu设计的,所以32位系统下,即便是64位的CPU,也仅有32根地址线工作
这是操作系统的限制吧,32位操作系统,只编址到32位?
我的理解正确吗?
谢谢诸位
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不是。
Intel 的 32 位 CPU,可使用的地址总线是 36 根(而非 32 根),可寻址的最大内存空间是
2^36 = 64G
,可用的地址空间是4G
。而 16 位系统的 8086 使用了 20 根地址总线寻址。即使是 64 位 CPU,地址总线是 46 根,最大的寻址地址是
2^46 = 64T
。所以,这个不是由总线决定的,而是由操作系统限制的。即使 Windows 系统,通过 PAE 完全可以使用超过 4G 的 RAM,至于为什么默认被禁用,主要原因还是 Windows 需要兼容以前的版本,尤其是驱动程序。
结合虚拟页面,操作系统本身就已经突破这一限制了,4G应该指的是单个进程的内存寻址限制吧。抱歉有点忘记了。
一楼答案很标准。赞一个