DriveSpace (inicialmente conocido como DoubleSpace ) es una utilidad de compresión de discos que se incluye con MS-DOS a partir de la versión 6.0 en 1993 y finaliza en 2000 con el lanzamiento de Windows Me . El propósito de DriveSpace es aumentar la cantidad de datos que el usuario puede almacenar en discos mediante la compresión y descompresión transparente de datos sobre la marcha. Está destinado principalmente para su uso con discos duros , pero también se admite su uso con disquetes . Esta función se eliminó en Windows XP y versiones posteriores.
En el escenario de uso más común, el usuario tendría un disco duro en la computadora, con todo el espacio asignado a una partición (generalmente como unidad C:). El software comprimiría todo el contenido de la partición en un archivo grande en el directorio raíz . Al iniciar el sistema, el controlador asignaría este archivo grande como unidad C:, lo que permitiría acceder a los archivos de manera normal.
La decisión de Microsoft de agregar compresión de disco a MS-DOS 6.0 estuvo influenciada por el hecho de que el sistema competidor DR DOS había comenzado a incluir software de compresión de disco desde la versión 6.0 en 1991.
En lugar de desarrollar su propio producto desde cero, Microsoft licenció la tecnología del producto DoubleDisk desarrollado por Vertisoft y lo adaptó para convertirse en DoubleSpace. Por ejemplo, la carga del controlador que controla la compresión/descompresión ( DBLSPACE.BIN ) se integró más profundamente en el sistema operativo (se cargó a través de la API de precarga no documentada [1] incluso antes del archivo CONFIG.SYS ).
Microsoft había intentado en un principio obtener la licencia de la tecnología de Stac Electronics , que tenía un producto similar llamado Stacker, pero estas negociaciones habían fracasado. Posteriormente, Stac Electronics demandó a Microsoft con éxito por infracción de patentes por violar algunas de sus patentes de compresión. Durante el proceso judicial, Stac Electronics afirmó que Microsoft se había negado a pagar dinero alguno cuando intentó obtener la licencia de Stacker, ofreciendo únicamente la posibilidad de que Stac Electronics desarrollara productos de mejora. [ cita requerida ]
Algunos programas informáticos, en particular juegos, eran incompatibles con DoubleSpace porque eludían el controlador de DoubleSpace. DoubleSpace también consumía una cantidad significativa de memoria convencional , lo que dificultaba la ejecución de programas que hacían un uso intensivo de la memoria.
Poco después de su lanzamiento, surgieron informes de pérdida de datos. Una empresa llamada Blossom Software afirmó haber encontrado un error que podría provocar la corrupción de datos . El error se producía al escribir archivos en discos muy fragmentados y se demostraba mediante un programa llamado BUST.EXE . La empresa vendió un programa llamado DoubleCheck que podía utilizarse para comprobar la condición de fragmentación que podía provocar el error. La postura de Microsoft era que el error solo se producía en condiciones poco probables, pero solucionó el problema en MS-DOS 6.2 . [2]
La condición de fragmentación estaba relacionada con la forma en que DoubleSpace comprime los clústeres individuales (de un tamaño de, digamos, 8 K) y los acomoda en el disco, ocupando menos sectores (tamaño 512 bytes) que el número fijo requerido sin DoubleSpace (16 sectores en este ejemplo). Esto creó la posibilidad de un tipo de problema de fragmentación interna, donde DoubleSpace no podría encontrar suficientes sectores consecutivos para almacenar un clúster comprimido incluso si hubiera mucho espacio disponible.
Otras posibles causas de pérdida de datos incluían la corrupción de las áreas de memoria de DoubleSpace por parte de otros programas. Las áreas de memoria de DoubleSpace no estaban protegidas porque MS-DOS se ejecutaba en modo real . Microsoft intentó remediar esto en la versión MS-DOS 6.2 de DoubleSpace (a través de una función llamada DoubleGuard que verificaría dicha corrupción).
El hecho de que el contenido comprimido de una unidad comprimida se almacenara en un único archivo implicaba la posibilidad de que un usuario eliminara accidentalmente todos sus datos al eliminar únicamente ese archivo. Esto podía ocurrir si el usuario accedía sin darse cuenta a la unidad host que contenía ese archivo. La unidad host normalmente estaba asignada a la letra H: por el controlador de compresión. Sin embargo, si el controlador de compresión no se había cargado, el usuario podía verla como la unidad C:.
Apagar el equipo antes de que DoubleSpace pudiera terminar de actualizar sus estructuras de datos también podía provocar la pérdida de datos. Este problema se agravó cuando Microsoft hizo que el almacenamiento en caché de escritura estuviera habilitado de forma predeterminada en el software de caché de disco SMARTDRV que venía con MS-DOS 6.0. Debido a este cambio, después de salir de una aplicación, el mensaje de MS-DOS podía aparecer antes de que se hubieran escrito todos los datos en el disco. Sin embargo, debido a la falta de un procedimiento de apagado controlado (como el que se encuentra en los sistemas operativos modernos), muchos usuarios veían la aparición del mensaje de MS-DOS como una indicación de que era seguro apagar el equipo, lo que era típicamente el caso antes de MS-DOS 6.0. Microsoft abordó este problema en MS-DOS 6.2, donde el almacenamiento en caché de escritura todavía estaba habilitado de forma predeterminada, pero donde la caché se vaciaba antes de permitir que reapareciera el mensaje de comando.
AddStor, Inc. ofrecía un producto complementario llamado Double Tools para DoubleSpace . Contenía una serie de herramientas para mejorar las funciones de la versión de DoubleSpace que venía con MS-DOS 6.0. Esto incluía varias funciones de diagnóstico, la capacidad de tener medios extraíbles comprimidos montados automáticamente a medida que se usaban, así como soporte para la desfragmentación en segundo plano de unidades comprimidas de DoubleSpace. [3] Para desfragmentar archivos en segundo plano, era posible dejar que DoubleTools reemplazara el controlador DoubleSpace de bajo nivel (DBLSPACE.BIN) con uno proporcionado por DoubleTools. Reemplazar el controlador también habilitaba otras funciones mejoradas del producto, como el uso de rutas de código de 32 bits cuando detectaba una CPU Intel 80386 o superior , capacidades de almacenamiento en caché y, además de admitir el uso del Área de memoria superior , también permitía el uso de Memoria extendida para algunos de sus búferes (reduciendo la huella total del controlador en la memoria convencional y superior , aunque a costa de una velocidad algo reducida). [4] Otra función era la capacidad de dividir un volumen comprimido en varios disquetes, pudiendo ver el volumen completo con solo el primer disco insertado (y recibiendo avisos para cambiar de disco según fuera necesario). También era posible compartir un volumen comprimido con un ordenador remoto. Double Tools también tenía la capacidad de poner una utilidad especial en los disquetes comprimidos que hacía posible acceder a los datos comprimidos incluso en ordenadores que no tenían DoubleSpace (o Double Tools).
Vertisoft, la empresa que desarrolló el programa DoubleDisk que posteriormente Microsoft licenció y convirtió en DoubleSpace, desarrolló y vendió un programa complementario para DoubleSpace llamado SpaceManager, que contenía una serie de mejoras de usabilidad y también ofrecía mejores índices de compresión.
Otros productos, como las versiones posteriores de Stacker de Stac Electronics, fueron capaces de convertir las unidades comprimidas DoubleSpace existentes a su propio formato.
MS-DOS 6.2 presentó una versión nueva y mejorada de DoubleSpace. Se agregó la capacidad de eliminar DoubleSpace. El programa SCANDISK introducido en esta versión podía escanear las unidades comprimidas y no comprimidas, incluidas las comprobaciones de las estructuras internas de DoubleSpace. Se agregaron funciones de seguridad (conocidas como DoubleGuard) para evitar que la corrupción de la memoria provoque la pérdida de datos. El consumo de memoria del controlador DoubleSpace se redujo en comparación con la versión incluida en MS-DOS 6.0. Se realizó una corrección al problema de fragmentación mencionado anteriormente.
Tras una demanda exitosa interpuesta por Stac Electronics por infracción de patentes demostrada , Microsoft lanzó MS-DOS 6.21 sin DoubleSpace. Una orden judicial también impidió cualquier distribución posterior de las versiones anteriores de MS-DOS que incluían DoubleSpace.
MS-DOS 6.22 contenía una versión reimplementada del software de compresión de discos, pero esta vez publicada bajo el nombre DriveSpace . El software era esencialmente idéntico a la versión MS-DOS 6.2 de DoubleSpace desde el punto de vista del usuario y era compatible con versiones anteriores.
Windows 95 tenía soporte completo para DoubleSpace/DriveSpace a través de un controlador nativo de 32 bits para acceder a las unidades comprimidas, junto con una versión gráfica de las herramientas de software. Los usuarios de DriveSpace MS-DOS podían actualizar a Windows 95 sin ningún problema. Además, el paquete Microsoft Plus! para Windows 95 contenía la versión 3 de DriveSpace. Esta versión introdujo nuevos formatos de compresión (HiPack y UltraPack) con diferentes características de rendimiento para índices de compresión aún mayores junto con una herramienta que podía recomprimir los archivos en el disco utilizando los diferentes formatos, dependiendo de la frecuencia con la que se usaran los archivos. Se podía actualizar de DriveSpace 2 a DriveSpace 3, pero no había una ruta de regreso a DriveSpace 2. Sin embargo, se podía descomprimir una unidad DriveSpace 3. El controlador de dispositivo DOS de DriveSpace 3 tenía una huella de memoria de alrededor de 150 KB debido a todas estas nuevas características. Esto provocó dificultades para los usuarios que reiniciaban en el modo MS-DOS de Windows 95 para ejecutar juegos, debido a la cantidad reducida de memoria convencional que estaba disponible.
DriveSpace 3 también se incluía con Windows 95 OSR2 , pero muchas funciones estaban deshabilitadas a menos que se instalara también Plus!. DriveSpace tampoco se podía utilizar con FAT32 , lo que lo hacía de poca utilidad en PC con discos duros de gran tamaño. [5]
Windows 98 se entregó con DriveSpace 3 como parte del sistema operativo. La funcionalidad era la misma que en Windows 95 con Plus!.
Debido a la eliminación de la compatibilidad con el modo real , la generalización de FAT32 y la disminución de la popularidad de DriveSpace, DriveSpace en Windows Me solo tenía una compatibilidad limitada. DriveSpace ya no admitía la compresión de discos duros, pero aún admitía la lectura y escritura de medios extraíbles comprimidos, aunque la única operación de DriveSpace admitida además de eso era la eliminación y reasignación de unidades comprimidas.
Es posible restaurar la función completa de DriveSpace 3 (de manera no oficial) en Windows Me, copiando el archivo ejecutable de una instalación de Windows 98 y utilizándolo para reemplazar el ejecutable incluido en Windows Me. Después de eso, se podrían comprimir unidades nuevas como se hacía en Windows 98.
DMSDOS , un controlador del núcleo Linux , [6] [7] se desarrolló a fines de los años 90 para admitir tanto la lectura como la escritura de discos DoubleSpace/DriveSpace. Sin embargo, la lectura y, especialmente, la escritura en sistemas de archivos comprimidos solo es confiable en versiones específicas de las versiones 2.0, 2.1 o 2.2 del núcleo.
Aunque DR-DOS admitía su propia tecnología de compresión de discos (basada originalmente en SuperStor , más tarde en Stacker ), Novell DOS 7 en 1993 y posteriores introdujo una emulación de la API de precarga no documentada para proporcionar también un soporte sin fisuras para DoubleSpace. [1] Dado que los controladores DR-DOS estaban habilitados para DPMS mientras que los de MS-DOS no, esto no ofrecía ninguna ventaja para los usuarios de DR-DOS, pero permitía una coexistencia o migración más sencilla debido a la posibilidad de uso compartido de volúmenes comprimidos ya existentes en escenarios de arranque múltiple. DR-DOS 7.02 y posteriores también añadieron soporte para DriveSpace en 1998. [8]