En este artículo vamos a abordar el tema de Biblioteca de enlace dinámico, el cual ha sido objeto de debate y análisis en diversos ámbitos. Biblioteca de enlace dinámico es un tema que despierta gran interés y ha generado diferentes posturas entre expertos y público en general. A lo largo de este artículo, exploraremos a fondo los aspectos relevantes relacionados con Biblioteca de enlace dinámico, así como las implicaciones que tiene en diversos contextos. Nos centraremos en analizar diferentes enfoques, investigaciones recientes y perspectivas que ayudarán a comprender de manera más completa la importancia y relevancia de Biblioteca de enlace dinámico en la actualidad.
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 | ? | |
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.
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:
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:
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.
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.