Está en la página 1de 5

Que es una librera?

Se emplea el trmino librera para referirse a una biblioteca, por la similitud con el original ingls library. Ambos trminos, biblioteca y librera, son correctos segn las definiciones (biblioteca,1 librera2 ) de la RAE, aunque en trminos formales, la acepcin correcta es biblioteca, porque es la traduccin correcta de library, mientras que el trmino ingls para librera es bookstore o book shop (literalmente: tienda de libros), o bien bookshelf (estantera o mueble para guardar libros, librera o librero). Tambin es habitual referirse a ella con el trmino de origen anglosajn toolkit (conjunto, equipo, maletn, caja, estuche, juego (kit) de herramientas). La palabra library tiene un significado adicional en el mbito de la informtica: Conjunto de programas estndar y subrutinas que estn almacenadas y disponibles para su utilizacin.

Biblioteca estatica
Una biblioteca esttica, tambin conocido como archivo, consiste en un conjunto de rutinas que se copian en una aplicacin por el compilador o el enlazador, produciendo archivos con cdigo objeto y un fichero ejecutable independiente. Este proceso, y el archivo ejecutable, se conoce como una construccin esttica de la aplicacin objetivo. La direccin real, las referencias para saltos y otras llamadas a rutinas se almacenan en una direccin relativa o simblica, que no puede resolverse hasta que todo el cdigo y las bibliotecas son asignadas a direcciones estticas finales. El enlazador resuelve todas las direcciones no resueltas convirtindolas en direcciones fijas o relocalizables (desde una base comn) cargando todo el cdigo y las bibliotecas en posiciones de memoria en tiempo de ejecucin. Este proceso de enlazado puede durar incluso ms tiempo que el proceso de compilacin, y debe ser realizado cada vez que alguno de los mdulos es recompilado. La mayora de los lenguajes compilados tienen biblioteca estndar (por ejemplo, la biblioteca estndar de C), pero los programadores tambin pueden crear sus propias bibliotecas personalizadas. Los compiladores comerciales proporcionan tanto las bibliotecas estndar como las personalizadas.

Ventajas e inconvenientes de las bibliotecas estticas

Un programa compilado con libreras estticas es ms grande, ya que se hace copia de todo lo que necesita. Un programa compilado con libreras estticas se puede llevar a otro ordenador sin necesidad de llevarse las libreras.

Un programa compilado con libreras estticas es, en principio, ms rpido en ejecucin. Cuando llama a una funcin de la librera, la tiene en su cdigo y no tiene que ir a leer el fichero de la librera dinmica para encontrar la funcin y ejecutarla. Si cambiamos una librera esttica, a los ejecutables no les afecta. Si cambiamos una dinmica, los ejecutables se ven afectados. Esto es una ventaja si hemos cambiado la librera para corregir un error (se corrige automticamente en todos los ejecutables), pero es un inconveniente si tocar eso nos hace cambiar los ejecutables (por ejemplo, hemos aadido un parmetro ms a una funcin de la librera, los ejecutables ya hechos dejan de funcionar).

Bibliotecas dinmicas

