Was begrenzt Windows 7 x64-Computer auf <= 192 GB RAM?


117

Ich weiß, dass Motherboards, BIOS usw. möglicherweise Obergrenzen für den Arbeitsspeicher festlegen, den wir auf einzelnen Computern installieren oder verwenden können. Was definiert jedoch den maximalen Arbeitsspeicher für Windows 7 x64?

Ist das eine grundlegende architektonische Einschränkung des Betriebssystems? Verschiedene Windows 7-Versionen haben unterschiedliche RAM-Maximalwerte (Starter Edition <= 2 GB, Professional <= 192 GB). Ist es etwas, das tatsächlich geändert werden kann?

Zum Vergleich: Ubuntu 64x bietet bis zu 1024 GB RAM.



1
Sie wählen körperliche Einschränkungen. Als Windows 7 veröffentlicht wurde, gab es keine Hardware, die mehr als 192 GB Speicher auf dem Nicht-Server-Markt unterstützte
Ramhound

5
Installieren Sie Windows 8, hier kann Pro / Enterprise 512 GB RAM verwenden.
magicandre1981

Antworten:


185

Kurze Antwort: die Lizenz

Ausgenommen Hardware von der Gleichung, handelt es sich meistens um eine künstliche Softwareeinschränkung:

Das Limit [The] wird aus der Registrierung abgerufen, indem eine benannte Funktion ZwQueryLicenseValueaufgerufen wird, die selbst von einer internen Prozedur aufgerufen wird, unter der die von Microsoft veröffentlichten Symboldateien den Namen tragen MxMemoryLicense.

Quelle: Lizenzierter Speicher in 32-Bit-Windows Vista

Zusätzliche Information

Selbstverständlich können Lizenzdaten, die in der Registrierung auch in einem nicht dokumentierten Format gespeichert sind, von den Benutzern leicht geändert werden, was für sie einen Anreiz darstellt, es zu versuchen, da Microsoft für verschiedene Lizenzen erheblich unterschiedliche Preise berechnet. Microsoft verfügt daher über ein ausgeklügeltes Schema, um zu überprüfen, ob die Lizenzdaten so bleiben, wie Microsoft es wünscht. Der Kernel ist das Repository für die, ob die Lizenzdaten manipuliert wurden, und zu diesem Zweck exportiert zwei weitere Funktionen, ExGetLicenseTamperStateund ExSetLicenseTamperState.

Quelle: Softwarelizenzierung

­

ExGetLicenseTamperState

Diese [undokumentierte] Funktion fragt den Kernel, ob die Lizenzdaten manipuliert wurden.

Die interne Verwendung erfolgt in einem Timer, der ungefähr jede Stunde wiederholt wird. Wenn der Manipulationsstatus festgestellt wird 4, wird Windows beendet. Der Fehlerprüfcode lautet SYSTEM_LICENSE_VIOLATION( 0x9A) und ist 0x1Bdas erste Argument.

Quelle: ExGetLicenseTamperState

Ein praktisches Beispiel

Angenommen, Sie haben einen Computer mit 32 GiB RAM und Windows 7 Home Premium x64 (64-Bit) installieren. In diesem Fall wären Sie auf 16 GiB beschränkt. Wenn Sie Windows Anytime Upgrade verwenden und auf eine teurere Edition aktualisieren, wird das Limit plötzlich auf 192 GiB festgelegt.

Fazit

Alle Windows 7-Editionen verwenden denselben Quellcode. Der Hauptunterschied ist die Anzahl der Funktionen / Einschränkungen, die entweder aktiviert oder deaktiviert sind. Für professionelle und höhere Client-Editionen gibt es keine Obergrenze für die Größe des Arbeitsspeichers. Sie unterliegen lediglich den von Microsoft zugesicherten Lizenzbestimmungen.

Darüber hinaus besagt der Windows 7-EULA ausdrücklich, dass Sie die Software möglicherweise nicht für kommerzielle Software-Hostingdienste verwenden. Microsoft geht davon aus, dass Sie einen Server benötigen, wenn Sie mehr RAM benötigen, als für die höchste Client-Edition lizenziert ist Lizenz. Das Server-Gegenstück von Windows 7 (dh Windows Server 2008 R2) kann in den Editionen Enterprise und Datacenter bis zu 2 TiB RAM verwenden.

