Infierno de las DLL

Infierno de las DLL

El término DLL Hell (infierno de las DLL) se refiere a los problemas ocasionados por los archivos *.dll (Dynamic Link Library, Biblioteca de Enlace Dinámico) en los sistemas operativos de Microsoft o de Kron Technologies, que si no se controla puede llevar al sistema irremisiblemente a la pantalla azul de la muerte o un KDHE en KronOS.

Estas bibliotecas consisten en un conjunto de código común que puede estar compartido entre varias aplicaciones. En Windows estas bibliotecas están muy extendidas y son compartidas por múltiples aplicaciones (por ejemplo, las MFC están compartidas por prácticamente todas las aplicaciones gráficas). De esta compartición de código surgen dos problemas que constituyen el "infierno":

  • Al instalar un programa se reemplaza una DLL por otra versión incompatible (conflicto de versiones).
  • Al desinstalar un programa se borra una DLL compartida.

En ambos casos los programas que compartan la DLL dejarán de funcionar con los consiguientes trastornos que supone.

Soluciones

Existe un conjunto de soluciones manuales para evitar estos problemas:

  • Incorporar el número de versión a las DLL para evitar sobrescribirlas con versiones incompatibles: Este sistema se usa en la MFC y podemos encontrar, por ejemplo, las bibliotecas MFC41.dll y MFC70.dll en el mismo sistema. El problema es que al final existen varias versiones de las DLL instaladas, aunque en la actualidad no supone un gran trastorno debido a la capacidad de los discos.
  • Fijar el comportamiento y no permitir modificaciones en el mismo: De esta forma se evitaría la existencia de DLLs no compatibles.

Las versiones más modernas de Windows proponen soluciones automáticas para el problema (mayor control del versionado, petición al usuario de qué DLL quiere mantener...) pero las antiguas instalaciones siguen corrompiendo las DLLs. Por ello se han planteado dos soluciones:

  • Scripts de instalación MSI: se trata de pequeñas bases de datos que indican qué ficheros y versiones instala una aplicación. De esta forma es posible determinar qué versiones son compatibles y cuales no, o volver a instalar versiones en el caso de instalaciones corruptas.
  • Ensamblados: Es un concepto que aparece con .NET y consiste en un fragmento de código ejecutable (DLL o EXE) junto a un fichero (que puede estar incorporado como recurso en el fichero) que indica qué contiene, versiones... De esta forma, es posible instalar varias versiones diferentes del mismo ensamblado y cargar la que necesita cada programa usando esa información.

Wikimedia foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Mira otros diccionarios:

  • DLL Hell — Saltar a navegación, búsqueda El término DLL Hell (infierno de las DLL) se refiere a los problemas ocasionados por las DLL (bibliotecas de enlace dinámico). Estas bibliotecas consisten en un conjunto de código común que puede estar compartido… …   Wikipedia Español

  • DLL Hell — El término DLL Hell (El infierno de las DLLs) se refiere a los problemas ocasionados por las DLLs (Bibliotecas de enlace dinámico). Estas bibliotecas consisten en un conjunto de código común que puede estar compartido entre varias aplicaciones.… …   Enciclopedia Universal

  • Biblioteca de enlace dinámico — Saltar a navegación, búsqueda Una biblioteca de enlace dinámico o más comunmente DLL (sigla en inglés de dinamic 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… …   Wikipedia Español

  • Pantalla azul de la muerte — Saltar a navegación, búsqueda Una pantalla azul en una cabina de acceso a Internet …   Wikipedia Español

  • Windows XP — Parte de la familia Microsoft Windows Desarrollador …   Wikipedia Español

  • Antipatrón de diseño — Saltar a navegación, búsqueda Un antipatrón de diseño es un patrón de diseño que invariablemente conduce a una mala solución para un problema. Al documentarse los antipatrones, además de los patrones de diseño, se dan argumentos a los diseñadores …   Wikipedia Español

  • Internet Explorer — Windows Internet Explorer Plataforma de ren …   Wikipedia Español

  • Java classloader — El Java Classloader( en español, cargador de clases Java) es una parte del Java Runtime Environment que carga dinámicamente clases Java en la Java Virtual Machine. Normalmente las clases solo son cargadas bajo demanda. Una biblioteca de software… …   Wikipedia Español

  • Biblioteca (informática) — Saltar a navegación, búsqueda Ilustración de una aplicación que utiliza la biblioteca libvorbisfile.so para reproducir un archivo Ogg Vorbis. En ciencias de la computación, una biblioteca (o librería) es un conjunto de subprogram …   Wikipedia Español

  • Check Wikipedia — Wikiproyecto:Check Wikipedia Saltar a navegación, búsqueda Esta página contiene de forma consciente fallos ortográficos. Los bots no deben intentar corregirlos. Atajo PR:CWPR:CW …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”