Qu'est-ce que PLT (Procedure Linkage Table) ?

Table de petits points d'entrée servant à appeler les fonctions des bibliothèques partagées. Avec la liaison paresseuse, l'éditeur de liens dynamique résout l'adresse au premier appel et l'écrit dans la GOT.

Nom japonais: PLT(プロシージャリンケージテーブル)

« PLT (Procedure Linkage Table) » apparaît dans 3 questions d'entraînement réparties sur 1 thèmes, dont Éditeurs de liens, chargeurs et exécutables.

Domaine: Éditeurs de liens, chargeurs et exécutables

S'entraîner : questions sur PLT (Procedure Linkage Table)

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 ?

  1. AL'adresse d'une fonction de bibliothèque partagée est résolue lors de son premier appel, et les appels suivants sautent directement à l'adresse résolue
  2. BLes adresses de toutes les fonctions sont toujours résolues avant le démarrage du programme
  3. CLe fichier de la bibliothèque est relu depuis le disque à chaque appel de fonction
Afficher la réponse et l'explication

Réponse : A. L'adresse d'une fonction de bibliothèque partagée est résolue lors de son premier appel, et les appels suivants sautent directement à l'adresse résolue

Le programme appelle les fonctions externes via de petites entrées de la PLT. En liaison différée, lors du premier appel, l'entrée saute vers la routine de résolution de l'éditeur de liens dynamique, qui recherche la véritable adresse et l'inscrit dans la GOT. Les appels suivants sautent directement à l'adresse de la GOT. Le démarrage est plus rapide, car la résolution des fonctions inutilisées est évitée. Toutefois, pour des raisons de sécurité, la configuration qui résout tout au démarrage et rend la GOT en lecture seule est aussi largement utilisée.

« PLT (Procedure Linkage Table) » dans les explications

Questions mentionnant « PLT (Procedure Linkage Table) » (3)

  1. 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 ?
  2. En désassemblant un fichier objet, on constate que la destination de l'instruction appelant la fonction externe printf a une valeur provisoire comme 0. Quand cette valeur est-elle correctement renseignée ?
  3. Lors de la création d'une bibliothèque partagée, quel est l'avantage de n'exporter que les fonctions utilisées de l'extérieur et de régler la visibilité des symboles des fonctions internes sur « hidden » ?

Termes associés

Éditeur de liens dynamique GOT (table globale des décalages) Édition de liens dynamique Via Fichier objet Relocalisation Éditeur de liens (linker) Bibliothèque partagée ABI (interface binaire d'application) ASLR

Retour au glossaire