題 是什麼限制Windows 7 x64機器<= 192GB RAM?


我知道主板,BIOS等可能會設置我們可以在單個機器上安裝或使用多少RAM的上限。但是,什麼定義了Windows 7 x64的最大RAM?

這是操作系統的基本架構限制嗎?不同的Windows 7版本具有不同的RAM最大值(Starter edition <= 2GB,Professional <= 192 GB)。它可能真的改變了嗎?

作為對比,Ubuntu 64x允許高達1024GB的RAM。


114
2018-02-03 22:21


起源


可能重複 64位操作系統和RAM - Ƭᴇcʜιᴇ007
他們選擇了物理限制。當Windows 7發佈時,沒有硬件在非服務器市場上支持超過192GB的內存 - Ramhound
安裝Windows 8,這裡的Pro / Enterprise可以使用512GB RAM。 - magicandre1981
將Windows與Ubuntu / Linux在任何事物/領域進行比較是一個笑話,對吧? :] 有 數千 Windows缺乏的Ubuntu / Linux的東西和功能。這就像問,為什麼單色打印機不能打印顏色,如果顏色可以! :] - trejder


答案:


簡答:許可證

從等式中排除硬件,主要是人為的軟件限制:

通過調用名為的函數從註冊表中檢索[限制] ZwQueryLicenseValue,它本身是從Microsoft發布的符號文件名稱為內部過程調用的 MxMemoryLicense

資源: 32位Windows Vista中的許可內存

其他信息

當然,即使是未記錄的格式存儲在註冊表中的許可證數據也可能很容易被用戶更改,因為微軟會對不同的許可證收取明顯不同的價格,因此他們會有一些嘗試。因此,微軟有一個精心設計的方案來檢查許可證數據是否仍然是微軟想要的。內核是許可數據是否被篡改的存儲庫,為此導出了另外兩個函數, ExGetLicenseTamperState 和 ExSetLicenseTamperState

資源: 軟件許可

ExGetLicenseTamperState

這個[未記錄的]函數詢問內核許可證數據是否已被篡改。

內部使用是在一個計時器,大約每小時重複一次。如果發現篡改狀態 4然後Windows停止。錯誤檢查代碼是 SYSTEM_LICENSE_VIOLATION (0x9A),有 0x1B 作為第一個論點。

資源: ExGetLicenseTamperState

一個實際的例子

假設你有一台32的電腦 吉布 的RAM,並安裝Windows 7 Home Premium x64(64位)。在這種情況下,您將被限制為16 GiB。如果你要使用 Windows Anytime Upgrade,併升級到更昂貴的版本,突然限制將設置為192 GiB。

結論

所有Windows 7版本共享相同的源代碼。主要區別在於啟用或禁用的功能/限制的數量。專業版和更高版本的客戶端版本對其可以處理的內存數量沒有上限,並且只獲得Microsoft保證支持的許可。

此外,Windows 7 EULA明確表示您可能不會“將該軟件用於商業軟件託管服務”,暗示微軟認為如果您需要更多的RAM來獲得最高客戶端版本的許可,那麼您真正想要的是服務器執照。 Windows 7的服務器版本(即Windows Server 2008 R2)可以在Enterprise和Datacenter版本中使用最多2 TiB的RAM。

隨著技術的快速發展,昨天可接受的可能不夠明天。為了趕上,Windows 8分別將Core和Pro / Enterprise版本的限制提升到128 GiB和512 GiB。但這僅適用於64位版本:32位版本的上限仍為4 GiB。服務器版本Windows Server 2012可以在較高版本中處理最多4 TiB的RAM。

進一步閱讀


185
2018-02-03 22:26



這是最好的答案,因為它通過分析鏈接到一個好的來源。 - Kevin Panko
只是一個輕微的防禦:源代碼可能是相同的,但它不一定是沒有支持時可能存在的相同代碼。例如,當您擁有大量處理器時,已經做了很多工作來提高可伸縮性(請參閱此處的“全局調度程序鎖定”: tomshardware.com/news/microsoft-windows-server,6589.html)。在所有版本中,該代碼幾乎肯定是相同的,但是更高版本的Windows支持更多CPU。但支持更多的CPU需要更多的工作。為這項工作收取更多費用是否公平? - Mark Sowul
簡而言之:min(license_limit,physical_limit) - akira
與每個許可證的大多數其他成本相比,@ AndonM.Coleman產品(如銷售這麼多副本的Windows每個許可證的開發成本)是微不足道的。我看到在線文章稱,Windows 8在前6個月銷售了1億多個許可證。在Windows 8 / 8.1的整個生命週期中,我預計每個許可證的開發成本將低於生產零售盒和每盒內容的成本。新版本的Windows通常不是從頭開始編寫的。 Windows 8 / 8.1 / 2012都非常相似,與vista / 7/2008相似。 XP / 2003/2000也可以組合在一起 - BeowulfNode42
不要誤解我的意思,新版本已經完成了它們的工作,使它們比舊版本更好。但是內存管理之類的東西在版本之間保持幾乎相同經常進行一些調整,因為新的硬件突出了以前在測試中不明顯的問題。但主要代碼在產品組中保持不變。 - BeowulfNode42


微軟以這種方式授權。他們可能希望您去購買獲得更多資源運行許可的Windows Server產品。 它與SQL Server等其他產品相同。 SQL Server Express對其有限制,因此如果您需要更多資源,則必須購買允許它的產品。


53



他,Windows Server是免費提供給學生的(夢想火花),對我們來說,獲得它比購買Windows副本更可行...(沒有隸屬關係) - gparyani
這是32位Windows XP及以上版本可支持PAE但MS將限制限制在4GB內存的原因之一 - phuclv
@MattH限制為3GB是因為上面的Gig是內存映射到外設 - ratchet freak
@MattH這是一個常見的誤解。舉個例子,看看官方 Windows Server 2008系統要求: “最大值 (32位 系統):4GB(標準)或64GB(企業和數據中心)。“在這種情況下,4 GB是許可限制,64 GB是 物理地址擴展 限制(假設芯片組支持重映射)。 - and31415
消費者32位Windows拒絕使用超過4GB的地址空間的原因是有太多的傳統32位驅動程序不知道PAE並且如果與它一起使用會導致BSOD。如果MS啟用了這將是一個支持噩夢。 - Andrew Medico