Éditeurs de liens, chargeurs et exécutables

Quelle est la différence correcte entre « section » et « segment » dans un fichier ELF ?

  1. ASection est le terme Windows et segment le terme Linux ; le contenu est le même
  2. BLa section est l'unité fine manipulée par l'éditeur de liens, et le segment l'unité de chargement en mémoire par le chargeur, regroupant des sections de mêmes droits
  3. CLes segments n'existent que sur disque et ne sont pas chargés en mémoire
Afficher la réponse et l'explication

Réponse : B. La section est l'unité fine manipulée par l'éditeur de liens, et le segment l'unité de chargement en mémoire par le chargeur, regroupant des sections de mêmes droits

ELF offre deux vues. L'éditeur de liens effectue la combinaison et la relocalisation par sections fines : .text, .rodata, .data, .bss, etc. Le chargeur projette en mémoire par segments décrits dans les en-têtes de programme, en regroupant par exemple .text et .rodata dans un segment lecture-exécution, et .data et .bss dans un segment lecture-écriture. Regrouper par droits facilite la configuration de la protection par page.

S'entraîner sur ce thème Retour au thème

Autres questions sur Éditeurs de liens, chargeurs et exécutables

  1. Quelle attaque est plus facile à prévenir en n'autorisant jamais simultanément « inscriptible » et « exécutable » sur une page mémoire (W^X, séparation écriture-exécution) ?
  2. Sous Linux, dans quel cas incrémente-t-on généralement le numéro de version du soname, comme le « .1 » de libfoo.so.1 ?
  3. Que permet de savoir la commande ldd appliquée à un exécutable sous Linux ?
  4. Quelle combinaison des formats d'exécutables utilisés par les principaux OS est correcte ?
  5. Lorsqu'une récursion trop profonde dépasse la limite de la pile, que se passe-t-il généralement sous Linux notamment ?

Comparatifs sur ce thème