Windows 7 x64 makinelerini <= 192GB RAM ile sınırlandıran nedir?


117

Anakartların, BIOS'un, vb., Tek tek makinelere ne kadar RAM kurabileceğimiz veya kullanabileceğimiz konusunda üst sınırlar getirebileceğini biliyorum. Ancak, Windows 7 x64 için maksimum RAM'i ne tanımlar?

Bu, işletim sisteminin temel bir mimari sınırlaması mıdır? Farklı Windows 7 sürümlerinde farklı RAM maksimum değerleri vardır (Başlangıç ​​sürümü <= 2GB, Professional <= 192 GB). Gerçekten değişebilecek bir şey mi?

Karşılaştırma olarak, Ubuntu 64x, 1024GB RAM'e izin veriyor.



1
Fiziksel sınırlamaları seçerler. Windows 7 piyasaya sürüldüğünde, sunucu dışı pazarda
192GB'tan

5
Windows 8'i yükleyin, burada Pro / Enterprise 512GB RAM kullanabilir.
magicandre1981

Yanıtlar:


185

Kısa cevap: lisans

Denklemdeki donanım dışında, çoğunlukla yapay bir yazılım kısıtlamasıdır:

[] Limiti, ZwQueryLicenseValueMicrosoft’un yayınladığı sembol dosyalarının adını verdiği dahili bir prosedürden denilen adlı bir işlev çağrılarak kayıt defterinden alınır MxMemoryLicense.

Kaynak: 32 Bit Windows Vista'daki Lisanslı Bellek

Ek bilgi

Tabii ki, belgelenmemiş bir formatta bile kayıt defterinde saklanan lisans verileri, kullanıcılar tarafından kolayca değiştirilebilir; bu durum, Microsoft farklı lisanslar için önemli ölçüde farklı fiyatlar talep ettiğinden, denemek için bazı teşvikleri vardır. Bu nedenle Microsoft, lisans verilerinin Microsoft'un istediği şekilde kaldığını kontrol etmek için ayrıntılı bir şemaya sahiptir. Çekirdek, lisans verilerinin değiştirilip değiştirilmediğine ilişkin bir depodur ve bu amaçla iki işlevi daha ihraç eder ExGetLicenseTamperStateve ExSetLicenseTamperState.

Kaynak: Yazılım Lisanslama

­

ExGetLicenseTamperState

Bu [belgelenmemiş] işlev, çekirdeğe lisans verilerinin değiştirilip değiştirilmediğini sorar.

Dahili kullanım yaklaşık her saatte bir tekrarlayan bir zamanlayıcıda. Dış müdahale durumu olduğu tespit edilirse, 4Windows durur. Hata kontrol kodu SYSTEM_LICENSE_VIOLATION( 0x9A), 0x1Bilk argüman olarak.

Kaynak: ExGetLicenseTamperState

Pratik bir örnek

Diyelim ki 32 GiB RAM'e sahip bir bilgisayarınız var ve Windows 7 Home Premium x64'ü (64-bit) kurdunuz. Bu durumda 16 GiB ile sınırlı kalacaksınız. Windows Anytime Upgrade'ı kullanıyorsanız ve daha pahalı bir sürüme yükseltirseniz, aniden limit bunun yerine 192 GiB olarak belirlenirdi.

Sonuç

Tüm Windows 7 sürümleri aynı kaynak kodunu paylaşır. En büyük fark, etkinleştirilen veya devre dışı bırakılan özelliklerin / sınırlamaların sayısıdır. Profesyonel ve daha yüksek istemci sürümlerinin, ne kadar RAM kullanabilecekleri konusunda bir üst sınırı yoktur ve yalnızca Microsoft'un destekleyeceği garantiyle lisanslıdır.

Ek olarak, Windows 7 EULA açıkça "ticari yazılım barındırma hizmetleri için yazılımı kullanamayabileceğinizi" söylüyor, Microsoft, en yüksek istemci sürümünün lisanslı olduğu lisanslı bilgisayardan daha fazla RAM'e ihtiyacınız varsa, gerçekte istediğinizi bir sunucu olduğunu varsayıyor lisans. Windows 7'nin sunucu karşılığı (yani, Windows Server 2008 R2), Enterprise ve Datacenter sürümlerinde 2 TiB RAM kullanabilir.

