Linker, Loader und ausführbare Formate
Was ist der Unterschied zwischen „Section“ und „Segment“ in ELF-Dateien?
- ASection ist die Bezeichnung für Windows, Segment die für Linux; der Inhalt ist derselbe
- BDie Section ist die feine, vom Linker behandelte Einheit, das Segment ist die Einheit, die der Loader in den Speicher lädt und die Sections mit gleichen Rechten zusammenfasst
- CSegmente gibt es nur auf der Festplatte, und sie werden nicht in den Speicher geladen
Antwort und Erläuterung anzeigen
Antwort: B. Die Section ist die feine, vom Linker behandelte Einheit, das Segment ist die Einheit, die der Loader in den Speicher lädt und die Sections mit gleichen Rechten zusammenfasst
ELF kennt zwei Sichtweisen. Der Linker kombiniert und relokiert in Einheiten feiner Sections wie .text, .rodata, .data und .bss. Der Loader bildet in Einheiten der in den Program Headern angegebenen Segmente in den Speicher ab, etwa mit .text und .rodata in einem Lese- und Ausführungssegment sowie .data und .bss in einem Lese- und Schreibsegment. Die Zusammenfassung nach Rechten erleichtert die Einrichtung des Schutzes pro Seite.