¿ Qué es un archivo DLL?


Los archivos DLL (Dynamic Link Library, Biblioteca de enlace dinámico) son un tipo de archivos que contienen código para ejecutar alguna función determinada, la ejecución de los archivos DLL se puede llevar a cabo desde programas ejecutables (Por ejemplo un “EXE”) o bien incluso desde otras DLL.

El uso de archivos DLL tiene ciertas ventajas entre ellas:

  • 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, está corrección o mejora será aprovechada por todas las aplicaciones que compartan la biblioteca.

Sin embargo los archivos DLL también tienen sus desventajas, en muchas ocasiones muchos programas usan las mismas bibliotecas de enlace dinámico (DLL). Pero debido a la evolución, cada una de las bibliotecas evoluciona incorporándose 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 versión vieja. 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.

Así mismo en:

Se pueden encontrar archivos DLL para su descarga, el mayor problema es que tengan la versión que necesitamos en el caso de que nos falte alguna librería DLL.

Se puede encontrar más información en:

Anuncios

Conexiones de datos de alta velocidad para dispositivos de almacenamiento interno


Actualmente el conector de datos más común en ordenadores domésticos es:

  • Serial ATA (SATA150) que soporta hasta 150 MB/Seg por conector, en principio este ancho de banda es más que suficiente para cualquier disco duro (HDD: Hard Disk Drive) mecánico actual, aunque se queda corto para los SSD (Solid State Device, Dispositivo de Estado Sólido) basados en memoria flash (En estas entradas del Blog: SSD (Solid State Drive, Dispositivo de Estado Sólido): Los nuevos discos duros y Guía para comprar un SSD (Solid State Device, Dispositivo de Estado Sólido) hay más información sobre estos dispositivos).
  • Serial ATA2 (SATA300) que soporta hasta 300 MB/Seg por conector, en principio este ancho de banda es suficiente para casi cualquier SSD (Solid State Device, Dispositivo de Estado Sólido) actual a excepción de los Crucial C300 que son SATA3 (SATA600) ya que su capacidad de lectura es de 355 MB/Seg (Usando SATA300 se “quedan” en 265 MB/Seg).

Para solucionar el problema de ancho de banda sobre todo para los futuros SSD de altas prestaciones (Sin tener que recurrir al bus PCI Express (PCIe) como hacen por ejemplo los Revo Drive de OCZ, en esta entrada del Blog hay más información sobre este dispositivo) se puede utilizar:

  • Serial ATA 3 (SATA600) soporta hasta 6 Gbps (Unos 600 MB/Seg) por conector, actualmente es una buena opción ya que ningún SSD con conexión SATA supera los 400 MB/Seg.
  • SAS (Serial Attached SCSI) es una conexión que ha sustituido al antiguo SCSI (Small Computer System Interface), se utiliza en Servidores profesionales debido al alto coste tanto de las controladoras como de los dispositivos de almacenamiento, de hecho su evolución es similar a SATA (Los discos SAS son incompatibles con conexiones Serial ATA), la norma actual es SAS 6 Gbps (SAS 600) que soporta hasta 600 MB/Seg y se espera que para 2010 llegue hasta los 12 Gbps denominandose SAS 1200 que tendria aproximadamente 1,2 GB/Seg de ancho de banda.

Sin embargo ya hay proyectos para aumentar aun más la tasa de transferencia de los dispositivos internos como es el caso del conector:

  • High Speed Data Link (HDSL) de OCZ que utiliza un cable SAS de alta calidad, actualmente tiene un ancho de banda de 2 Gbps pero se espera que llegue en un futuro hasta 20 Gbps (Probablemente en un futuro tenga mejoras de velocidad como ocurre con la mayoría de conexiones de datos), HDSL se utiliza en los nuevos OCZ Ibis que tienen 4 controladoras Sand Force 1200 (SF-1200) en RAID 0 llegando a ofrecer unas prestaciones de hasta 804 MB/Seg en lectura y 675 MB/Seg en escritura (Información de Infochaos Digital).
  • Light Peak desarrollado por Intel que utiliza un cable de fibra óptica e inicialmente tendra un ancho de banda de 10 Gbps,  que en un futuro proximo podria llegar hasta los 100 Gbps, en principio se espera que aprezca en 2011.

Estos conectores permiten “apilar” los discos en niveles RAID (En esta entrada del Blog hay más información) siempre y cuando la controladora lo soporte, mientras que el uso de SSD con conexión PCIe no permite la “apilación” porque los discos trabajarian de forma individual.

Se puede encontrar más información en:

¿Dónde deberían guardarse los archivos del usuario?


A menudo los usuarios guardamos nuestros archivos en las carpetas que existen en el sistema por defecto, en Windows por ejemplo las ubicaciones más habituales son:

  • Carpeta “Mis Documentos” que por norma general suele estar ubicada en la Unidad C (Junto con el Sistema Operativo y los programas/juegos).
  • Escritorio que por norma general se ubica en la Unidad C (Junto con el Sistema Operativo y los programas/juegos).

En principio podemos pensar que dichas ubicaciones son un sitio “seguro” para nuestros datos, sin embargo la realidad es bastante diferente ya que en caso de que el Sistema se vuelva inaccesible por ejemplo por:

  • Borrado/Modificación de archivos de sistema.
  • Virus que afecte al arranque del equipo.

El acceso a nuestros datos no será tan sencillo y si decidimos reinstalar el Sistema Operativo (Con formateo incluido) se perderían los datos que tenemos almacenados en la unidad donde este Windows (Por regla general esta en la Unidad C), es por esto por lo que es aconsejable hacer al menos dos particiones a los discos duros actuales de gran tamaño (En esta entrada: ¿Por qué es bueno hacer particiones a los discos duros? hay más información sobre ellas):

  • Una para el Sistema Operativo y los programas/juegos del tamaño que creamos necesario (No existe un tamaño mínimo ni máximo, el tamaño de las particiones depende de las necesidades del usuario), generalmente denominada Unidad C.
  • Otra para almacenar los datos de usuario (Archivos, música, películas,…), generalmente denominada Unidad D (Aunque puede tener otras letras de unidad)

Además el uso de ciertas ubicaciones para almacenar datos como por ejemplo el Escritorio, puede ralentizar la carga del Sistema Operativo si almacenamos una gran cantidad de archivos.

Lógicamente para poder aprovechar la nueva unidad de almacenamiento debemos dirigir las operaciones de escritura de datos (El guardado de archivos y carpetas) a dicha unidad, es decir si seguimos usando “Mis Documentos” o el “Escritorio” como unidades de almacenamiento seguimos teniendo el mismo problema, para ello es necesario:

  • Redirigir el guardado de archivos en los programas que hagan uso de ello, por ejemplo los p2p (Ej: eMule, Bit Torrent,…), MSN,…
  • Crear las carpetas correspondientes en la nueva unidad (Ej: Unidad D) y en todo caso dejar Accesos Directos bien a la Unidad o a las carpetas que nos interese, ya que los accesos directos sólamente son “enlaces” a ficheros, carpetas o unidades y en caso de borrarlos no perdemos los archivos sino que perdemos el “link”.

Una alternativa a este problema es utilizar algún sistema de almacenamiento externo como puede ser por ejemplo un disco duro USB de gran capacidad.

Este problema por ejemplo no se da en Linux ya que el Sistema tiene varias particiones, entre ellas:

  • / (Root, Raiz): Donde se almacena el Sistema Operativo y los programas.
  • /Home: Donde se almacenan los ficheros del usuario.
  • /Swap: Donde se ejecuta el archivo de páginacion o memoria virtual.