Teknoloji hızla ilerlerken, dün kabul edilebilir olan şeyler yarın yetmeyebilir. Yakalamak için, Windows 8, Core ve Pro / Enterprise sürümleri için sırasıyla 128 GiB ve 512 GiB sınırlarını yükseltti. Ancak bu, yalnızca 64 bit sürümler için geçerlidir: 32 bit sürümler yine de 4 GiB'de sınırlıdır. Sunucu sürümü, Windows Server 2012, daha yüksek sürümlerde 4 TiB RAM'e kadar hizmet verebilir.

daha fazla okuma


32
En iyi cevap budur çünkü analiz ile iyi bir kaynağa bağlanır.
Kevin Panko

9
Sadece hafif bir savunma: kaynak kodu aynı olabilir, ancak mutlaka destek olmadan orada olacak kodla aynı değildir. Örnek olarak, çok sayıda işlemciniz olduğunda ölçeklenebilirliği artırmak için birçok çalışma yapıldı (bkz. "Genel dağıtıcı kilidi": tomshardware.com/news/microsoft-windows-server, 6589.html ). Bu kod tüm sürümlerde neredeyse kesinlikle aynıdır, ancak daha yüksek Windows sürümleri daha fazla CPU destekler. Fakat daha fazla CPU'yu desteklemek daha fazla iş aldı. Bu iş için daha fazla ücret almak adil mi?
Mark Sowul,

8
Kısacası: min (license_limit, physical_limit)
akira

2
@ AndonM.Coleman, bu kadar çok kopyalayan Windows gibi ürünler lisans başına geliştirme maliyetlerini, lisans başına diğer çoğu maliyetlerle karşılaştırıldığında önemsizdir. Windows 8’in ilk 6 ayda 100 milyondan fazla lisans sattığını söyleyen çevrimiçi makaleler görüyorum. Windows 8 / 8.1'in ömrü boyunca lisans başına geliştirme maliyetinin, perakende kutu ve kutu başına içerik üretme maliyetinden daha az olacağını düşünüyorum. Windows'un yeni sürümleri genellikle sıfırdan yazılmaz. Windows 8 / 8.1 / 2012'nin hepsi ÇOK benzer ve başlık altında Vista / 7 / 2008'e benzer. XP / 2003/2000 de birlikte gruplandırılabilir
BeowulfNode42

5
Beni yanlış anlamayın, yeni sürümler eski sürümlerden daha iyi hale getirmek için üzerinde çalışmalar yaptı. Ancak bellek yönetimi gibi şeyler sürümler arasında neredeyse aynı kalır. Yeni donanım, daha önce testlerde açıkça görülmeyen sorunları vurguladığından, birkaç ayar sık ​​sık yapılır. Ancak ana kod bir ürün grubunda aynı kalır.
BeowulfNode42

53

Microsoft bu şekilde lisans veriyor. Muhtemelen gidip daha fazla kaynakla çalışacak şekilde lisanslanmış bir Windows Server ürününün ücretini ödemenizi istiyorlar. SQL Server gibi diğer ürünlerle aynı. SQL Server Express'in üzerinde sınırlamalar vardır, böylece daha fazla kaynağa ihtiyacınız olursa, izin verilen ürünü satın almanız gerekir.


6
O, Windows Server öğrencilere ücretsiz ( dreamspark ) için müsait durumda , bu nedenle, bizim için, Windows'un bir kopyasını satın almaktan daha uygun ... (üyelik yok)
gparyani

2
Bu 32-bit Windows XP ve üstü Windows’un PAE’yi desteklemesinin sebeplerinden biridir, ancak MS limitini 4GB RAM ile sınırlar
phuclv

3
Üst Gig bellek çevre eşleştirilir için 3GB'a sınırı @MattH
ucube mandal

2
@MattH Bu yaygın bir yanılgıdır. Örnek olarak, resmi Windows Server 2008 Sistem Gereksinimleri'ne bir göz atın : "Maksimum ( 32 bit sistemler): 4GB (Standart) veya 64GB (Kurumsal ve Veri Merkezi)." Bu durumda 4 GB bir lisans kısıtlamasıdır ve 64 GB ise Fiziksel Adres Uzantısı sınırıdır (yonga setinin yeniden kullanılmayı desteklediğini varsayarsak).
ve31415,

3
Tüketici 32 bit Windows'un 4 GB'den fazla adres alanı kullanmayı reddetmesinin nedeni, PAE'den haberi olmayan ve bununla birlikte kullanıldığında BSOD'lara neden olacak çok sayıda eski 32 bit sürücünün olmasıdır. MS bunu yapsaydı, bir destek kabusu olurdu.
Andrew Medico
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.