Una librera de enlace dinmico, en adelante DLL (Dynamic Link Library), es un archivo que contiene funciones y/o recursos (mapas de bits, definiciones de fuentes, etc.) que podran ser llamados desde cualquier aplicacin Windows. De hecho, se puede considerar que Windows est construdo sobre una gran cantidad de DLL's. La mayoria de libreras de enlace dinmico se guardan en archivos que tienen extensin DLL, pero tambin pueden ser guardados en archivos con extensiones EXE (ejecutable), DRV (controlador de dispositivo) y FON (fuente de Windows). La diferencia entre las libreras de enlace dinmico con extensin DLL y el resto, es que las primeras se cargan porque el programa que las ha de utilizar lo pide a Windows y las dems, en cambio, se cargan porque estn referenciadas en archivos de inicializacin de Windows. Estas referencias pueden ser creadas por el propio Windows o por el programa de instalacin de alguna aplicacin. Hay dos formas diferentes de usar este tipo de bibliotecas. a) Enlazando dinmicamente en tiempo de carga. La biblioteca debe estar disponible durante la fase de compilacin/enlazado. Los objetos compartidos no se incluyen en el ejecutable. b) Cargando y descargando dinmicamente la biblioteca durante la ejecucin, usando para ello las funciones de sistema del cargador de enlace dinmico. Enlace dinmico significa que las subrutinas de una biblioteca son cargadas en un programa en tiempo de ejecucin, en lugar de ser enlazadas en tiempo de compilacin, y se mantienen como archivos independientes separados del fichero ejecutable del programa principal. El enlazador realiza una mnima cantidad de trabajo en tiempo de compilacin, registra que rutinas de la biblioteca necesita el programa y el ndice de nombres o nmeros de las rutinas en la biblioteca. La mayor parte de la labor de enlazado se realiza en el momento en que la aplicacin se carga (tiempo de carga o loadtime) o durante la ejecucin (tiempo de ejecucin o runtime). El necesario cdigo enlazado, llamado por el cargador, es de hecho parte del sistema operativo subyacente. En el momento adecuado el cargador localiza las bibliotecas en el disco y aade los datos relevantes de stas en el espacio de memoria del proceso. Algunos sistemas operativos slo pueden enlazar una biblioteca en tiempo de carga, antes de que el proceso comience su ejecucin, otros son capaces de esperar hasta despus de que el proceso haya empezado a ejecutarse y enlazar la biblioteca slo cuando efectivamente se hace referencia a ella (es decir, en tiempo de ejecucin). Esto

ltimo se denomina "retraso de carga". En cualquier caso, esa biblioteca es una biblioteca enlazada dinmicamente. El enlace dinmico, por su naturaleza, tiene tan slo las limitaciones establecidas por las licencias de software. Los plugins son un uso comn de las bibliotecas enlazadas dinmicamente, que son especialmente tiles cuando unas bibliotecas pueden ser sustituidas por otras con una interfaz similar, pero diferente funcionalidad. Se puede decir que un software tiene una "arquitectura de plugin" si utiliza bibliotecas con una funcionalidad bsica con la intencin de que puedan ser sustituidas. Sin embargo, el uso de las bibliotecas enlazadas dinmicamente en la arquitectura de una aplicacin no significa necesariamente que puedan ser sustituidas. El enlace dinmico se desarroll originalmente en los sistemas operativos Multics a partir de 1964. Se trataba de una caracterstica del MTS (Michigan Terminal System), construido a finales de los 60.6 En Microsoft Windows, las bibliotecas enlazadas dinmicamente se denominan DLL (dynamic-link library).

Ventajas e inconvenientes del uso de DLLs

Ventajas Una funcin definida dentro de una DLL est disponible para cualquier aplicacin Windows. Se reduce el tamao de las aplicaciones que utilizan la DLL por la reutilizacin de su cdigo. Mejora en el tiempo de compilacin y/o carga de la aplicacin (debido al menor tamao del cdigo) Ahorro de espacio en disco. Las DLL's aplicacin. son independientes de la

Inconvenientes Tienen que estar presentes en la carpeta del sistema antes de ser utilizadas El tiempo de acceso a la DLL por parte de la aplicacin que la usa es ms lento.

Estructura de una DLL de 32 bits

Una DLL se puede dividir, bsicamente, en tres partes: Archivo de cabecera: Contendr todas las declaraciones y/o definiciones (de variables, funciones, etc.) que use la DLL. Punto de entrada y salida a la DLL: Es la funcin principal de la DLL, y es la que se encarga de cargar la DLL (cuando se vaya a usar) y descargarla de la memoria (cuando se deje de usar). Dicha funcin se llama DllEntryPoint. Funciones que contiene la DLL: Son las funciones que contiene la DLL y que fueron declaradas por el programador de la misma.

También podría gustarte