MS-DOS en Raspberry Pi (FreeDOS)

Te sorprenderías de la cantidad de administraciones públicas, bancos y empresas que todavía utilizan MS-DOS como sistema operativo. Pero…

¿Qué es MS-DOS?

MS-DOS nació en 1981, el mismo año que yo 🙂

Era un encargo para Microsoft de producir un sistema operativo para la gama de computadores personales IBM PC de IBM. En este momento, Microsoft compró los derechos de QDOS, también conocido como 86-DOS,1​ de Seattle Computer Products que fue elaborado por Tim Paterson, y comenzó a trabajar en las modificaciones para poder cumplir con los requerimientos de IBM. La primera edición, MS-DOS 1.0, fue presentada en 1982.2​ La versión incluida en los PC’s de IBM fue conocida como PC DOS. Aunque MS-DOS y PC-DOS fueron desarrollados por Microsoft e IBM en paralelo, los dos productos se separaron con el tiempo.

Era lo que se usaba antes de Windows y hoy todavía existe integrado en las versiones de Windows actuales y se ha transformado en la consola de comandos. Podemos abrirlo pulsando la tecla de windows y escribiendo cmd. Algunas diferencias en la arquitectura de la CPU hacen que ejecutar MS DOS en la Raspberry PI requiera un poco de esfuerzo, pero tampoco es demasiado complicado conseguirlo 🙂

El proyecto FreeDOS Project es un sistema DOS gratuito y compatible en donde podemos ejecutar juegos clásicos de MS DOS, ejecutar software o desarrollar aplicaciones embebidas. En definitiva, cualquier cosa que podamos ejecutar en MSDOS podrá sere ejecutada en FreeDOS.

¿Cómo se instala FreeDOS en Raspberry Pi?

QUEMU (Quick EMUlator) es un software open source the maquina virtual en el que podemos ejecutar DOS bajo Linux.

Las distribuciones Linux más populares incluyen QEMU por defecto. QUEM  está disponible para Raspbian, la distribución Linux que utiliza Raspberry Pi. En QEMU, tenemos que hacer hacer una “build” de nuestra máquina virtual haciendo que  QEMU incluya cada componente de la misma. Comencemos definiendo una imagen de disco virtual para instalar y ejecutar DOS. El comando qemu-img permite crear imagenes de disco virtuales. Para FreeDOS, no vamos a necesitar reservar demasiado espacio, con un disco de 200 megabytes nos debería bastar:

qemu-img create freedom.img 200M

Al contrario de otros sistemas de emulación de máquinas virtuales como VMware o VirtualBox, como ya hemos dicho necesitamos hacer una “build” diciendole a QEMU que añada cada uno de los components de la máquina virtual. Aunque suena laborioso no es complicado. Bastaría con ejecutar los siguientes parámetros para hacer que QUEMU instale FreeDOS en nuestra Raspberry Pi:

 qemu-system-i386 -m 16 -k en-us -rtc base=localtime -soundhw sb16,adlib -device cirrus-vga -hda freedos.img -cdrom FD12CD.iso -boot order=d

En éste artículo se puede encontrar una descripción completa de esta línea de comandos. Pero en resumen, la linea de comandos anterior define una máquina virtual Intel i386 con 16 megabytes de meemorai, con un teclado US/English, y un reloj en tiempo real basado en la máquina local. También definimos una tarjeta de sonido Sound Blaster 16 Adlib y una tarjeta gráfica Cirrus Logic VGA. El archivo freedos.img está definido como el disco duro principal (C:) y la imagen de disco FD12CD.iso será la unidad de CD-ROM (D:). QEMU está configurado para arrancar desde esta unidad  de CD-ROM D:.

Para instalar FreeDOS 1.2 simplemente debemos seguir las siguientes capturas de pantalla:

Aunque podría tardar bastante en instalarse debido a un disco duro ocupado con operaciones I/O o porque la tarjeta microSD no sea especialmente rápida.

En nuestro caso hemos usado una tarjeta SanDisk Ultra 64GB microSDXC UHS-I U1A. La U1 está diseñado para grabar video de 1080p (luego se podría usar con una cámara GoPro) a una velocidad mínima de escritura de 10MB/s. En comparación, una V60 que se utiliza en cámaras que graban en 4K, tiene una velocidad secuencia mínima de 60MB/s. Si nuestra PI tiene al menos una V30 (30MB/s), veremos que el rendimiento del disco será mucho mayor que en la prueba que nosotros hemos realizado con la U1.

Ejecutando FreeDOS en Raspberry Pi

Tras instalar FreeDOS, podemos configurarlo para arrancar directamente desde la unidad C:. En la línea de comandos de QEMU ejecutamos un comando del tipo-boot order=c, como este:

qemu-system-i386 -m 16 -k en-us -rtc base=localtime -soundhw sb16,adlib -device cirrus-vga -hda freedos.img -cdrom FD12CD.iso -boot order=c​

Después de instalar FreeDOS en QEMU en la Raspberry Pi, no deberíamos notar ningún problema con el rendimiento. Por ejemplo, los juegos normalmente cargan mapas, sprites, sonidos y otros datos cada vez que arrancamos un nivel nuevo.

La distribución de FreeDOS 1.2 incluye algunos juegos y otras aplicaciones que podrían interesarnos. Para ello sólo tenemos que ejecutar el FDIMPLES que es un package manager que nos permitirá instalar paquetes extra.

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada.