Réponse courte: la licence
En excluant le matériel de l'équation, il s'agit principalement d'une restriction logicielle artificielle:
La limite est extraite du registre en appelant une fonction nommée ZwQueryLicenseValue
, qui est elle-même appelée à partir d'une procédure interne et nommée par Microsoft dans les fichiers de symboles publiés MxMemoryLicense
.
Source: mémoire sous licence dans Windows Vista 32 bits
Information additionnelle
Bien entendu, les utilisateurs peuvent facilement modifier les données de licence stockées dans le registre, même dans un format non documenté, ce qui les inciterait à essayer, car Microsoft impose des prix très différents pour des licences différentes. Microsoft dispose donc d'un système élaboré pour vérifier que les données de la licence restent comme Microsoft le souhaite. Le noyau est le référentiel permettant d'indiquer si les données de licence ont été falsifiées. À cette fin, il exporte deux autres fonctions ExGetLicenseTamperState
et ExSetLicenseTamperState
.
Source: Licence de logiciel
ExGetLicenseTamperState
Cette fonction [non documentée] demande au noyau si les données de la licence ont été falsifiées.
L'utilisation interne est dans une minuterie qui se reproduit environ toutes les heures. Si l'état de sabotage se trouve être 4
, puis arrête de Windows. Le code de vérification de bogue est SYSTEM_LICENSE_VIOLATION
( 0x9A
), avec 0x1B
comme premier argument.
Source: ExGetLicenseTamperState
Un exemple pratique
Disons que vous avez un ordinateur avec 32 Gio de RAM et que vous installez Windows 7 Édition Familiale Premium 64 bits (64 bits). Dans ce cas, vous seriez limité à 16 Gio. Si vous utilisiez Windows Anytime Upgrade et effectuez une mise à niveau vers une édition plus onéreuse, la limite serait soudainement définie à 192 Go.
Conclusion
Toutes les éditions de Windows 7 partagent le même code source. La principale différence réside dans le nombre de fonctionnalités / limitations activées ou désactivées. Les éditions professionnelles et supérieures n'imposent aucune limite de RAM et sont simplement concédées sous licence selon les garanties de Microsoft.
De plus, le contrat de licence Windows 7 stipule explicitement que vous ne pouvez pas "utiliser le logiciel pour des services d'hébergement de logiciels commerciaux", laissant entendre que Microsoft supposait que si vous aviez besoin de plus de RAM que la version la plus payante sous licence, alors vous voulez vraiment un serveur. Licence. La contrepartie serveur de Windows 7 (c'est-à-dire Windows Server 2008 R2) peut utiliser jusqu'à 2 To de RAM dans les éditions Enterprise et Datacenter.
La technologie évoluant rapidement, ce qui était acceptable hier pourrait ne pas suffire demain. Afin de rattraper son retard, Windows 8 a relevé les limites à 128 Gio et 512 Gio pour les éditions Core et Pro / Enterprise, respectivement. Cela ne concerne cependant que les versions 64 bits: les versions 32 bits sont toujours limitées à 4 Gio. La version du serveur, Windows Server 2012, peut traiter jusqu'à 4 To de RAM dans les éditions supérieures.
Lectures complémentaires