你一定有聽說過!目前Windows XP 和 Vista 都抓不到4GB以上的記憶體,最多只能用到 3.25GB 而已。正確來說,應該是「32位元」的Windows系統都有這個問題,如果想趁現在RAM便宜買多一點回來用,就要灌64位元的XP或Vista才行 了。

但是64位元的Windows有個很大的缺點,就是 很多軟體、遊戲不一定完全支援64-bit的作業系統,即使能抓到4GB以上的RAM,某些軟體不能跑也沒有用啊!

當你買了 4GB 以上的記憶體卻無法全部用到,一定很不甘心,而網路上的建議大多是要你利用 RamDisk 這類工具,把無法抓到的剩餘記憶體設成「虛擬硬碟」, 用來儲存快取及暫存檔。這麼做雖然真的可以稍微加速電腦運作,不過還是治標不治本。

在本期《密技偷偷報 No.45》中,我們已成功試驗出解決方法,但說實在的還不算完全成功啦,因為目前僅能讓 Windows Vista 抓到 4GB 以上的記憶體(是真 的可用,並非只是顯示數字擺好看的),但對於 Windows XP 來講只成功一半,必須在安全模式下才能抓到。無論如何,這仍然可算是一大突破,32位元系統無法使用4GB以上記憶體的限制終於被打破了!

 

為何32位元Windows 不能使用4GB以上的記憶體?

其實這是早就命中註定的結果,只是最近一年記憶體價 格狂降,很多人一口氣在板子上插了超過4GB的記憶體,發現Windows居然最多只能抓到3.25GB,才逐漸在網路上形成討論。

為什麼說是命中註定?你應該看過賭神在最近500副牌裡故意加進去摸戒指的動作吧(快打開第四台)?微軟也是在好多年前就在Windows裡加入了 一個封印,讓32-bit的Windows XP無法使用超過4GB的記憶體,到了後來的Vista也是這樣照玩不誤。

你可能聽過一般人的理解是這樣:

→ 32位元OS先天的定址能力上限就是 4GB (2 的 32 次方)
→ 扣掉要保留給硬體等資源使用的空間,作業系統最多只剩下 3.25GB 可用


其實這個解釋不完全正確,因為從古早的32位元 Pentium II CPU開始,為了解決硬體定址上限,早就開發了「PAE」(Physical Address Extension, 實體位址延伸)模式,增加了 4 條定址線,也就是最大的記憶體定址上限擴充到 2^36=64GB。只 要作業系統也支援此技術,就能使用4GB以上的記憶體,像32位元的Linux、FreeBSD都可以。

那麼32位元的Windows呢?說出來也許你會嚇一跳,不管是XP或Vista,預設都是開啟PAE模式的, 但為什麼還抓不到4GB記憶體?合理的解釋就是微軟下了封印,限制住記憶體的最大用量。也許是作業系統本身寫的不夠好,不敢用太複雜的方式使用記憶體;也 許是為了和高階的Windows Server版本有區隔......。不知道,誰去問問微軟的意見吧?

假的數字
▲在Vista SP1的版本中,雖然已經可以正確辨識出4GB以上的記憶體了,但是在工作管理員裡面,可用的實體記憶體大小仍然只有3.25GB,也就是看的到卻吃不 到,根本就是裝孝維而已。


修改Vista核心,衝破4GB限制


不管微軟到底在想什麼,總之我們先得到一個結論,就是32位 元的Windows理論上是支援PAE模式,也能使用超過4GB的記憶體

依據我們實測的結果,在Vista中是得到印證的。Windows Vista 的核心檔「ntkrnlpa.exe」 本身其實有完整支援 PAE 的程式碼,但可能是被封印住了,經過我們修改破解後,果然成功解除限制,插上 5GB 的記憶體全部被抓到,也能完全使用。

※修改流程:
開啟BIOS記憶體重新映射支援 → 修改破解ntkrnlpa.exe核心 → 修改新核心的總和檢查碼 → 產生新的憑證及數位簽章 → 將新核心加入Vista開機選單

衝破4GB
▲修改過後,不管在系統資訊或工作管理員,可用實體記憶體都是呈現真正的大小。

http://pcuser.pixnet.net/blog/post/25008055

jakonson 發表在 痞客邦 PIXNET 留言(0) 人氣()