Inicio

DLL


DLL (Dynamic-Link Library) en español Biblioteca de Enlace Dinámico es el término con el que se refiere a los archivos con un código ejecutable que se cargan bajo la demanda de un programa por parte del sistema operativo. Esta denominación es exclusiva para los sistemas operativos Windows siendo “.dll” la extensión con la que se identifican estos archivos, aunque  prácticamente el concepto existe en todos los sistemas operativos modernos.

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

  • Se reduce el tamaño de los archivos ejecutables: Gran parte del código puede estar almacenado en bibliotecas y no en el propio archivo ejecutable lo que redunda en una mejor modularización.
  • Pueden ser 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).
  • Se facilita 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 mismo cuando se cargan 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 los cambios: Es posible mejorar el rendimiento o solucionar pequeños errores distribuyendo únicamente una nueva versión de la biblioteca dinámica. Está corrección o mejora será aprovechada por todas las aplicaciones que compartan el uso de la biblioteca.

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

  • Que al instalar un programa reemplace una DLL con una nueva versión incompatible.
  • Que al desinstalar un programa borre una DLL compartida.

El resultado en ambos casos, es que dejan de funcionar los programas que utilizaban la versión vieja de la DLL. Por estos problemas es que se denominaron el infierno de las DLL.

Las versiones modernas de los sistemas operativos Windows y los nuevos scripts de instalación MSI, más que nada por su característica de instalaciones residentes abordan y resuelven este problema. Sin embargo, el problema persiste cuando se utilizan otros instaladores con versiones antiguas o se realizan modificaciones manuales.

Fuente: Wikipedia

Anuncios
A %d blogueros les gusta esto: