Question Qu'est-ce qui limite les machines Windows 7 x64 à <= 192 Go de RAM?


Je sais que les cartes mères, le BIOS, etc. peuvent fixer des limites supérieures à la quantité de mémoire vive que nous pouvons installer ou utiliser sur des machines individuelles. Cependant, qu'est-ce qui définit le maximum de RAM pour Windows 7 x64?

Est-ce une limitation architecturale fondamentale de l'OS? Différentes versions de Windows 7 ont des maximums de RAM différents (édition Starter <= 2 Go, Professional <= 192 Go). Est-ce quelque chose qui peut être réellement changé?

À titre de comparaison, Ubuntu 64x permet jusqu'à 1024 Go de RAM.


114
2018-02-03 22:21


origine


duplicata possible de Système d'exploitation 64 bits et RAM - Ƭᴇcʜιᴇ007
Ils choisissent des limitations physiques. Lors de la sortie de Windows 7, aucun matériel ne supportait plus de 192 Go de mémoire sur le marché des non-serveurs. - Ramhound
installez Windows 8, ici le Pro / Enterprise peut utiliser 512 Go de RAM. - magicandre1981
Comparer Windows à Ubuntu / Linux est une blague, n'est-ce pas? :] Il y a milliers des choses et des fonctionnalités, Ubuntu / Linux a, que Windows manque. C'est comme demander, pourquoi une imprimante monochrome ne peut pas imprimer en couleurs, si la couleur le permet! :] - trejder


Réponses:


Réponse courte: la licence

En excluant le matériel de l'équation, il s'agit surtout d'une restriction logicielle artificielle:

[La] limite est extraite du registre en appelant une fonction nommée ZwQueryLicenseValue, qui est lui-même appelé à partir d’une procédure interne que les fichiers de symboles publiés par Microsoft appellent MxMemoryLicense.

La source: Mémoire sous licence dans Windows Vista 32 bits

Informations complémentaires

Bien sûr, les données de licence stockées dans le registre, même dans un format non documenté, pourraient facilement être modifiées par les utilisateurs, ce qui les inciterait à essayer puisque Microsoft impose des prix très différents pour différentes licences. Microsoft a donc un système élaboré pour vérifier que les données de licence sont conservées par Microsoft. Le noyau est le référentiel pour savoir si les données de licence ont été falsifiées et, à cette fin, exporte deux fonctions supplémentaires, ExGetLicenseTamperState et ExSetLicenseTamperState.

La source: Licence de logiciel

ExGetLicenseTamperState

Cette fonction [non documentée] demande au noyau si les données de licence ont été falsifiées.

L'utilisation interne est dans une minuterie qui revient environ toutes les heures. Si l'état d'autoprotection s'avère être 4, puis Windows s'arrête. Le code de vérification de bogue est SYSTEM_LICENSE_VIOLATION (0x9A), avec 0x1B comme premier argument.

La source: ExGetLicenseTamperState

Un exemple pratique

Disons que vous avez un ordinateur avec 32 GiB de RAM, et vous installez Windows 7 Home Premium x64 (64 bits). Dans ce cas, vous seriez limité à 16 Gio. Si vous deviez utiliser Windows Anytime Upgrade, et passer à une édition plus chère, la limite serait soudainement définie à 192 Gio à la place.

Conclusion

Toutes les éditions Windows 7 partagent le même code source. La principale différence est le nombre de fonctionnalités / limitations activées ou désactivées. Les éditions client professionnelles et supérieures ne limitent pas la quantité de mémoire vive qu'elles peuvent gérer, et ne sont autorisées que par la garantie de la prise en charge par Microsoft.

En outre, le CLUF de Windows 7 stipule explicitement que vous ne pouvez pas "utiliser le logiciel pour les services d’hébergement de logiciels commerciaux", laissant entendre que Microsoft supposait que si vous avez besoin de plus de RAM Licence. La contrepartie serveur de Windows 7 (Windows Server 2008 R2) peut utiliser jusqu'à 2 TiB de RAM dans les éditions Enterprise et Datacenter.

