DLL

De Viquipèdia
Dreceres ràpides: navegació, cerca

DLL (Dynamic Link Library, Biblioteca d'Enllaç Dinàmic) és un format de fitxer de codi executable que és carregat a petició d'un programa per part del sistema operatiu. Esta denominació es referix als sistemes operatius Windows i és l'extensió amb què s'identifiquen els fitxers, encara que el concepte existix en pràcticament tots els sistemes operatius moderns.

Avantatges[modifica | modifica el codi]

Les DLL es poden veure com l'evolució de les biblioteques estàtiques i de forma anàloga contenen funcionalitat i/o recursos que utilitzen altres aplicacions. Tanmateix, el seu ús proporciona alguns avantatges:

  • Reduïxen la grandària dels arxius executables: Gran part del codi pot estar emmagatzemat en biblioteques i no en el propi executable, facilitant la modularització.
  • Poden estar compartides entre diverses aplicacions: Si el codi és prou genèric, pot resultar d'utilitat per a múltiples aplicacions (per exemple, la MFC és una biblioteca dinàmica amb classes genèriques que recobrixen l'API gràfica de Windows i que usen gran part de les aplicacions).
  • Faciliten la gestió i aprofitament de la memòria del sistema: La càrrega dinàmica permet al sistema operatiu aplicar algoritmes que milloren el rendiment del sistema quan es carreguen estes biblioteques. A més, a l'estar compartides, n'hi ha prou amb mantindre una còpia en memòria per a tots els programes que la utilitzen.
  • Són més flexibles als canvis: És possible millorar el rendiment o solucionar xicotets errors distribuint únicament una nova versió de la biblioteca dinàmica. Novament, esta correcció o millora serà aprofitada per totes les aplicacions que compartisquen la biblioteca.

Problemes[modifica | modifica el codi]

Tanmateix, no tots són avantatges. En els sistemes Windows, les DLL són molt comuns i molts programes usen les mateixes DLL. Però a causa de l'evolució, cada una de les DLL evoluciona incorporant-se millores però modificant-les de tal forma que deixen de ser compatibles. Açò pot produir dos efectes no desitjats:

  • La instal·lació d'un programa reemplaça una DLL amb una nova versió incompatible
  • La desinstal·lació del programa esborra una DLL compartida

En ambdós casos, el resultat és que deixen de funcionar els programes que utilitzaven la vella versió. Aquests problemes es denominen en anglès DLL Hell (l'infern de les DLL).

Les versions més modernes de Windows i els nous scripts d'instal·lació MSI aborden este problema. Tanmateix, el problema es manté quan s'utilitzen altres instal·ladors (versions antigues) o es realitzen modificacions manuals.