Différence clé - Linker vs Loader
Un programme informatique est utilisé pour donner des instructions à l'ordinateur. Il est écrit à l'aide d'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 langage. Un programme écrit en utilisant un langage de haut niveau est un code source. Après la conversion, le code traduit est appelé le code objet. L'éditeur de liens et le chargeur sont deux programmes logiciels utilisés pour l'exécution du programme. Cet article traite de la différence entre Linker et Loader. Linker est le logiciel qui relie le code objet à 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.
Qu'est-ce que l'éditeur de liens ?
Un programme informatique est un ensemble d'instructions données à un ordinateur pour effectuer une certaine tâche. Un programme informatique peut être écrit à l'aide d'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. Il peut s'agir d'un compilateur ou d'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 en tant que Test.c, il passe par le compilateur et le code converti devient Test.obj.
Linker est le logiciel qui relie le code objet à 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 de l'éditeur de liens. 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 est une 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. Cela implique de lire le contenu du fichier exécutable contenant l'instruction de programme en mémoire 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 de programme chargé. Les systèmes informatiques spéciaux tels que les systèmes embarqués n'ont généralement pas de chargeurs. 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 l'éditeur de liens et le chargeur ?
Lien contre chargeur |
|
Linker est le logiciel qui relie 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. |
Entrée | |
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 vers 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 traite de la différence entre le Linker et le Loader. Linker est le logiciel qui relie le code objet à 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.