Différence clé - Linker vs Loader
Un programme informatique est utilisé pour donner des instructions à l'ordinateur. Il est écrit en utilisant un langage de programmation spécifique. Les langages de programmation tels que C, Java sont des langages de programmation de haut niveau et ils sont compréhensibles par les humains mais pas par l'ordinateur. Par conséquent, un programme de haut niveau est converti en langage machine à l'aide d'un traducteur de langue. Un programme écrit en utilisant un langage de haut niveau est un code source. Après la conversion, le code traduit est appelé code objet. L'éditeur de liens et le chargeur sont deux logiciels utilisés pour l'exécution du programme. Cet article décrit la différence entre Linker et Loader. Linker est le logiciel qui lie le code objet avec des fichiers supplémentaires tels que des fichiers d'en-tête et crée un fichier exécutable avec l'extension.exe. Le chargeur est le logiciel système qui charge le fichier exécutable généré par l'éditeur de liens dans la mémoire principale. C'est la principale différence entre Linker et Loader.
CONTENU
1. Présentation et différence clé
2. Qu'est-ce que Linker
3. Qu'est-ce que Loader
4. Relation entre Linker et Loader
5. Comparaison côte à côte - Linker vs Loader sous forme tabulaire
6. Résumé
Qu'est-ce que Linker?
Un programme informatique est un ensemble d'instructions données à un ordinateur pour effectuer une certaine tâche. Un programme informatique peut être écrit en utilisant un langage de programmation. La plupart des langages de programmation sont de la programmation de haut niveau. Ils sont facilement compréhensibles et lisibles par le programmeur. Ces langues suivent une syntaxe similaire à la langue anglaise. Quelques exemples de langages de haut niveau sont Java, C et Python. Un programme écrit à l'aide d'un langage de programmation de haut niveau est appelé code source, fichier source ou programme source. L'extension du code source dépend du langage avec lequel il a été développé. Si le code source est écrit en C ++, l'extension de fichier est.cpp. Si le code source est écrit en Python, l'extension est.py.
Même le code source est compréhensible par le programmeur; il n'est pas compréhensible par l'ordinateur. Par conséquent, le code source doit être converti dans un format compréhensible par la machine à l'aide d'un traducteur de langue. Cela peut être un compilateur ou un interpréteur. Le code traduit est appelé code objet. Le code objet est en langage machine. Il se compose de zéros et une fois. L'ordinateur peut comprendre directement le code objet. Il a l'extension.obj. S'il existe un code source comme Test.c, il passe par le compilateur et le code converti devient Test.obj.
Linker est le logiciel qui lie le code objet avec des fichiers supplémentaires tels que des fichiers d'en-tête et crée un fichier exécutable avec l'extension.exe. Le programme peut avoir utilisé des fonctions intégrées. Les fonctionnalités de ces fonctions intégrées se trouvent dans les fichiers d'en-tête. Selon l'exemple expliqué ci-dessus, le code objet qui est Test.obj est ajouté avec les fichiers d'en-tête nécessaires à l'aide du Linker. Il crée un nouveau fichier appelé Test.exe. C'est un fichier exécutable. Par conséquent, il est exécutable par l'ordinateur.
Qu'est-ce que Loader?
Un programme qui doit s'exécuter doit être placé en mémoire. L'éditeur de liens relie le code objet et les fichiers d'en-tête et génère le fichier exécutable. Le chargeur est le logiciel système qui charge le fichier exécutable généré par l'éditeur de liens dans la mémoire principale. Il alloue l'espace mémoire au module exécutable dans la mémoire principale. Par conséquent, un chargeur fait partie du système d'exploitation qui est responsable du chargement des programmes et des bibliothèques.
Figure 01: Ordre dans lequel le code source se charge dans la mémoire
Le chargement d'un programme comporte plusieurs étapes. Il s'agit de lire en mémoire le contenu du fichier exécutable contenant l'instruction du programme et également d'effectuer les tâches de préparation nécessaires pour exécuter le fichier exécutable. Une fois le chargement terminé, le système d'exploitation démarre le programme en passant le contrôle au code du programme chargé. Les systèmes informatiques spéciaux tels que les systèmes embarqués n'ont généralement pas de chargeur. Le code s'exécute directement par la ROM.
Quelle est la relation entre l'éditeur de liens et le chargeur?
La sortie du Linker va au Loader
Quelle est la différence entre Linker et Loader?
Diff article au milieu avant la table
Éditeur de liens vs chargeur |
|
Linker est le logiciel qui lie le code objet avec des fichiers supplémentaires tels que des fichiers d'en-tête et crée un fichier exécutable avec l'extension.exe. | Le chargeur est le logiciel système qui charge le fichier exécutable généré par l'éditeur de liens dans la mémoire principale. |
Contribution | |
L'éditeur de liens prend la sortie du traducteur de langue, qui est le code objet. | Le chargeur prend la sortie de l'éditeur de liens, qui est le fichier exécutable. |
Fonctionnalité | |
L'éditeur de liens relie le code objet et les fichiers d'en-tête et génère le fichier exécutable. | Le chargeur charge le fichier exécutable obtenu à partir de l'éditeur de liens dans la mémoire principale. |
Résumé - Linker vs Loader
Linker et Loader sont deux composants logiciels liés à l'exécution du programme. Cet article décrit la différence entre l'éditeur de liens et le chargeur. Linker est le logiciel qui lie le code objet avec des fichiers supplémentaires tels que des fichiers d'en-tête et crée un fichier exécutable avec l'extension.exe. Le chargeur est le logiciel système qui charge le fichier exécutable généré par l'éditeur de liens dans la mémoire principale. C'est la différence entre Linker et Loader.