Linker, loader en uitvoerbare formaten
Welke volgorde van de geheugenindeling van een gangbaar proces op Linux en dergelijke, van laag naar hoog adres, is juist?
- ATekst → data → BSS → heap → (vrij) → stack
- BStack → tekst → heap → data → BSS
- CHeap → stack → BSS → data → tekst
Antwoord en toelichting tonen
Antwoord: A. Tekst → data → BSS → heap → (vrij) → stack
In de typische indeling staan aan de lage adreszijde de machinecode (tekst), de data met beginwaarde en de BSS die met 0 begint, waarboven de heap naar hogere adressen groeit. De stack groeit van de hoge adreszijde naar lagere adressen, en in het brede vrije gebied daartussen liggen gedeelde bibliotheken en mmap-gebieden. De werkelijke adressen worden voor de veiligheid door ASLR bij elke uitvoering verschoven.
Verder: nog 9 vragen over Linker, loader en uitvoerbare formaten