Linker, loader en uitvoerbare formaten

Welke combinatie van uitvoerbare bestandsformaten die op de belangrijkste OS'en worden gebruikt, is juist?

  1. ALinux gebruikt PE, Windows gebruikt Mach-O en macOS gebruikt ELF
  2. BLinux gebruikt ELF, Windows gebruikt PE en macOS gebruikt Mach-O
  3. CAlle OS'en gebruiken ELF
Antwoord en toelichting tonen

Antwoord: B. Linux gebruikt ELF, Windows gebruikt PE en macOS gebruikt Mach-O

Het formaat van uitvoerbare bestanden is per OS vastgelegd. Linux, BSD en veel embedded apparaten gebruiken ELF, Windows gebruikt PE (Portable Executable) voor .exe en .dll, en macOS en iOS gebruiken Mach-O. De ideeën erachter (code- en datagebieden, symbolen, relocatie en informatie voor dynamisch linken) lijken op elkaar, maar omdat de formaten verschillen, werkt een uitvoerbaar bestand ook voor dezelfde CPU niet zomaar op een ander OS.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Linker, loader en uitvoerbare formaten

  1. Wat gebeurt er in het algemeen op Linux en dergelijke als recursie te diep wordt en de bovengrens van de stack wordt overschreden?
  2. Welke uitspraak is juist over de waarde bij het eerste gebruik van lokale en globale variabelen in C waarvoor geen beginwaarde is geschreven?
  3. Bij herhaald malloc en free kan het voorkomen dat, ook al is het totaal aan vrij geheugen ruim voldoende, een groot gebied niet meer in één keer kan worden gereserveerd. Hoe heet dit verschijnsel?
  4. 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?
  5. Welk mechanisme waardoor in C++ de constructors van globale objecten vóór main worden uitgevoerd, is juist?

Vergelijkingen bij dit onderwerp