Qu'est-ce que GOT (table globale des décalages) ?

Table regroupant les adresses réelles des variables et fonctions externes. L'éditeur de liens dynamique la remplit à l'exécution ; le code indépendant de la position y passe pour ses références, sans avoir à modifier ses pages de code.

Nom japonais: GOT(グローバルオフセットテーブル)

« GOT (table globale des décalages) » apparaît dans 5 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 GOT (table globale des décalages)

Quel est le rôle de la GOT (table globale des déplacements) utilisée dans les bibliothèques partagées ?

  1. AC'est un index des noms de fonctions de la bibliothèque classés par ordre alphabétique
  2. BC'est une table où sont placées temporairement les données qui ne tiennent pas dans le cache
  3. CC'est une table regroupant les adresses réelles des variables et fonctions externes, renseignée à l'exécution par l'éditeur de liens dynamique, et par laquelle le code accède à celles-ci
Afficher la réponse et l'explication

Réponse : C. C'est une table regroupant les adresses réelles des variables et fonctions externes, renseignée à l'exécution par l'éditeur de liens dynamique, et par laquelle le code accède à celles-ci

Le code indépendant de la position ne peut pas inscrire directement dans une instruction l'adresse d'une variable située dans une autre bibliothèque. On prépare donc dans chaque module une table d'adresses (GOT) ; le code lit l'entrée de la GOT par sa distance au PC et utilise l'adresse qu'elle contient. L'éditeur de liens dynamique inscrit les adresses réelles dans la GOT au chargement. Seule la GOT, donnée inscriptible, est modifiée, si bien que les pages de code restent partagées.

« GOT (table globale des décalages) » dans les explications

Questions mentionnant « GOT (table globale des décalages) » (5)

  1. Quel est le rôle de la GOT (table globale des déplacements) utilisée dans les bibliothèques partagées ?
  2. Quelle description du code indépendant de la position (PIC) est correcte ?
  3. 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 ?
  4. 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 ?
  5. 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 PLT (Procedure Linkage Table) Code indépendant de la position Bibliothèque partagée Via Édition de liens dynamique Fichier objet Relocalisation Éditeur de liens (linker) ABI (interface binaire d'application)

Retour au glossaire