Linker, loader en uitvoerbare formaten
Wat doet de loader van het OS bij het starten van een programma (zoals execve op Linux)?
- ADe broncode inlezen, ter plekke compileren en dan uitvoeren
- BVolgens de programmaheaders van het uitvoerbare bestand de delen in het geheugen plaatsen, argumenten en dergelijke op de stack klaarzetten en de uitvoering beginnen op het adres van de ingang
- CAlle symboolnamen van het uitvoerbare bestand op het scherm tonen en dan uitvoeren
Antwoord en toelichting tonen
Antwoord: B. Volgens de programmaheaders van het uitvoerbare bestand de delen in het geheugen plaatsen, argumenten en dergelijke op de stack klaarzetten en de uitvoering beginnen op het adres van de ingang
De loader leest de header van het uitvoerbare bestand en koppelt de in de programmaheaders beschreven delen (segmenten) met rechten voor lezen, schrijven en uitvoeren aan de virtuele adresruimte. Hij maakt het met 0 gevulde gebied voor BSS en de stack klaar en zet opdrachtregelargumenten en omgevingsvariabelen op de stack. Bij dynamisch linken begint de uitvoering bij de dynamische linker en anders op het adres van de ingang van het uitvoerbare bestand.
Verder: nog 9 vragen over Linker, loader en uitvoerbare formaten