Este subsistema de MS-DOS permite ejecutar Linux como hace Windows 10

Este subsistema de MS-DOS permite ejecutar Linux como hace Windows 10

Rubén Velasco

El Subsistema de Windows para Linux, WSL, es una de las características más interesantes que llegaron al sistema operativo. Gracias a ella, los usuarios pueden ejecutar un Linux completo encima de Windows 10 sin necesidad de virtualizar y sin que nada de lo que hagamos en ella ponga en peligro nuestro PC y sin usar máquinas virtuales. Sin duda, el subsistema de Microsoft es algo novedoso y revolucionario para Windows 10. Sin embargo, un desarrollador ha sido capaz de ir un paso más allá, porque ¿quién no quiere poder ejecutar Linux desde un subsistema de DOS?

Llamado DSL, un desarrollador ha conseguido desarrollar un programa que nos va a permitir ejecutar una instancia del Kernel Linux directamente desde un MS-DOS. Simplemente porque sí, por demostrar que es posible. Este desarrollador se inspiró en WSL, el Subsistema de Windows para Linux, a la hora de desarrollar este experimento. Un experimento que, la verdad, es que no es algo que vayamos a usar todos los días, y que su utilidad va poco más allá de la propia curiosidad, pero que funciona. Y, además, lo hace muy bien.

Cómo funciona DSL

A grandes rasgos, el funcionamiento de este subsistema es igual que el de WSL, es decir, nos permite cargar el Kernel Linux directamente desde MS-DOS 6.22 (y también funciona en FreeDOS), y usar las herramientas de este sistema operativo libre, sin salir en ningún momento del sistema operativo de terminal de Microsoft.

Cuando un usuario ejecuta DSL, el Kernel Linux toma el control del PC, y podemos empezar a utilizarlo. MS-DOS seguirá cargado en la memoria a la espera de una llamada de cierre para DSL y volver a funcionar él en primer plano.

Para ello, el desarrollador se ha aprovechado de una característica presente en los procesadores modernos, VM8086, que básicamente permite que se ejecuten programas de 16 bits directamente sobre una arquitectura de 32 bits de forma nativa. Así es, por ejemplo, como funcionaban las primeras versiones de Windows, cuando eran meros «programas» para DOS.

Cuando finalizan las instrucciones de Linux, se cierra el subsistema (aunque queda a la espera de cualquier otra llamada) y volvemos a tener el control sobre DOS.

Toda la información, documentación y el código fuente de este experimento podemos encontrarlo aquí.

Cómo probar el subsistema de Linux para DOS

Si te llama la atención este experimento, puedes probarlo tu mismo y ver hasta dónde puede llegar. Eso sí, el desarrollador no ha ofrecido ningún binario listo para ejecutar, sino que tendremos que compilarlo y prepararlos manualmente nosotros mismos.

Para ello, lo primero que necesitamos es tener el conjunto de herramientas «i386-linux-musl» en el PATH. También necesitaremos tener Linux y Busybox preparados, y una imagen de un disco duro, hdd.base.img, que tenga MS-DOS o FreeDOS en su partición primaria.

Tras ejecutar «make», el programa generará una nueva imagen del disco duro ya preparada con todo lo necesario para ejecutar DSL. Una vez tengamos el nuevo disco, lo montamos en la unidad que queramos (e incluso en un PC físico) y ejecutamos el comando «C:/doslinux/dsl» para empezar a usar este subsistema.