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 ZwQueryLicenseValue
aufgerufen 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, ExGetLicenseTamperState
und 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 0x1B
das 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