UnQuantum: el proyecto en Rust que rescata los archivos .Q de MS-DOS sin depender de DOSBox

Durante años, los archivos con extensión .Q han sido una pequeña “cápsula del tiempo” atrapada en la era de MS-DOS. No porque su compresión fuese mala —al contrario—, sino porque abrirlos en un sistema moderno se convirtió en una tarea casi arqueológica. La escena era típica: colecciones antiguas de software, CDs históricos como los de Simtel, viejas BBS archivadas… y, de repente, un fichero .Q que nadie podía extraer sin montar un entorno DOS completo.

Esa barrera acaba de saltar con UnQuantum, una reimplementación moderna escrita en Rust que permite listar, comprobar y extraer archivos .Q de forma nativa en Linux, macOS y Windows, sin emuladores y sin extensores DPMI. El proyecto pone el foco en algo que suele olvidarse cuando se habla de “tecnología retro”: la preservación digital también necesita herramientas actuales, especialmente cuando el software original deja de ser práctico o incluso ejecutable.

Un formato avanzado que se quedó sin futuro

El formato Quantum nació entre 1993 y 1995, desarrollado por David Stafford en Cinematronics (Austin, Texas). En un panorama donde muchos compresores populares dependían de esquemas basados en Huffman (ZIP, ARJ, LHA), Quantum apostó por una combinación menos común en herramientas de consumo de la época: LZ77 junto con codificación aritmética. Esa elección le permitió ratios de compresión competitivos, hasta el punto de que Microsoft lo licenció e integró en Cabinet (.CAB), y otras compañías como Borland o Novell también lo adoptaron.

Sin embargo, la historia del formato .Q como archivo “standalone” terminó mal: la herramienta original para descomprimirlo, UNPAQ.EXE, era un ejecutable DOS de 32 bits que dependía de un extensor DPMI (Borland). En la práctica, eso hizo que el formato fuese quedando atrás con cada salto generacional de sistemas operativos. Cuando el soporte se “rompe” de esta manera, no importa lo bueno que fuera el algoritmo: el archivo se vuelve inaccesible.

La parte difícil no era el algoritmo… era el detalle oculto

La creación de UnQuantum no consistió únicamente en traducir una especificación. De hecho, el proyecto se apoyó en varias fuentes técnicas: documentación oficial del formato (QUANTUM.DOC), implementaciones existentes (como libmspack, centrada en la variante Quantum dentro de CAB) e investigación previa sobre el flujo de datos comprimidos.

El gran obstáculo apareció en un punto muy concreto: los archivos .Q con múltiples ficheros. Los casos de un solo fichero funcionaban; los multi-fichero empezaban a corromper datos a partir del segundo elemento. Ese tipo de error es el peor para un descompresor: el programa “parece” correcto, compila, produce salida… pero la salida es inválida.

La solución llegó a través de pruebas sistemáticas e ingeniería inversa: el formato .Q “standalone” inserta 16 bits de checksum entre ficheros directamente en el flujo de bits, sin pasar por el decodificador aritmético. Es un detalle que no aparece documentado en la especificación pública y no existe en la variante CAB. Pero sin consumir esos 16 bits, el flujo queda desalineado y el resto se rompe. El hallazgo es, en esencia, la pieza que faltaba para que un descompresor moderno fuese realmente fiable en el mundo real.

Qué aporta UnQuantum a usuarios y administradores de sistemas

Aunque el formato .Q pueda sonar a curiosidad histórica, la herramienta sí encaja en necesidades actuales:

  • Acceso directo a colecciones históricas: descomprimir archivos .Q sin depender de DOSBox ni máquinas virtuales.
  • Multiplataforma: un mismo proyecto y flujo de trabajo en Linux, macOS y Windows.
  • Herramienta de línea de comandos: pensada para automatizarse, integrarse en scripts o procesos de catalogación.
  • Funciones claras: listar contenido, extraer, validar integridad, mostrar información detallada y restaurar estructura de directorios cuando las rutas lo permiten.
UnQuantum: el proyecto en Rust que rescata los archivos .Q de MS-DOS sin depender de DOSBox | unquantum terminal
UnQuantum: el proyecto en Rust que rescata los archivos .Q de MS-DOS sin depender de DOSBox

En términos técnicos, UnQuantum documenta también elementos relevantes del formato: firma (“DS”), tamaños de ventana configurables (de 1 KB a 2 MB), modelos adaptativos, y el hecho de que el flujo de compresión se mantiene continuo entre ficheros, conservando estado y modelos, salvo por ese checksum intermedio que debe consumirse para no perder sincronización.

Un caso práctico de preservación con herramientas modernas

El valor de UnQuantum no está solo en “poder extraer un .Q”, sino en volver utilizable un legado de datos que, de otro modo, quedaría como material de museo. Para equipos técnicos, archivistas digitales o cualquier persona que mantenga repositorios antiguos, disponer de un binario actual significa poder integrar el formato en procesos de verificación, extracción masiva y clasificación.

Además, el proyecto se enmarca en una tendencia que cada vez pesa más en ingeniería: acelerar desarrollos de nicho con ayuda de Inteligencia Artificial en tareas como depuración, documentación y validación cruzada, sin que eso sustituya el trabajo clave de investigación cuando aparece un comportamiento no documentado. En este caso, el “detalle de los 16 bits” es precisamente el tipo de hallazgo que separa una implementación académica de una herramienta de producción.


Preguntas frecuentes

¿Qué es un archivo .Q y por qué muchos no se pueden abrir hoy en día?
Los .Q pertenecen al formato Quantum de MS-DOS. Durante años dependieron de herramientas DOS específicas (como UNPAQ.EXE) y de extensores DPMI, lo que dificulta su ejecución directa en sistemas modernos sin emulación.

¿En qué se diferencia Quantum de ZIP u otros compresores clásicos de los 90?
Quantum combinaba LZ77 con codificación aritmética y modelos adaptativos, en lugar de apoyarse principalmente en Huffman como muchas utilidades de la época, lo que podía mejorar la eficiencia de compresión en determinados escenarios.

¿UnQuantum sirve para archivos CAB de Windows o solo para .Q?
UnQuantum está planteado como descompresor moderno para el formato .Q standalone. La variante Quantum dentro de CAB tiene diferencias relevantes, y existen otras herramientas enfocadas específicamente en CAB.

¿Qué señales debería buscar para identificar un .Q auténtico antes de intentar extraerlo?
El formato incluye una firma característica al inicio del archivo (“DS”) y una estructura con tabla de ficheros seguida por un flujo comprimido continuo. Aun así, lo más práctico es usar la opción de listado o test de integridad para validar el archivo antes de extraer.

Disponible en GitHub

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio
×