web-dev-qa-db-fra.com

Quand dois-je utiliser PAE / NX?

Je voudrais savoir quand j'ai besoin d'utiliser Pae/NX et quand je ne le fais pas.

Dois-je toujours ou je ne peux pas l'utiliser sur ma machine virtuelle?

12
Winnie The Pooh

Vous aurez besoin de PAE si vous virtualisez un système d'exploitation 32 bits et avez besoin de plus de 4 Go de mémoire.

12
ostergaard

Le commentaire de @gronostaj et la réponse de @ajostergaard parlent tous les deux à propos de la partie PAE (Physical Address Extension) de PAE/NX. Celles-ci sont toutes deux excellentes et je n'ai qu'une précision à ajouter: le "pourquoi" des choses. Je vais aussi discuter de la partie "NX".


Ma réponse1

Peut-être une réponse plus complète, étendant la réponse de @ajostergaard, serait:

Vous aurez besoin de PAE/NX si vous configurez un système d’exploitation virtuel 32 bits et:

1) vous avez besoin de plus de 4 GiB de mémoire (RAM)

OU

2) vous devez pouvoir le rendre afin que des parties de la mémoire ne puissent pas être utilisées pour du code exécutable, par exemple. si vous avez des problèmes de sécurité qui incluent des attaques telles que celle décrite dans la page Wikipédia NX-bit ,

[C] ertains types de logiciels malveillants [peuvent envahir] les ordinateurs en insérant leur code dans la zone de stockage des données d'un autre programme et en exécutant leur propre code à partir de cette section ...

De plus, pour autant que je sache, vous n’avez pas besoin de cette option PAE/NX lors de la configuration d’un système d’exploitation 64 bits en tant que machine virtuelle. (Remarque: je n’utilise que des processeurs Intel et AMD - PAE/NX peut s’avérer nécessaire avec d’autres processeurs. ASSUREZ-VOUS DE VÉRIFIER! )


Plus loin, je décrirai ce que signifie la partie NX de PAE/NX et son rapport avec les problèmes de sécurité.

(En gros, je cherchais la réponse complète. Google m'a amené ici, mais je me suis accroché à la partie "NX". J'espère que mes découvertes aideront les autres.)


Commentaires sur PAE

Il peut être difficile de passer du premier paragraphe de la page PAE wiki à la réponse de @ ajostergaard. Le premier paragraphe est:

En informatique, l'extension d'adresse physique (PAE), parfois appelée extension d'adresse d'adresse, est une fonctionnalité de gestion de la mémoire pour l'architecture x86. PAE a été introduit pour la première fois par Intel dans le Pentium Pro, puis par AMD dans le processeur Athlon. Il définit une hiérarchie de table de pages de trois niveaux (au lieu de deux), avec des entrées de table de 64 bits chacune au lieu de 32, permettant à ces CPU d’accéder directement à un espace d’adresse physique supérieur à 4 gigaoctets (2).32 octets).

Quoi?! Comment cela nous aide-t-il à savoir s'il faut ou non cocher la case "Activer PAE/NX"? Heureusement, @ajostergaard nous a dit .

Vous aurez besoin de PAE si vous virtualisez un système d'exploitation 32 bits et avez besoin de plus de 4 Go de mémoire.

Ainsi, si votre système d’exploitation virtuel est de type 32 bits (comme c’est le cas lorsque vous souhaitez un système d’exploitation Windows-NT virtuel), mais que vous disposez de 16 Go de RAM (que vous souhaitez utiliser tous, ) vous avez besoin de l’option PAE.

Pourquoi? Laissez-moi développer. Vous devez savoir qu'une adresse mémoire est une étiquette pour une partie de la mémoire, généralement pour un octet de mémoire. Un système d’exploitation 32 bits (4 octets) est un système dont les étiquettes peuvent aller de

zéro (0) - représenté en binaire par 32 zéros, représenté en hexadécimal par 0x 00 00 00 00 -

à

4 294 967 295 - binaire: 32 unités, hexadécimal: 0x FF FF FF FF.

En d’autres termes, nous avons un peu moins de 4,3 milliards d’adresses de mémoire, chacune d’elles pointant vers un octet d’information - un octet de mémoire. Le point important est le suivant: la quantité maximale de mémoire pouvant être adressée par une machine 32 bits (qui utilise les 32 bits pour l’adressage) est de 4 Go.2 Si vous avez plus d’espace mémoire dans votre RAM, c’est bien, mais l’ordinateur ne pourra jamais trouver l’étiquette des données. En d'autres termes, la machine 32 bits ne peut utiliser plus de 4 GiB de données.

Sans aller trop loin dans les détails horribles (trop tard?), PAE introduit quelques astuces pour pouvoir traiter de plus grandes mémoires (nous pouvons avoir des étiquettes pour plus d'octets de données) et donc ces plus grandes mémoires peuvent être utilisées.

Examinons maintenant la quantité de données pouvant être traitée par un ordinateur 64 bits utilisant tous les octets pour l’étiquetage/l’adressage en mémoire. Les étiquettes pourraient aller de

zero (0) - 64 zéros en binaire, hex: 0x0000000000000000 -

à

18 446 744 073 709 551 615 = 18,4 milliards = 18,4 milliards - 64 unités en binaire, hex 0xFFFFFFFFFFFFFFFF. Nous avons des adresses pour 18,4 milliards d'octets de données. C'est 18,4 Exabytes = 18 447 Petabytes = presque 18,5 millions de téraoctets. Selon Wolfram | Alpha , cela équivaut à 1/54 du contenu de l'information de toutes les données globales. Comparez cela au 9/10 d'un DVD simple couche que des notes Wolfram | Alpha peuvent être stockées avec 4GiB.3

La partie NX

En pratique, les machines 64 bits n'utilisent pas la totalité des 64 bits pour l'adressage en mémoire - elles n'en ont pas besoin, ce qui, j'espère, a été illustré par la discussion 1/54-of-the-the-planet. Comme le dit l'article du PAE wiki dans son deuxième paragraphe ,

La structure de table de page utilisée par les CPU x86-64 [machines 64 bits] ... utilise le bit le plus haut de l'entrée de table de page 64 bits en tant que bit non-exécution ou "NX", ce qui indique que le code ne peut pas être exécuté à partir de la clé. page associée.

Il y a plus d'informations dans l'article NX-bit Wikipedia . L'idée de base d'un bit NX est qu'elle indique que l'octet de mémoire adressé par l'étiquette 64 bits (_plus_NX-bit_plus_other-stuff) peut être marqué de sorte qu'il ne puisse pas être utilisé par un programme en cours d'exécution. Entre autres choses, cela empêche le type d'attaque décrit au début de cette réponse.

Revenons maintenant au fait que la case à cocher est pour PAE/NX. Les mêmes astuces utilisées pour rendre plus d'emplacements de mémoire accessibles peuvent également être utilisées pour ajouter un bit NX. Encore une fois du deuxième paragraphe de l'article PAE Wikipedia,

La fonction NX est également disponible en mode protégé lorsque ces CPU exécutent un système d'exploitation 32 bits, à condition que le système d'exploitation active le PAE.


Remarques:

1) Cette réponse montre mon processus de découverte. Je serai plus qu'heureux si quelqu'un a besoin de clarifier ou de corriger tout ce que j'ai écrit.

2) En pratique, tous les 32 bits ne sont généralement pas utilisés pour l'adressage en mémoire. La taille de la mémoire adressable par une machine à 32 bits peut donc être inférieure à 4 Go.

3) Une autre comparaison intéressante des quantités de données provient de cette source .

Selon Videomaker, "Une heure de métrage DV en définition standard nécessite environ 12,7 Go de stockage; environ 217 Mo par minute. Par comparaison, une heure de contenu au format RAW 4K nécessite près de 110 Go de stockage; environ 2 Go par minute."

Ainsi, un ordinateur 32 bits pourrait utiliser suffisamment de mémoire pour 15 minutes de définition standard DV (vidéo) ou 2 minutes de vidéo brute 4K. (Notez qu'avec les codecs vidéo étant tels qu'ils sont, je peux obtenir près de 12 minutes de vidéo 4K au format MP4 compressé avant que mon ancien téléphone Android n'atteigne sa limite de 4 Go.)

D'autre part, un ordinateur 64 bits pourrait utiliser suffisamment de mémoire pour 165 643 ans de SD DV (vidéo) ou 19 131 ans de vidéo 4K brute.


Je vais noter d’autres références que j’ai trouvées utiles lors de la rédaction de cette réponse.

64 bits/x86_64 ou x_64 VS 32 bits/x86 , pensez au dossier Program Files (x86) sous Windows ou au _x86, x86_64, x64 que vous voyez parfois dans les noms de fichiers d'installation.

Utilisation de logiciels d'architectures précédentes (pas grand comme un nombre de bits)

2
bballdave025