Linker, Loader und ausführbare Formate
Welche Aufgabe hat der dynamische Linker (z. B. ld.so), der beim Start eines dynamisch gelinkten Programms unter Linux tätig wird?
- AEr kompiliert Quellcode und erzeugt Maschinencode
- BEr sucht die benötigten Shared Libraries, lädt sie in den Speicher, bindet die Symbole und lässt dann das Programm starten
- CEr räumt nach Programmende den freien Speicherplatz der Festplatte auf
Antwort und Erläuterung anzeigen
Antwort: B. Er sucht die benötigten Shared Libraries, lädt sie in den Speicher, bindet die Symbole und lässt dann das Programm starten
In der ausführbaren Datei eines dynamisch gelinkten Programms steht, wo sich der zu verwendende dynamische Linker befindet; nach dem Laden des Programms übergibt das Betriebssystem zunächst die Kontrolle an den dynamischen Linker. Dieser sucht und lädt die benötigten Shared Libraries, führt Relokation und Symbolbindung durch und übergibt dann die Kontrolle an den Einsprungpunkt des Programms. Auch das zusätzliche Laden von Bibliotheken zur Laufzeit mit dlopen wird vom dynamischen Linker übernommen.