Linker, loader en uitvoerbare formaten
Wat is de juiste rol van de GOT (global offset table) die bij gedeelde bibliotheken wordt gebruikt?
- AEen inhoudsopgave waarin de namen van bibliotheekfuncties alfabetisch zijn geordend
- BEen tabel waarin data die niet in de cache pasten tijdelijk worden geplaatst
- CEen tabel met de werkelijke adressen van externe variabelen en functies, die de dynamische linker tijdens uitvoering invult en waarlangs de code verwijst
Antwoord en toelichting tonen
Antwoord: C. Een tabel met de werkelijke adressen van externe variabelen en functies, die de dynamische linker tijdens uitvoering invult en waarlangs de code verwijst
Position-independent code kan adressen van variabelen in andere bibliotheken niet rechtstreeks in instructies schrijven. Daarom heeft elke module een tabel met adressen (GOT); de code leest een item van de GOT via de afstand vanaf PC en gebruikt het daarin staande adres. De dynamische linker schrijft bij het laden de werkelijke adressen in de GOT. Omdat alleen de GOT in het beschrijfbare datagebied wordt herschreven, kunnen de codepagina's gedeeld blijven.
Verder: nog 9 vragen over Linker, loader en uitvoerbare formaten