Éditeurs de liens, chargeurs et exécutables

Quel est le rôle de l'éditeur de liens dynamique (ld.so, etc.) qui intervient au démarrage d'un programme à liens dynamiques sous Linux ?

  1. ACompiler le code source pour produire du langage machine
  2. BRechercher les bibliothèques partagées nécessaires, les charger en mémoire, lier les symboles puis lancer le programme
  3. CRéorganiser l'espace libre du disque après la fin du programme
Afficher la réponse et l'explication

Réponse : B. Rechercher les bibliothèques partagées nécessaires, les charger en mémoire, lier les symboles puis lancer le programme

Un exécutable à liens dynamiques indique l'emplacement de l'éditeur de liens dynamique à utiliser ; après avoir chargé le programme, l'OS passe d'abord la main à celui-ci. L'éditeur de liens dynamique recherche et charge les bibliothèques partagées nécessaires, effectue la relocalisation et la liaison des symboles, puis transfère le contrôle au point d'entrée du programme. Le chargement supplémentaire de bibliothèques en cours d'exécution par dlopen relève aussi de l'éditeur de liens dynamique.

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

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

  1. Quel est l'objectif de l'ASLR (randomisation de l'agencement de l'espace d'adressage) ?
  2. Quelle est la principale raison de produire un exécutable sous forme de PIE (exécutable indépendant de la position) ?
  3. Que fait le chargeur de l'OS au démarrage d'un programme (execve sous Linux notamment) ?
  4. Quelle affirmation concernant l'adresse où l'OS commence l'exécution d'un programme C (point d'entrée) est correcte ?
  5. Lorsque la fonction main d'un programme C se termine par « return 3; », que devient généralement cette valeur 3 ?

Comparatifs sur ce thème