Différence entre l'éditeur de liens et le chargeur

Auteur: Laura McKinney
Date De Création: 3 Avril 2021
Date De Mise À Jour: 7 Peut 2024
Anonim
Différence entre l'éditeur de liens et le chargeur - La Technologie
Différence entre l'éditeur de liens et le chargeur - La Technologie

Contenu


Linker et Loader sont les utilitaires qui jouent un rôle majeur dans l'exécution d'un programme. Le code source d'un programme passe par le compilateur, l'assembleur, l'éditeur de liens, le chargeur dans l'ordre respectif, avant son exécution. D'une part, où le lieur reçoit les codes d'objet générés par l'assembleur et les combine pour générer le module exécutable. D'autre part, le chargeur charge ce module exécutable dans la mémoire principale pour exécution. Laissez-nous discuter de la différence entre Linker et loader à l'aide d'un tableau de comparaison.

  1. Tableau de comparaison
  2. Définition
  3. Différences Clés
  4. Conclusion

Tableau de comparaison

Base de comparaisonLieurChargeur
De baseIl génère le module exécutable d'un programme source.Il charge le module exécutable dans la mémoire principale.
ContributionIl prend en entrée le code objet généré par un assembleur.Il faut un module exécutable généré par un éditeur de liens.
Une fonctionIl combine tous les modules d'objets d'un code source pour générer un module exécutable.Il alloue les adresses à un module exécutable de la mémoire principale pour exécution.
Type / approcheÉditeur de liens, éditeur de liens dynamique.Chargement absolu, chargement relogeable et chargement dynamique à l'exécution.


Définition du lieur

L'assembleur génère le code objet d'un programme source et le transmet à l'éditeur de liens. L’éditeur de liens prend ce code objet et génère le code exécutable pour le programme et le remettre au chargeur.

Le langage de haut niveau, les programmes ont quelques bibliothèques intégrées et fichiers d'en-tête. Le programme source peut contenir des fonctions de bibliothèque dont la définition est stockée dans les bibliothèques intégrées. L'éditeur de liens relie ces fonctions aux bibliothèques intégrées. Au cas où les bibliothèques intégrées ne seraient pas trouvées, il en informerait le compilateur, qui générerait alors l'erreur.

Parfois, les grands programmes sont divisés en sous-programmes appelés modules. Maintenant, lorsque ces modules sont compilés et assemblés, les modules objets du programme source sont générés. L'éditeur de liens a la responsabilité de combiner / lier tous les modules d'objet pour générer un seul fichier exécutable du programme source. Nous avons deux types de linkers.


Éditeur de liaison: C'est un éditeur de liens qui génère le module exécutable déplaçable.

Lieur dynamique: Diffère / reporte la liaison de certains modules externes jusqu'à ce que le module de chargement / module exécutable soit généré. Ici, la liaison est faite pendant le temps de chargement ou d'exécution.

Définition du chargeur

Comme le programme qui doit être exécuté actuellement doit résider dans la mémoire principale de l'ordinateur. C’est la responsabilité du chargeur, un programme dans un système d'exploitation, pour charger le fichier / module exécutable d'un programme, généré par l'éditeur de liens, dans la mémoire principale pour exécution. Il alloue l’espace mémoire au module exécutable en mémoire principale.

Il existe trois types d'approches de chargement:

  • Chargement absolu
  • Chargement relogeable
  • Chargement dynamique au moment de l'exécution

Chargement absolu: Cette approche charge le fichier exécutable d’un programme dans un même emplacement mémoire principal chaque fois. Mais il a quelques désavantages comme un programmeur doit être conscient de la stratégie d’attribution pour charger les modules dans la mémoire principale. Dans le cas où le programme doit être modifié avec une certaine insertion et suppression, toutes les adresses du programme doivent être modifiées.

Chargement relocalisable: Dans cette approche, le compilateur ou l’assembleur ne ne pas produire l'adresse réelle de la mémoire principale. Il produit les adresses relatives.

Chargement dynamique à l'exécution: Dans cette approche, l'adresse absolue d'un programme est générée lorsqu'une instruction d'un module exécutable est réellement exécutée. Il est très flexible, le module chargeable / module exécutable peut être chargé dans n'importe quelle région de la mémoire principale. Le programme en cours d'exécution peut être interrompu entre les deux. Il peut être échangé sur le disque puis dans la mémoire principale à une adresse différente.

  1. La principale différence entre l'éditeur de liens et le chargeur est que l'éditeur de liens génère le exécutable fichier d'un programme, le chargeur charge le fichier exécutable obtenu à partir de l'éditeur de liens dans mémoire principale pour l'exécution.
  2. L'éditeur de liens prend le module objet d'un programme généré par l'assembleur. Cependant, le chargeur prend la module exécutable généré par l'éditeur de liens.
  3. L’éditeur de liens combine tous les modules d’objet d’un programme pour générer modules exécutables il relie également le fonction de bibliothèque dans le module objet pour bibliothèques intégrées du langage de programmation de haut niveau. D'autre part, chargeur alloue de l'espace à un exécutable module en mémoire principale.
  4. L’éditeur de liens peut être classé comme éditeur de liens, et éditeur de liens dynamique tandis que le chargeur peut être classé comme chargeur absolu, chargeur relogeable et chargeur d'exécution dynamique.

Conclusion:

L'éditeur de liens extrait les modules d'objets d'un programme de l'assembleur et les relie pour générer un module exécutable d'un programme. Le module exécutable est ensuite chargé par le chargeur dans la mémoire principale pour exécution.