Linker, loader en uitvoerbare formaten

Welke omschrijving van position-independent code (PIC) is juist?

  1. AMachinecode die op elke CPU op dezelfde manier werkt
  2. BMachinecode die tijdens uitvoering voortdurend haar eigen plaats verplaatst
  3. CMachinecode die zo is gemaakt dat ze correct werkt zonder herschrijven, op welk geheugenadres ze ook wordt geladen
Antwoord en toelichting tonen

Antwoord: C. Machinecode die zo is gemaakt dat ze correct werkt zonder herschrijven, op welk geheugenadres ze ook wordt geladen

Gedeelde bibliotheken kunnen per proces op een ander adres worden geladen. Position-independent code verwijst naar functies en data niet via vaste adressen maar via de afstand vanaf PC of via een tabel met adressen (GOT). Zo hoeven de codepagina's ook bij een ander laadadres niet te worden herschreven, en kan één kopie in het fysieke geheugen door veel processen worden gedeeld.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Linker, loader en uitvoerbare formaten

  1. Wat is de juiste rol van de GOT (global offset table) die bij gedeelde bibliotheken wordt gebruikt?
  2. Welke omschrijving is juist van lazy binding met de PLT (procedure linkage table) bij dynamisch linken?
  3. Wat is de juiste rol van de dynamische linker (zoals ld.so) die werkt bij het starten van een dynamisch gelinkt programma op Linux?
  4. Wat is het juiste doel van ASLR (address space layout randomization)?
  5. Wat is de belangrijkste reden om een uitvoerbaar bestand als PIE (position-independent executable) te bouwen?

Vergelijkingen bij dit onderwerp