Linker, Loader und ausführbare Formate

Welche Kombination der von den wichtigsten Betriebssystemen verwendeten Formate ausführbarer Dateien ist richtig?

  1. ALinux verwendet PE, Windows Mach-O, macOS ELF
  2. BLinux verwendet ELF, Windows PE, macOS Mach-O
  3. CAlle Betriebssysteme verwenden ELF
Antwort und Erläuterung anzeigen

Antwort: B. Linux verwendet ELF, Windows PE, macOS Mach-O

Das Format ausführbarer Dateien ist je Betriebssystem festgelegt. Linux, BSD und viele Embedded-Geräte verwenden ELF, Windows das PE-Format (Portable Executable) für .exe und .dll, macOS und iOS das Mach-O-Format. Die Grundideen (Code- und Datenbereiche, Symbole, Relokation, Informationen zum dynamischen Linken) sind ähnlich, doch wegen der unterschiedlichen Formate läuft eine ausführbare Datei auch für dieselbe CPU auf einem anderen Betriebssystem nicht unverändert.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Linker, Loader und ausführbare Formate

  1. Was geschieht unter Linux u. a. im Allgemeinen, wenn eine zu tiefe Rekursion die Obergrenze des Stacks überschreitet?
  2. Welche Aussage zu den Werten lokaler und globaler Variablen ohne Initialwert zu Beginn ihrer Verwendung in C ist richtig?
  3. Wie heißt das Phänomen, dass sich nach wiederholtem malloc und free zwar insgesamt genug freier Speicher findet, aber ein großer zusammenhängender Bereich nicht mehr reserviert werden kann?
  4. Welcher Vorteil ergibt sich, wenn man beim Erstellen einer Shared Library nur die von außen genutzten Funktionen veröffentlicht und die Sichtbarkeit (Visibility) der Symbole interner Funktionen auf „hidden“ setzt?
  5. Welcher Mechanismus lässt in C++ die Konstruktoren globaler Objekte vor main ausführen?

Vergleiche zu diesem Thema