Diferencia entre el enlazador y el cargador

Diferencia clave - Linker vs Cargador
 

Se utiliza un programa de computadora para dar instrucciones a la computadora. Está escrito utilizando un lenguaje de programación específico. Los lenguajes de programación como C, Java son lenguajes de programación de alto nivel y son comprensibles para los humanos pero no para la computadora. Por lo tanto, un programa de alto nivel se convierte a lenguaje de máquina utilizando un traductor de idiomas. Un programa escrito con un lenguaje de alto nivel es un código fuente. Después de la conversión, el código traducido se llama el código objeto. El enlazador y el cargador son dos programas de software que se utilizan para la ejecución del programa. Este artículo discute la diferencia entre el enlazador y el cargador. El enlazador es el software que vincula el código objeto con archivos adicionales como los archivos de encabezado y crea un archivo ejecutable con la extensión .exe. El cargador es el software del sistema que carga el archivo ejecutable generado por el vinculador a la memoria principal. Eso es el diferencia clave entre el enlazador y el cargador.

CONTENIDO

1. Resumen y diferencia clave
2. Que es linker
3. Que es el cargador
4. Relación entre el enlazador y el cargador
5. Comparación lado a lado - Linker vs Loader en forma tabular
6. Resumen

Que es linker?

Un programa de computadora es un conjunto de instrucciones que se le dan a una computadora para realizar una determinada tarea. Un programa de computadora puede ser escrito usando un lenguaje de programación. La mayoría de los lenguajes de programación son programación de alto nivel. Son fácilmente comprensibles y legibles por el programador. Esos idiomas siguen una sintaxis similar al idioma inglés. Algunos ejemplos de lenguajes de alto nivel son Java, C y Python. Un programa escrito con un lenguaje de programación de alto nivel se conoce como código fuente, archivo fuente o programa fuente. La extensión del código fuente depende del idioma con el que fue desarrollado. Si el código fuente está escrito en C ++, la extensión del archivo es .cpp. Si el código fuente está escrito en Python, la extensión es .py.

Incluso el código fuente es comprensible por el programador; No es comprensible por la computadora. Por lo tanto, el código fuente debe convertirse en un formato comprensible para la máquina utilizando un traductor de idiomas. Puede ser un compilador o un intérprete. El código traducido se conoce como el código objeto. El código objeto está en lenguaje de máquina. Se compone de ceros y una vez. La computadora puede entender directamente el código objeto. Tiene la extensión .obj. Si hay un código fuente como Test.c, pasa por el compilador y el código convertido se convierte en Test.obj.

El enlazador es el software que vincula el código objeto con archivos adicionales como los archivos de encabezado y crea un archivo ejecutable con la extensión .exe. El programa podría haber utilizado funciones integradas. Las funcionalidades para esas funciones incorporadas están en los archivos de encabezado. De acuerdo con el ejemplo explicado anteriormente, el código objeto que es Test.obj se agrega con los archivos de encabezado necesarios usando el enlazador. Crea un nuevo archivo conocido como Test.exe. Es un archivo ejecutable. Por lo tanto, es ejecutable por la computadora..

Que es el cargador?

Un programa que debe ejecutarse debe ser colocado en la memoria. El vinculador vincula el código objeto y los archivos de encabezado y genera el archivo ejecutable. El cargador es el software del sistema que carga el archivo ejecutable generado por el vinculador a la memoria principal. Asigna el espacio de memoria al módulo ejecutable en la memoria principal. Por lo tanto, un cargador es una parte del sistema operativo que se encarga de cargar programas y bibliotecas..

Figura 01: Orden en que se carga el código fuente en la memoria

Cargar un programa implica varios pasos. Implica leer en la memoria el contenido del archivo ejecutable que contiene las instrucciones del programa y también realizar las tareas de preparación necesarias para ejecutar el archivo ejecutable. Una vez que se completa la carga, el sistema operativo inicia el programa pasando el control al código del programa cargado. Los sistemas informáticos especiales, como los sistemas integrados, generalmente no tienen cargadores. El código se ejecuta directamente por la ROM..

¿Cuál es la relación entre el enlazador y el cargador??

  • La salida del enlazador va al cargador..

¿Cuál es la diferencia entre el enlazador y el cargador??

Linker vs Loader

El enlazador es el software que vincula el código objeto con archivos adicionales como los archivos de encabezado y crea un archivo ejecutable con extensión .exe. El cargador es el software del sistema que carga el archivo ejecutable generado por el vinculador a la memoria principal.
 Entrada
El enlazador toma la salida del traductor de lenguaje, que es el código objeto. El cargador toma la salida del enlazador, que es el archivo ejecutable.
Funcionalidad
El vinculador vincula el código objeto y los archivos de encabezado y genera el archivo ejecutable. El cargador carga el archivo ejecutable obtenido desde el enlazador a la memoria principal.

Resumen - Linker vs Cargador

Linker y Loader son dos componentes de software relacionados con la ejecución del programa. Este artículo discutió la diferencia entre el enlazador y el cargador. El enlazador es el software que vincula el código objeto con archivos adicionales como los archivos de encabezado y crea un archivo ejecutable con la extensión .exe. El cargador es el software del sistema que carga el archivo ejecutable generado por el vinculador a la memoria principal. Esa es la diferencia entre Linker y Loader.

Referencia:

1.'Loader (informática) ', Wikipedia, Wikimedia Foundation, 28 de febrero de 2018. Disponible aquí