Archive for October, 2008
Why cannot 32bit Windows utilize all the 4GB memory?
Oct 19, 2008
最近经常被问:明明电脑上安装了4GB的内存,为什么在32bit的Windows下面只能认出3GB多一点?
对此,稍稍Google一下就会发现有很多说明,大多是说“剩下的不到1GB被系统用掉了” “系统的硬件资源”等等。可是这样解释就会产生一个新的问题:那么为什么物理内存是1GB、2GB的时候不被系统“吃掉” ,4GB的时候系统就要吃掉一部分呢?
其实,上面的解释并不正确。其实,并不是剩下那1GB不到的内存空间被系统用掉了,而是这1GB对应的地址被系统占用了。换句话说,这1GB的空间系统无法访问。那么,这地址究竟被谁占用了呢?答案是MMIO(内存映射I/O),也就是把其他系统硬件映射到内存的地址上来进行的I/O。详细说明在下面的官方页面上也有。
http://support.microsoft.com/kb/929605
要解决这个问题,基本上就是换用64bit OS。——可是说起来容易做起来难,64bit环境的话,很多程序都可能无法运行。在32bit时代,咱们还是3GB万岁吧。