Éditeurs de liens, chargeurs et exécutables
Que fait le chargeur de l'OS au démarrage d'un programme (execve sous Linux notamment) ?
- AIl lit le code source, le compile sur place puis l'exécute
- BIl dispose chaque partie en mémoire selon les en-têtes de programme de l'exécutable, prépare les arguments sur la pile, etc., et lance l'exécution à l'adresse du point d'entrée
- CIl affiche à l'écran tous les noms de symboles de l'exécutable avant de l'exécuter
Afficher la réponse et l'explication
Réponse : B. Il dispose chaque partie en mémoire selon les en-têtes de programme de l'exécutable, prépare les arguments sur la pile, etc., et lance l'exécution à l'adresse du point d'entrée
Le chargeur lit l'en-tête de l'exécutable et projette dans l'espace d'adressage virtuel chaque partie (segment) décrite dans les en-têtes de programme, avec ses droits de lecture, écriture et exécution. Il prépare la zone de zéros du BSS et la pile, et empile les arguments de ligne de commande et les variables d'environnement. Pour un programme à liens dynamiques, il lance l'éditeur de liens dynamique ; sinon, il commence l'exécution à l'adresse du point d'entrée de l'exécutable.
Continuer : 9 autres questions sur Éditeurs de liens, chargeurs et exécutables