Linker, Loader und ausführbare Dateien
Lernen Sie anhand von Multiple-Choice-Fragen Objektdateien und das ELF-Format, Symbolauflösung und Relokation, statisches und dynamisches Linken sowie das Speicherlayout von Prozessen kennen.
Die Fragen zu diesem Thema folgen in Kürze.
Linker, Loader und ausführbare Dateien: Das Wichtigste
Ein Compiler erzeugt eine Objektdatei, die allein nicht lauffähig ist. Ein Linker sammelt Objektdateien und Bibliotheken, bindet die Namen von Funktionen und Variablen (Symbole) an tatsächliche Adressen (Symbolauflösung), trägt diese Adressen in die Befehle ein (Relokation) und erzeugt eine ausführbare Datei.
Ein Loader liest die ausführbare Datei in den Speicher, richtet die Bereiche Text, Data, BSS, Heap und Stack ein und startet das Programm. Dynamisches Linken, das Bibliotheken zur Laufzeit bindet, und positionsunabhängiger Code (PIC), der an jeder Adresse läuft, helfen sowohl beim Speichersparen als auch bei der Sicherheit.
Vergleiche zu diesem Thema
- Statisches vs. dynamisches Linken: Unterschiede im ÜberblickStatisches und dynamisches Linken im Tabellenvergleich: Zeitpunkt des Linkens, Größe der ausführbaren Datei, …
- Stack vs. Heap: Unterschiede im Speicher erklärtStack- und Heap-Speicher im Tabellenvergleich: Verwendung, Allokation, Geschwindigkeit, Lebensdauer, Größenbe…