fbpx
Wikipedia

Biblioteca de enlace dinámico

Una biblioteca de enlace dinámico (DLL, por la sigla en inglés de dynamic-link library) es el término con el que se refiere a los archivos con código ejecutable que se cargan bajo demanda de un programa por parte del sistema operativo. Esta denominación es exclusiva a los sistemas operativos Windows siendo ".dll" la extensión con la que se identifican estos ficheros, aunque el concepto existe en prácticamente todos los sistemas operativos modernos.

Biblioteca de enlace dinámico
Desarrollador
Microsoft
Información general
Extensión de archivo .dll
Tipo de MIME application/x-msdownload
Uniform Type Identifier com.microsoft.windows-dynamic-link-library
Número mágico MZ
Contenedor para Biblioteca compartida
Formato abierto ?

Ventajas

Las DLL son o se pueden ver como la evolución de las bibliotecas estáticas (en diversos sistemas) y de forma análoga contienen funcionalidad o recursos que utilizan otras aplicaciones. Su uso proporciona algunas ventajas:

  • Reducen el tamaño de los archivos ejecutables: Gran parte del código puede estar almacenado en bibliotecas y no en el propio ejecutable lo que redunda en una mejor modularización.
  • Pueden estar compartidas entre varias aplicaciones: Si el código es suficientemente genérico, puede resultar de utilidad para múltiples aplicaciones (por ejemplo, la MFC es una biblioteca dinámica con clases genéricas que recubren la API gráfica de Windows y que usan gran parte de las aplicaciones).
  • Facilitan la gestión y aprovechamiento de la memoria del sistema: La carga dinámica permite al sistema operativo aplicar algoritmos que mejoren el rendimiento del sistema cuando se carguen estas bibliotecas. Además, al estar compartidas, basta con mantener una copia en memoria para todos los programas que la utilicen.
  • Brindan mayor flexibilidad frente a cambios: Es posible mejorar el rendimiento o solucionar pequeños errores distribuyendo únicamente una nueva versión de la biblioteca dinámica. Nuevamente, esta corrección o mejora será aprovechada por todas las aplicaciones que compartan la biblioteca.

«Infierno de las DLL»

Sin embargo, no todo son ventajas. En los sistemas Windows, las DLL son muy comunes y muchos programas usan las mismas bibliotecas de enlace dinámico. Pero debido a la evolución, cada una de las bibliotecas evoluciona incorporando mejoras pero modificándolas de tal forma que dejan de ser compatibles. Esto puede producir dos efectos no deseados:

  • Que la instalación de un programa reemplace una DLL con una nueva versión incompatible.
  • Que la desinstalación del programa borre una DLL compartida.

En ambos casos, el resultado es que dejan de funcionar los programas que utilizaban la vieja versión. Estos problemas se denominaron el «infierno de las DLL».

Las versiones modernas de Windows y los nuevos scripts de instalación MSI (sobre todo su característica de instalaciones residentes) abordan y resuelven este problema. Sin embargo, el problema persiste cuando se utilizan otros instaladores (versiones antiguas) o se realizan modificaciones manuales.

Librerías de importación

Al igual que las librerías estáticas, las librerías de importación para DLL tienen extensión .lib. Por ejemplo, kernel32.dll, la biblioteca dinámica principal para las funciones básicas de Windows, se enlaza por medio de kernel32.lib. Para distinguir una librería de importación de una librería estática se puede tener en cuenta el tamaño, ya que las librerías de importación solo contienen símbolos que hacen referencia a la DLL. Por lo tanto, el tamaño de una librería de importación suele ser pequeño. Sin embargo, en ambos casos se usa el formato Unix ar.

Cuando se genera el ejecutable se utilizan las librerías estáticas para resolver los símbolos externos, los cuales hacen referencia a DLL. El ejecutable contiene una tabla de direcciones de importación IAT (en inglés, Import Address Table) mediante la cual se hace referencia a todas las llamadas a funciones DLL (cada función DLL contiene su propia entrada en IAT). En tiempo de ejecución, las entradas en IAT son reemplazadas con las direcciones en memoria reales de las funciones de DLL.[1]

Véase también

Referencias

  1. «Understanding the Import Address Table» (en inglés). 

Enlaces externos

  • ¿Qúe es una DLL?, Microsoft.
  • ¿Qué es un archivo DLL?
  •   Datos: Q380319

