GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Comment un espace d'adressage virtuel de processus 64 bits est-il divisé sous Linux ?

L'image suivante montre comment un espace d'adressage virtuel de processus 32 bits est divisé :

Mais comment un espace d'adressage virtuel de processus 64 bits est-il divisé ?

Réponse acceptée :

x86

La carte de mémoire virtuelle x86 64 bits divise l'espace d'adressage en deux :la section inférieure (avec le bit supérieur défini sur 0) est l'espace utilisateur, la section supérieure (avec le bit supérieur défini sur 1) est l'espace noyau. (Notez que x86-64 définit les adresses "canoniques" "moitié inférieure" et "moitié supérieure", avec un nombre de bits effectivement limité à 48 ou 56 ; voir Wikipedia pour plus de détails.)

La carte complète est documentée en détail dans le noyau; actuellement il ressemble

Adresse de début Décalage Adresse de fin Taille Description de la zone VM
0000_0000_0000_0000 0000_7fff_ffff_ffff  128 Tio mémoire virtuelle de l'espace utilisateur
0000_8000_0000_0000 +128 Tio ffff_7fff_ffff_ffff ~16 M Tio non canonique
ffff_8000_0000_0000 -128 Tio ffff_ffff_ffff_ffff  128 Tio mémoire virtuelle de l'espace noyau

avec des adresses virtuelles 48 bits. (La variante 56 bits a la même structure, avec 64 PiB d'espace d'adressage utilisable de chaque côté d'un trou de 16 Ko PiB.) 
(Notez que 16 KPiB =16MTiB =2 octets.)

Contrairement au cas 32 bits, la carte mémoire "64 bits" reflète directement les contraintes matérielles.

ARMER

ARM 64 bits a une distinction d'adresse similaire dans le matériel :les seize premiers bits sont 0 pour l'espace utilisateur, 1 pour l'espace noyau. Linux utilise 39, 42 ou 48 bits pour les adresses virtuelles, selon le nombre de niveaux de table de pages et la taille de la page. Avec ARMv8.2-LVA, quatre autres bits sont ajoutés, ce qui donne des adresses virtuelles de 52 bits.

Ceci est également documenté en détail dans le noyau.


Linux
  1. Comment tuer un processus zombie sous Linux

  2. Comment installer vtop sur Linux

  3. Comment ajouter de l'espace d'échange sous Linux

  4. Espace d'adressage du processus 32 bits sur Linux 64 bits

  5. Comment accéder aux adresses physiques depuis l'espace utilisateur sous Linux ?

Comment installer MX Linux sur Virtual Box

Comment tuer un processus sous Linux

Comment changer l'adresse IP sous Linux

Comment obtenir votre adresse IP sous Linux

Comment vérifier l'espace d'échange sous Linux

Comment trouver une adresse IP sous Linux