Clasificación de los Ligadores

Editores de Ligado:

     Un editor de ligado hace mención a la producción de versión ligada del programa y también se les llama módulo de imagen ejecutable en la cual se escribe un archivo o en una biblioteca para así poder ser ejecutada.

Ligador Dinámico: 

     El ligador dinámico es de importancia ya que ofrece ventajas en cuanto a tiempo y espacio de memoria en caso de que las sub-rutinas sean sumamente grandes o se den muchas referencias externas ya que busca y carga la rutina necesaria cuando la necesita. 

Clasificación de los Cargadores

Cargadores Bootstrap:

     Programa cargador debe estar ubicado en la memoria del computador, luego se carga el programa de aplicación con sus respectivos datos. Anteriormente se debido cargar el cargador en la respectiva memoria para así poder efectuar los siguientes métodos:

      Entrada Manual: Se da mediante el teclado.
      Entrada por ROM: Se encuentran instrucciones guardadas en la memoria ROM, la cual no deben ser introducidas por teclado y no se pueden borrar accidentalmente ya que están almacenadas en la memoria a diferencia de la entrada manual.

Cargadores Absolutos:

     Estos se basan en la verificación de cada instrucción de un programa en una posición fija de dirección absoluta en el que se leen. Si en algún momento detecta una instrucción ilegal esta interrumpe el proceso de carga.

Cargadores Relocatables: 

     Este tipo es una mejora de los cargadores absolutos ya que con estos el usuario tiene el privilegio de poder indicar la posición de memoria en la cual quiere que se guarden cuyas instrucciones y datos.

Cargadores Ligadores: 

     Este efectúa las operaciones de ligado, re-localización, incluyendo búsquedas en biblioteca para la carga del programa obtenido de dichas operaciones que estará ubicado en la memoria listo para su ejecución.

Funciones y Características de un Enlazador

   Las funciones de un Enlazador son: 
  1. Enlazar al mismo tiempo módulos traducidos independientemente.
  2. Supercompensación de procesamiento.
  3. Modificación del programa.
  4. Acceso a las bibliotecas.
  Características de un Enlazador:

    Las características del enlazador varían de un sistema a otro. En general, simplemente se indican al enlazador los nombres de los módulos objeto, las librerías que se desean enlazar y el nombre del ejecutable de salida. Algunos sistemas requieren que sea el programador el que invoque al enlazador, aunque en la mayoría de los paquetes de C++ se llama al enlazador a través del compilador. En muchas situaciones de manera transparente. Algunos enlazadores antiguos no buscaban ficheros objeto mas de una vez y buscaban en la lista que se les pasaba de izquierda a derecha. Esto significa que el orden de los ficheros objeto y las librerías pueden ser importantes.

Opciones de diseño del cargador

   Los cargadores ligadores realizan el ligado en el momento de la carga. Y aquí intervienen dos factores: los editores de ligado y el ligado dinámico. Los editores de ligado, son los que realizan el ligado antes del momento de la carga. El ligado dinámico hace uso de los dispositivos del sistema operativo para cargar los sub-programas en el momento en que se llaman por primera vez. Los cargadores de arranque se utilizan para la ejecución de programas autónomos, independientes del sistema operativo, otra de sus utilidades es cargar el sistema operativo.

Funciones y Características de un Cargador

     Las funciones de un cargador son:

  1. Colocar un programa objeto en memoria e iniciar su ejecución.
  2. Las funciones de un cargador son relativamente sencillas y consisten en extraer información de algún medio exterior de la memoria (por ejemplo: CD, Discos) y colocarlos en celdas sucesivas de la memoria a partir de una celda pre-especificada.
  3. El cargador realiza la última etapa del proceso de traducción: cargar el programa en memoria donde puede ser ejecutado.  

     Características de un cargador:


     Una de la más obvias es que el programador necesita especificar(al ensamblar el programa), la dirección real en que se cargará la memoria. Si se trata de un computador muy sencillo con poca memoria, esto no crea muchas dificultades, ya que solo hay espacio para ejecutar un programa a la vez. En máquinas más grandes y avanzadas, la situación no es tan fácil porque a menudo se quieren ejecutar varios programas independientes a la vez, compartiendo la memoria. 
     
     El cargador se encarga de la re-localización y ligado del programa, además de las funciones básicas. La necesidad de re-localizar los programas es una consecuencia directa del cambio a computadores más grandes y potentes. La forma de efectuar la re-localización en un cargador también depende de las características de la máquina.

Funciones y Características de un Ligador

     Las funciones de un ligador son: 

  1. Los editores de ligado pueden efectuar varias funciones, además de la simple preparación de un programa objeto para su ejecución.
  2. Se pueden utilizar para construir paquetes de sub-rutinas u otras secciones que se suelen utilizar juntas.Esto puede ser útil al tratar con bibliotecas de sub-rutinas que manejan lenguajes de programación de alto nivel.
  3. Comparados con los cargadores de ligadores, los editores de ligado en general tienden a ofrecer mayor flexibilidad y control con el correspondiente incremento, complejidad y sobrecarga.  

     Características de un ligador:


1) Enlazar código intermedio compilado independientemente en un solo módulo de carga resolviendo las diferencias entre tokens.

2) Incorpora las denominadas rutinas de librerías en caso de solicitarlas el propio programa.

3) Reducir procedimientos traducidos por separado y enlazarlos para que se ejecuten como una unidad llamada programa binario ejecutable.

¿Qué son los Cargadores, Enlazadores y Ligadores?

Cargador:

     Es un programa especial, el cual forma parte del sistema operativo. Su función es colocar las instrucciones y datos de un programa o información codificada en lenguaje maquina en memoria, para que la computadora pueda procesarla.  Un cargador es un programa que realiza la función de carga, pero muchos cargadores también incluyen re-localización y ligado.

    Re-localización

     Consiste en modificar el programa objeto de forma que pueda cargarse en una dirección diferente de la localidad especificada originalmente. 

Enlazador:

     Es un programa que toma los objetos generados en los primeros pasos del proceso de compilación, la información de todos los recursos necesarios(bibliotecas), elimina los recursos que no necesita, y enlaza el código objeto con su(s) biblioteca(s) con lo que finalmente produce un fichero ejecutable. 

Ligador:

     Es un programa que permite enlazar distintos módulos o programas obteniendo a lo que se le denomina un programa ejecutable.  Además incorporan las denominadas rutinas de librerías en caso de solicitarlas el propio programa