GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi l'en-tête du programme est-il exécutable ?

Le PHDR pointant vers les PHDR indique au chargeur que les PHDR eux-mêmes doivent être mappés à l'espace d'adressage du processus, afin de les rendre accessibles au programme lui-même.

Ceci est utile principalement pour les liens dynamiques.

La raison pour laquelle la mémoire est marquée comme exécutable est que les PHDR sont plus petits qu'une page et se trouvent juste à côté du début du code exécutable. Si les autorisations pour les PHDR étaient différentes de celles du texte du programme, l'éditeur de liens devrait insérer un remplissage entre eux.


Linux
  1. Pourquoi le ~/.bash_profile ne fonctionne-t-il pas ?

  2. Pourquoi le noyau lâcherait-il des paquets ?

  3. Fermer la sortie standard (>&-) ?

  4. Pourquoi la commande suivante tue-t-elle un système ?

  5. Pourquoi le segment .bss est-il requis ?

Programmer le matériel à partir de la ligne de commande Linux

Comment fonctionne le programme ping sous Linux

Parcours d'un programme C vers un exécutable Linux en 4 étapes

gdb semble ignorer les capacités exécutables

Où se trouve le fichier d'en-tête <conio.h> sous Linux ? Pourquoi ne puis-je pas trouver <conio.h> ?

Pourquoi les fichiers .so sont-ils exécutables ?