32 位 Windows 系統是否能夠使用 4GB 及以上的內存?

從問題直接換一根2G的內存條好還是加一根1G? 而來,根據問題為什麼32位win7不能識別4G以上內存?原理是怎樣的?能否使32位win7識別和使用4G以上內存? 的說明,32位系統因為定址限制只能識別4G內存,然後因為硬體映射需要一些內存地址的緣故實際可用的常常在3.25G、3.5G之類的數值上。據稱32位的伺服器版Windows系統提供了名為PAE的技術使得系統可以超過4G的限制,但同時網上還有眾多文章說這是坑人的(例如警惕「32位Win7裝4G內存」的謬論 ,但這一篇明顯就是邏輯混亂,前面說『32位系統用上4G內存不是簡單的PAE就能解決的』,後面又說『32位伺服器版系統可以支持超過4G是因為有PAE技術』,自己寫東西都不考慮嚴謹性?),因此非常困惑。

希望有真的用了ready for 4GB這個軟體的同學來回答一下你的親身體會是怎樣的(系統識別圖、前後系統跑分圖等等做論據),純講理論如果是要解釋PAE的部分就算了,這是可以搜索到的PAE_百度百科

說『64位即將要普及了內存也是4G起跳這個問題沒有意義』的答案也請算了,這個問題本身只是技術討論,無關前沿探索。


為何微軟不在新的操作系統中讓 32 位支持大於 4GB 的內存? - 北極的回答

從以上回答中複製一部分關鍵的內容過來:

幾個結論:

1、PAE允許操作系統在32位模式下使用大於4G的物理內存。

2、不管是否使用PAE,對於單個進程而言,32位系統下可見的地址空間最大只有4G。

3、PAE的優勢是可以讓不同的進程(在不同的地址空間里)累計使用大於4G的內存,因此而達到使用超過4G內存的目的。

4、WindowsXP系列雖然支持PAE,但實際在使用中最大內存限制在了4G,是人為限制的,原因後面給分析(樓上給出的各種理由都不成立,這裡是有技術原因的)。

5、Linux則在開啟PAE的模式下能支持在32位系統中使用超過4G的內存。

參考文獻:The
RAM reported by the System Properties dialog box and the System
Information tool is less than you expect in Windows Vista or in Windows
XP Service Pack 2 or later version

文獻里關鍵的內容是,如果在XP系統(包括Vista)使用超過4G內存,會影響驅動的DMA,容易導致程序崩潰或者藍屏,所以為了保持兼容性,XP不允許使用超過4G內存(詳細解釋見引用的回答),server版因為一開始就與普通版不兼容,所以不存在兼容性的問題。

所以,即使破解了XP的限制,使用PAE訪問大於4G的物理內存,那麼這個系統可能是很不穩定的,有可能崩潰(實際上有很多人遇到過這種問題,百度一下有很多,藍屏、某些軟體無法使用等)。

最終結論:

微軟人為限制了XP的最大內存,是為了保持兼容性,不是不想支持更大內存,而是不能。


32位的windows伺服器系統,典型如Win Server 2003,可以支持超過4G的內存。其限制在於單個線程最多只能使用3G。這項功能的基礎是PAE。Server 2003數據中心32位版支持的最大內存容量為64G。


推薦閱讀:

Windows 8 失敗了嗎?
哪些使用方式會讓 Windows 7/8 變得不流暢、不穩定?
為什麼 Android 因為過於「碎片化」而飽受詬病,但 Windows 卻沒有類似困擾?
在XP挑戰賽中,這些安全軟體里,360 真的如新聞宣傳中所說,沒被黑客攻破?
Windows 的註冊表是個好的設計嗎?

TAG:MicrosoftWindows | 操作系統 | 計算機 | Windows7 |