GNU/Linux >> Tutoriels Linux >  >> Linux

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

Citant la source du noyau :"Les pointeurs du noyau ont des informations redondantes, nous pouvons donc utiliser un schéma dans lequel nous pouvons renvoyer soit un code d'erreur, soit un [...] pointeur avec la même valeur de retour.

Les valeurs -1..-4095 (correspondant à 0xfffff000–0xfffffff en mode 32 bits) sont réservées aux valeurs errno au niveau du noyau. Les 4Ko restants de 0xffffe000–0xffffefff sont réservés pour la page magique vsyscall vdso, mais comme la page vdso est déplaçable depuis de nombreuses lunes, cette zone reste potentiellement non peuplée, c'est-à-dire le [stack] entrée en /proc/*/maps se termine toujours à 0xffffdfff, que [vdso] soit mappé à 0xffffe000 ou ailleurs.


Une partie de la mémoire du noyau peut se trouver à l'intérieur de l'espace d'adressage de l'espace utilisateur de l'application et être en quelque sorte mmapée avec PROT_NONE . Un peu d'espace d'adressage serait alors utilisé, mais sans être accessible par le programme (donc aucune corruption n'est possible).


Linux
  1. Linux - Différence entre l'espace utilisateur et l'espace noyau ?

  2. Linux - Qu'est-ce que la mémoire élevée et la mémoire faible sous Linux ?

  3. Linux - Pourquoi existe-t-il une politique du noyau Linux pour ne jamais casser l'espace utilisateur ?

  4. Recherche de bibliothèques 32 bits sur Linux 64 bits

  5. Comment déterminer si un fichier binaire Linux est 32 bits ou 64 bits ?

Linux est-il un système d'exploitation ou un noyau ?

Le noyau Linux contre. Mac noyau

Comment trouver une adresse IP sous Linux

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

Comment savoir si la version 32 bits ou 64 bits de Linux

Comment vérifier que le système Linux est 32 bits ou 64 bits ?