Was gestern noch akzeptabel war, reicht morgen vielleicht nicht mehr aus, da sich die Technologie schnell entwickelt. Um dies aufzuholen, hat Windows 8 die Grenzwerte für die Core- und Pro / Enterprise-Edition auf 128 GiB bzw. 512 GiB angehoben. Dies gilt jedoch nur für 64-Bit-Versionen: 32-Bit-Versionen sind immer noch auf 4 GiB begrenzt. Die Serverversion Windows Server 2012 kann in höheren Editionen bis zu 4 TiB RAM adressieren.

Weitere Lektüre


32
Dies ist die beste Antwort, da sie mit einer guten Analysequelle verknüpft ist.
Kevin Panko

9
Nur eine kleine Verteidigung: Der Quellcode mag derselbe sein, aber es ist nicht unbedingt derselbe Code, der ohne die Unterstützung vorhanden gewesen wäre. Beispielsweise wurde viel Arbeit geleistet, um die Skalierbarkeit bei vielen Prozessoren zu verbessern (siehe "Globale Dispatcher-Sperre" hier: tomshardware.com/news/microsoft-windows-server,6589.html ). Dieser Code ist mit ziemlicher Sicherheit in allen Editionen gleich, jedoch unterstützen höhere Editionen von Windows mehr CPUs. Die Unterstützung weiterer CPUs erforderte jedoch mehr Arbeit. Ist es fair, für diese Arbeit mehr zu verlangen?
Mark Sowul

8
kurz gesagt: min (license_limit, physical_limit)
akira

2
@ AndonM.Coleman-Produkte wie Windows, die so viele Kopien verkaufen, dass die Entwicklungskosten pro Lizenz im Vergleich zu den meisten anderen Kosten pro Lizenz unerheblich sind. In Online-Artikeln heißt es, Windows 8 habe in den ersten 6 Monaten über 100 Millionen Lizenzen verkauft. Ich gehe davon aus, dass während der Laufzeit von Windows 8 / 8.1 die Entwicklungskosten pro Lizenz geringer sind als die Kosten für die Herstellung einer Verkaufsverpackung und des Inhalts pro Verpackung. Neue Windows-Versionen werden normalerweise nicht von Grund auf neu geschrieben. Windows 8 / 8.1 / 2012 sind alle SEHR ähnlich und ähneln unter der Haube Vista / 7/2008. XP /
2003/2000

5
Versteht mich nicht falsch, in den neuen Versionen wurde daran gearbeitet, um sie besser zu machen als in den alten Versionen. Aber Dinge wie die Speicherverwaltung bleiben zwischen den Versionen fast identisch. Ein paar Optimierungen werden häufig vorgenommen, wenn neue Hardwareprobleme hervorgehoben werden, die zuvor beim Testen nicht offensichtlich waren. In einer Produktgruppe bleibt der Hauptcode jedoch derselbe.
BeowulfNode42

53

Microsoft lizenziert es auf diese Weise. Sie möchten wahrscheinlich, dass Sie für ein Windows Server-Produkt bezahlen, das für die Ausführung mit höheren Ressourcen lizenziert ist. Dies gilt auch für andere Produkte wie SQL Server. Für SQL Server Express gelten Einschränkungen. Wenn Sie mehr Ressourcen benötigen, müssen Sie das Produkt kaufen, das dies zulässt.


6
Er er, Windows Server ist kostenlos für Studenten ( Dreamspark ), so dass es für uns einfacher ist, das zu bekommen, als eine Kopie von Windows zu kaufen ... (keine Zugehörigkeit)
gparyani

2
Dies ist einer der Gründe, warum 32-Bit-Windows XP und höher PAE unterstützen können, aber MS beschränkt das Limit auf 4 GB RAM
phuclv

3
@MattH die Grenze zu 3 GB ist, weil der obere Gig Speicher Peripheriegeräten zugeordnet ist
Ratschenfreak

2
@MattH Das ist ein weit verbreitetes Missverständnis. Sehen Sie sich als Beispiel die offiziellen Systemanforderungen für Windows Server 2008 an : "Maximum ( 32-Bit- Systeme): 4 GB (Standard) oder 64 GB (Enterprise und Datacenter)." In diesem Fall handelt es sich bei 4 GB um eine Lizenzbeschränkung und bei 64 GB um die Beschränkung der physischen Adresserweiterung (vorausgesetzt, der Chipsatz unterstützt Remapping).
And31415

3
Der Grund, warum 32-Bit-Windows-Benutzer die Verwendung von mehr als 4 GB Adressraum ablehnen, ist, dass zu viele ältere 32-Bit-Treiber PAE nicht kennen und bei Verwendung BSODs verursachen würden. Es wäre ein Albtraum, wenn MS dies ermöglichen würde.
Andrew Medico
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.