DriveSpace (inicialmente conocido como DoubleSpace ) es una utilidad de compresión de disco suministrada con MS-DOS a partir de la versión 6.0 en 1993 y finalizando 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 comprimiendo y descomprimiendo datos de forma transparente sobre la marcha. Está pensado principalmente para su uso con discos duros , pero también se admite el uso con disquetes . Esta característica 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 normalmente.
La decisión de Microsoft de agregar compresión de disco a MS-DOS 6.0 estuvo influenciada por el hecho de que el DR DOS de la competencia 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 obtuvo la licencia de la tecnología para el 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 originalmente obtener la licencia de la tecnología de Stac Electronics , que tenía un producto similar llamado Stacker, pero estas negociaciones fracasaron. Posteriormente, Stac Electronics demandó con éxito a Microsoft por infracción de patente 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 cuando intentó obtener la licencia de Stacker, ofreciendo únicamente a Stac Electronics la posibilidad de desarrollar productos mejorados. [ cita necesaria ]
Algunos programas informáticos, en particular juegos, eran incompatibles con DoubleSpace porque omitían efectivamente el controlador de DoubleSpace. DoubleSpace también consumía una cantidad significativa de memoria convencional , lo que dificultaba la ejecución de programas que consumían mucha 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 corrupción de datos. El error se produjo al escribir archivos en discos muy fragmentados y fue demostrado por un programa llamado BUST.EXE. La empresa vendió un programa llamado DoubleCheck que podría usarse para verificar la condición de fragmentación que podría provocar el error. La posición de Microsoft fue que el error sólo ocurrí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 grupos individuales (de tamaño, digamos, 8 K) y los ajusta 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 una especie de problema de fragmentación interna, donde DoubleSpace no podría encontrar suficientes sectores consecutivos para almacenar un clúster comprimido incluso si hubiera suficiente espacio disponible.
Otras causas potenciales de pérdida de datos incluyeron 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 (mediante una característica llamada DoubleGuard que verificaría dicha corrupción).
El hecho de que el contenido comprimido de una unidad comprimida se almacenara en un solo archivo implicaba la posibilidad de que un usuario borrara accidentalmente todos sus datos eliminando solo ese archivo. Esto podría suceder si el usuario sin darse cuenta obtuvo acceso a la unidad host que contiene este archivo. La unidad host generalmente estaba asignada a la letra H: por el controlador de compresión. Sin embargo, si el controlador de compresión no se pudo cargar, el usuario podría verlo como la unidad C:.
Apagar la computadora antes de que DoubleSpace pueda terminar de actualizar sus estructuras de datos también podría provocar la pérdida de datos. Este problema se vio agravado por el hecho de que Microsoft habilitó el almacenamiento en caché de escritura 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, es posible que aparezca el mensaje de MS-DOS antes de que se hayan 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 vieron la aparición del mensaje de MS-DOS como una indicación de que era seguro apagar la computadora, lo que solía ser el caso antes. a MS-DOS 6.0. Microsoft solucionó este problema en MS-DOS 6.2, donde el almacenamiento en caché de escritura todavía estaba habilitado de forma predeterminada, pero el caché se vaciaba antes de permitir que reapareciera el símbolo del sistema.
AddStor, Inc. ofreció 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 montar automáticamente medios extraíbles comprimidos a medida que se usaban, así como soporte para la desfragmentación en segundo plano de unidades comprimidas DoubleSpace. [3] Para desfragmentar archivos en segundo plano, era posible permitir que DoubleTools reemplazara el controlador DoubleSpace de bajo nivel (DBLSPACE.BIN) por uno proporcionado por DoubleTools. Reemplazar el controlador también permitió otras funciones mejoradas del producto, como el uso de rutas de código de 32 bits cuando detecta 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 permitió el uso de memoria extendida para algunos de sus buffers (reduciendo la huella total del conductor 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 solicitando cambiar los discos según sea necesario). También era posible compartir un volumen comprimido con una computadora remota. Double Tools también tenía la capacidad de colocar una utilidad especial en disquetes comprimidos que hacía posible acceder a los datos comprimidos incluso en computadoras que no tenían DoubleSpace (o Double Tools).
Vertisoft, la compañía que desarrolló el programa DoubleDisk que Microsoft posteriormente licenció y convirtió en DoubleSpace, desarrolló y vendió un programa complementario de DoubleSpace llamado SpaceManager, que contenía una serie de mejoras de usabilidad. También ofrecía relaciones de compresión mejoradas.
Otros productos, como versiones posteriores de Stacker de Stac Electronics, eran capaces de convertir 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 pudo 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 uso de memoria del controlador DoubleSpace se redujo en comparación con la versión enviada en MS-DOS 6.0. Se solucionó el problema de fragmentación discutido anteriormente.
Tras una demanda exitosa de Stac Electronics con respecto a una infracción de patente 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 disco, pero esta vez lanzada con 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 total 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 MS-DOS DriveSpace podrían actualizar a Windows 95 sin ningún problema. Además, Microsoft Plus! para Windows 95 el paquete 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 proporciones de compresión aún mayores junto con una herramienta que podía recomprimir los archivos en el disco usando los diferentes formatos, dependiendo de la frecuencia con la que se usaban los archivos. Se podía actualizar de DriveSpace 2 a DriveSpace 3, pero no había una ruta para volver a DriveSpace 2. Sin embargo, se podía descomprimir una unidad DriveSpace 3. El controlador de dispositivo DOS de DriveSpace 3 ocupaba una memoria de alrededor de 150 KB debido a todas estas nuevas características. Esto causó dificultades a los usuarios al reiniciar 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 envió con Windows 95 OSR2, pero muchas funciones estaban deshabilitadas a menos que Plus! También fue instalado. DriveSpace tampoco se podía utilizar con FAT32, lo que lo hacía de poca utilidad en PC con discos duros grandes.
Windows 98 se envió con DriveSpace 3 como parte del sistema operativo. La funcionalidad era la misma que en Windows 95 con Plus!.
Debido a la eliminación del soporte del modo real , la generalización de FAT32 y la popularidad cada vez menor de DriveSpace, DriveSpace en Windows ME solo tenía soporte limitado. DriveSpace ya no admitía la compresión del disco duro, pero aún admitía la lectura y escritura de medios extraíbles comprimidos, aunque la única operación de DriveSpace admitida además era la eliminación y reasignación de unidades comprimidas.
Es posible restaurar la función completa de DriveSpace 3 (extraoficialmente) en Windows ME, copiando el archivo ejecutable de una instalación de Windows 98 y usándolo para reemplazar el ejecutable incluido con Windows ME. Después de eso, se podrían comprimir unidades nuevas como se podía hacer en Windows 98.
DMSDOS , un controlador del kernel de Linux, [5] [6] fue desarrollado a finales de la década de 1990 para soportar tanto la lectura como la escritura de discos DoubleSpace/DriveSpace. Sin embargo, leer y especialmente escribir en sistemas de archivos comprimidos es confiable sólo en versiones específicas de las versiones 2.0, 2.1 o 2.2 del kernel.
Si bien DR-DOS admitía su propia tecnología de compresión de disco (originalmente basada 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 soporte perfecto para DoubleSpace. [1] Dado que los controladores DR-DOS estaban habilitados para DPMS mientras que los de MS-DOS no, esto no ofreció ninguna ventaja para los usuarios de DR-DOS, pero permitió una coexistencia o migración más fácil debido a la posibilidad de uso compartido de controladores ya existentes. volúmenes comprimidos en escenarios de arranque múltiple. DR-DOS 7.02 y superiores también agregaron soporte para DriveSpace en 1998. [7]