biblioteca, enlace, dinámico, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, septiembre, 2013, biblioteca, enlace, dinámico, sigla, inglés, dynamic, link, library, término, refiere, archivos, código, ej. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 3 de septiembre de 2013 Una biblioteca de enlace dinamico DLL por la sigla en ingles de dynamic link library es el termino con el que se refiere a los archivos con codigo ejecutable que se cargan bajo demanda de un programa por parte del sistema operativo Esta denominacion es exclusiva a los sistemas operativos Windows siendo dll la extension con la que se identifican estos ficheros aunque el concepto existe en practicamente todos los sistemas operativos modernos Biblioteca de enlace dinamicoDesarrolladorMicrosoftInformacion generalExtension de archivo dllTipo de MIMEapplication x msdownloadUniform Type Identifiercom microsoft windows dynamic link libraryNumero magicoMZContenedor paraBiblioteca compartidaFormato abierto editar datos en Wikidata Indice 1 Ventajas 2 Infierno de las DLL 3 Librerias de importacion 4 Vease tambien 5 Referencias 6 Enlaces externosVentajas EditarLas DLL son o se pueden ver como la evolucion de las bibliotecas estaticas en diversos sistemas y de forma analoga contienen funcionalidad o recursos que utilizan otras aplicaciones Su uso proporciona algunas ventajas Reducen el tamano de los archivos ejecutables Gran parte del codigo puede estar almacenado en bibliotecas y no en el propio ejecutable lo que redunda en una mejor modularizacion Pueden estar compartidas entre varias aplicaciones Si el codigo es suficientemente generico puede resultar de utilidad para multiples aplicaciones por ejemplo la MFC es una biblioteca dinamica con clases genericas que recubren la API grafica de Windows y que usan gran parte de las aplicaciones Facilitan la gestion y aprovechamiento de la memoria del sistema La carga dinamica permite al sistema operativo aplicar algoritmos que mejoren el rendimiento del sistema cuando se carguen estas bibliotecas Ademas al estar compartidas basta con mantener una copia en memoria para todos los programas que la utilicen Brindan mayor flexibilidad frente a cambios Es posible mejorar el rendimiento o solucionar pequenos errores distribuyendo unicamente una nueva version de la biblioteca dinamica Nuevamente esta correccion o mejora sera aprovechada por todas las aplicaciones que compartan la biblioteca Infierno de las DLL EditarArticulo principal DLL Hell Sin embargo no todo son ventajas En los sistemas Windows las DLL son muy comunes y muchos programas usan las mismas bibliotecas de enlace dinamico Pero debido a la evolucion cada una de las bibliotecas evoluciona incorporando mejoras pero modificandolas de tal forma que dejan de ser compatibles Esto puede producir dos efectos no deseados Que la instalacion de un programa reemplace una DLL con una nueva version incompatible Que la desinstalacion del programa borre una DLL compartida En ambos casos el resultado es que dejan de funcionar los programas que utilizaban la vieja version Estos problemas se denominaron el infierno de las DLL Las versiones modernas de Windows y los nuevos scripts de instalacion MSI sobre todo su caracteristica de instalaciones residentes abordan y resuelven este problema Sin embargo el problema persiste cuando se utilizan otros instaladores versiones antiguas o se realizan modificaciones manuales Librerias de importacion EditarAl igual que las librerias estaticas las librerias de importacion para DLL tienen extension lib Por ejemplo kernel32 dll la biblioteca dinamica principal para las funciones basicas de Windows se enlaza por medio de kernel32 lib Para distinguir una libreria de importacion de una libreria estatica se puede tener en cuenta el tamano ya que las librerias de importacion solo contienen simbolos que hacen referencia a la DLL Por lo tanto el tamano de una libreria de importacion suele ser pequeno Sin embargo en ambos casos se usa el formato Unix ar Cuando se genera el ejecutable se utilizan las librerias estaticas para resolver los simbolos externos los cuales hacen referencia a DLL El ejecutable contiene una tabla de direcciones de importacion IAT en ingles Import Address Table mediante la cual se hace referencia a todas las llamadas a funciones DLL cada funcion DLL contiene su propia entrada en IAT En tiempo de ejecucion las entradas en IAT son reemplazadas con las direcciones en memoria reales de las funciones de DLL 1 Vease tambien EditarInterfaz grafica Resource Hacker Anexo Bibliotecas DLL de Windows ImpLib SDKReferencias Editar Understanding the Import Address Table en ingles Enlaces externos Editar Que es una DLL Microsoft Que es un archivo DLL Datos Q380319 Obtenido de https es wikipedia org w index php title Biblioteca de enlace dinamico amp oldid 137506201, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos