Linker, loader en uitvoerbare formaten
Welk voordeel is juist van het zetten van de symboolzichtbaarheid (visibility) op „hidden” voor interne functies, terwijl bij het maken van een gedeelde bibliotheek alleen de van buiten gebruikte functies worden gepubliceerd?
- AInterne functies worden versleuteld en kunnen niet worden geanalyseerd
- BEr zijn minder symbolen voor de dynamische linker, waardoor het laden sneller gaat, en interne aanroepen hoeven niet via de PLT te lopen
- CDe bibliotheek werkt dan op elk OS
Antwoord en toelichting tonen
Antwoord: B. Er zijn minder symbolen voor de dynamische linker, waardoor het laden sneller gaat, en interne aanroepen hoeven niet via de PLT te lopen
Gepubliceerde symbolen van een gedeelde bibliotheek kunnen worden vervangen door een definitie met dezelfde naam in een andere module, dus ook aanroepen van binnenuit moeten via de PLT of GOT lopen. Met hidden zijn ze van buiten niet zichtbaar, vermindert het aantal symbolen dat de dynamische linker onderzoekt en kunnen interne aanroepen rechtstreeks PC-relatief plaatsvinden. Ook naamconflicten met andere bibliotheken worden vermeden en de gepubliceerde ABI blijft klein.
Verder: nog 9 vragen over Linker, loader en uitvoerbare formaten