Éditeurs de liens, chargeurs et exécutables

Quelle description du code indépendant de la position (PIC) est correcte ?

  1. ADu langage machine fonctionnant de la même manière sur tous les CPU
  2. BDu langage machine qui déplace continuellement son propre emplacement pendant l'exécution
  3. CDu langage machine conçu pour fonctionner correctement quelle que soit l'adresse mémoire où il est chargé, sans modification du code
Afficher la réponse et l'explication

Réponse : C. Du langage machine conçu pour fonctionner correctement quelle que soit l'adresse mémoire où il est chargé, sans modification du code

Une bibliothèque partagée peut être chargée à une adresse différente dans chaque processus. Le code indépendant de la position référence fonctions et données non par des adresses fixes, mais par leur distance au PC ou via une table regroupant les adresses (GOT). Ainsi, même si l'adresse de chargement change, les pages de code n'ont pas à être modifiées, et une seule copie en mémoire physique peut être partagée par de nombreux processus.

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

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

  1. Quel est le rôle de la GOT (table globale des déplacements) utilisée dans les bibliothèques partagées ?
  2. En édition de liens dynamique, quelle description de la liaison différée (lazy binding) utilisant la PLT (table de liaison des procédures) est correcte ?
  3. 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 ?
  4. Quel est l'objectif de l'ASLR (randomisation de l'agencement de l'espace d'adressage) ?
  5. Quelle est la principale raison de produire un exécutable sous forme de PIE (exécutable indépendant de la position) ?

Comparatifs sur ce thème