Alors que la technologie évolue rapidement, ce qui était acceptable hier pourrait ne pas suffire demain. Afin de rattraper leur retard, Windows 8 a relevé les limites à 128 Gio et 512 Gio pour les éditions Core et Pro / Enterprise, respectivement. Cela ne concerne que les versions 64 bits, cependant: les versions 32 bits sont toujours plafonnées à 4 Gio. La version du serveur, Windows Server 2012, peut gérer jusqu'à 4 TiB de RAM dans les éditions supérieures.

Lectures complémentaires


185
2018-02-03 22:26



C'est la meilleure réponse car elle est liée à une bonne source d'analyse. - Kevin Panko
Juste une légère défense: le code source peut être le même, mais ce n'est pas nécessairement le même code qui aurait été là sans le support. À titre d'exemple, beaucoup de travail a été effectué pour améliorer l'évolutivité lorsque vous avez beaucoup de processeurs (consultez la section "Verrouillage global du répartiteur" ici: tomshardware.com/news/microsoft-windows-server,6589.html). Ce code est presque certainement le même dans toutes les éditions, mais les éditions supérieures de Windows prennent en charge davantage de processeurs. Mais supporter plus de processeurs a pris plus de travail. Est-il juste de facturer plus pour ce travail? - Mark Sowul
en bref: min (license_limit, physical_limit) - akira
@ AndonM.Coleman produits comme Windows qui vendent tellement de copies que les coûts de développement par licence sont insignifiants par rapport à la plupart des autres coûts par licence. Je vois des articles en ligne disant que Windows 8 a vendu plus de 100 millions de licences au cours des six premiers mois. Au cours de la vie de Windows 8 / 8.1, je pense que le coût de développement par licence sera inférieur au coût de production d’une boîte et du contenu par boîte. Les nouvelles versions de Windows ne sont généralement pas écrites à partir de zéro. Windows 8 / 8.1 / 2012 sont tous TRÈS similaires et similaires à Vista / 7/2008. XP / 2003/2000 peut aussi être regroupé - BeowulfNode42
Ne vous méprenez pas, les nouvelles versions ont eu du travail sur eux pour les rendre meilleurs que les anciennes versions. Mais des choses comme la gestion de la mémoire restent presque identiques entre les versions. Quelques modifications sont souvent apportées alors que le nouveau matériel met en évidence des problèmes qui n’étaient pas évidents lors des tests précédents. Mais le code principal reste le même dans un groupe de produits. - BeowulfNode42


Microsoft vous accorde une licence de cette manière. Ils veulent probablement que vous payiez pour un produit Windows Server qui est autorisé à fonctionner avec des ressources plus importantes. C'est la même chose avec d'autres produits comme SQL Server. SQL Server Express comporte des limitations, de sorte que si vous avez besoin de davantage de ressources, vous devez acheter le produit qui le permet.


53



Il, Windows Server est disponible gratuitement pour les étudiants (parc de rêves), donc pour nous, il est plus facile d’obtenir que d’acheter une copie de Windows ... (pas d’affiliation) - gparyani
c'est l'une des raisons pour lesquelles Windows XP 32 bits et plus peut prendre en charge PAE, mais MS limite la limite à 4 Go de RAM - phuclv
@MattH la limite à 3 Go est parce que le Gig supérieur est la mémoire mappée aux périphériques - ratchet freak
@MattH C'est une idée fausse commune. À titre d’exemple, jetez un coup d’œil à l’officiel Windows Server 2008 Configuration requise: "Maximum (32 bits systèmes): 4 Go (Standard) ou 64 Go (Enterprise et Datacenter). "Dans ce cas, 4 Go est une restriction de licence, et 64 Go est le Extension d'adresse physique limite (en supposant que le chipset supporte le remappage). - and31415
La raison pour laquelle Windows 32 bits du consommateur refuse d'utiliser plus de 4 Go d'espace d'adressage est qu'il y a trop de pilotes 32 bits hérités qui ne connaissent pas PAE et qui provoqueraient des BSOD s'ils sont utilisés avec lui. Ce serait un cauchemar de soutien si MS le permettait. - Andrew Medico