El sistema operativo FreeDOS
En la siguiente página trataremos el sistema operativo FreeDOS, sucesor espiritual de código abierto del MS-DOS de Microsoft. Pasaremos rápidamente por la historia desde su creación hasta su mantenimiento en la actualidad, realizaremos una comparativa entre ambos sistemas, y daremos un enfoque práctico con una guía de instalación de FreeDOS en una máquina virtual.
Contenido
Algo de historia
El proyecto FreeDOS empezó el 29 de junio de 1994 tras el anuncio de cese de soporte a MS-DOS por parte de Microsoft.
Jim Hall, quien por aquel entonces era estudiante de la Universidad de Wisconsin-River Falls, publicó un manifiesto (el cual puede ser leído aquí) proponiendo el desarrollo de una continuación de dominio público de dicho sistema operativo, la cual llamó inicialmente PD-DOS (Public Domain Disk Operative System). Poco después de dicho anuncio, diversos programadores como Pat Villani o Tim Norman se unieron al proyecto.
Ha habido varias distribuciones pre-lanzamiento a lo largo de los años, pero no fue hasta el 3 de septiembre de 2006 que finalizó el desarrollo de la versión 1.0.
En la actualidad, FreeDOS sigue activo, Jim Hall es el coordinador del proyecto, y la versión 1.2, finalizada el 25 de diciembre de 2016, es la última distribuida por el momento.
Especificaciones técnicas
Primeramente cabe recalcar, que estamos comparando un sistema descontinuado hace más de 20 años con uno que sigue recibiendo soporte a día de hoy, por lo que es inevitable que haya diferencias entre ambos que hagan a FreeDOS más actual que a MS-DOS.
Por supuesto, la más importante de todas estas diferencias está en el mismo nombre, es el hecho de que FreeDOS se trata de un sistema gratuito y de código abierto, mientras que MS-DOS no lo era en su momento.
Otra diferencia importante a mencionar sería el soporte para el sistema de archivos FAT32.
Además de estas y otras desigualdades (o mejor dicho, mejoras) más, como soporte para formatos de audio actuales, a la hora de la verdad son dos sistemas bastante similares. Esto se debe, recordemos, a que uno de los propósitos principales de este sistema es el hacer las veces de sucesor de MS-DOS con un soporte continuado, por lo que es seguro suponer que la compatibilidad con programas de su predecesor se ha buscado maximizar el máximo posible.
Como comentario final, añadiré que ambos sistemas poseen un diseño de núcleo monolítico.
Un enfoque más práctico
En los siguientes apartados trataremos la instalación de FreeDOS utilizando en la medida de lo posible la infraestructura vista en clase. En adición, veremos cómo obtener conexión a internet desde nuestra recién creada máquina, y por último, se proporcionará un “diccionario Bash → FreeCOM” en el que se traducirán al intérprete de FreeDOS las instrucciones más básicas de Bash que hemos aprendido en el boletín de laboratorio 1.
Instalación de FreeDOS en una máquina virtual
NOTA: Por razones que desconozco, es imposible realizar la instalación de FreeDOS desde virt-manager, dado que tras el primer reinicio necesario para esta, el disco virtual utilizado se corrompe y se vuelve inservible, impidiendo continuar. Sin embargo, he sido capaz de realizarla utilizando QEMU. Más adelante se explica cómo “rescatar” luego la máquina creada para su uso en virt-manager (dado que QEMU se me ha hecho significativamente menos eficiente en cuanto a velocidad de ejecución).
Este proceso se puede realizar tanto en local como en warcry o avantasia.
Lo primero que tendremos que hacer será descargar la iso a utilizar (puede tardar varios minutos):
wget http://www.freedos.org/download/download/FD12CD.iso
Acto seguido crearemos una imagen en la que instalar el sistema operativo:
qemu-img create -f raw freedos.qemu.img 200M
Podemos ampliar el tamaño de dicha imagen con el siguiente comando (aunque no es realmente necesario):
qemu-img resize -f raw freedos.qemu.img +400M
Una vez creada, arrancamos nuestra máquina virtual con QEMU introduciendo el siguiente comando en el terminal:
qemu-system-i386 -m 32M -drive file=freedos.qemu.img,media=disk,format=raw -drive file=FD12CD.iso,media=cdrom -boot order=d
A continuación tendrá lugar el proceso de instalación.
- Seleccionamos “Install to harddisk” y le damos a la tecla intro.
- Acto seguido nos preguntará por el idioma a instalar. Seleccionamos Español.
- Nos saltará una advertencia sobre los peligros de realizar la instalación en un disco no vacío. No aplica a nuestro caso, así que le damos a continuar.
- Nos preguntará si queremos particionar el disco, decimos que sí.
- A continuación, nos abrirá el programa de particionado FDISK. Confirmamos también que queremos usar el formato FAT32.
- En nuestro caso solo vamos a crear un disco, por lo que primero introducimos un 1 para crearlo, luego otro 1 para indicar que se tratará de una partición primaria, y por último confirmamos que queremos utilizar todo el espacio disponible en el disco.
- Finalmente, pulsamos escape 3 veces para salir de la herramienta FDISK. El asistente de instalación nos informará de que debemos reiniciar para que los cambios surtan efecto, por lo que reiniciamos la máquina.
- Con la máquina reiniciada, volvemos a comenzar el proceso de instalación como si fuera la primera vez: elegimos el idioma y confirmamos la advertencia, pero esta vez la siguiente pregunta será distinta. Ahora detecta que el disco está particionado y nos pregunta se queremos formatearlo. Le decimos que sí.
- Tras esto el asistente nos preguntará por el idioma de nuestro teclado. Elegimos español.
- Y por último, el tipo de instalación. A pesar de que vayamos a utilizar esta máquina para poco más que lo básico, elegimos la instalación completa (más adelante explicaremos por qué).
Tras varios minutos, el proceso de instalación habrá finalmente terminado. Y nos pedirá reiniciar. Le damos a sí, tras unos segundos elegimos la opción “Boot from system harddisk” y tendremos nuestra máquina FreeDOS lista para el servicio.
A partir de aquí ya tenemos el sistema operativo completamente instalado. A continuación veremos cómo poder obtener conexión a internet en nuestra MV.
Obtención de conexión a internet
En este apartado es donde entra en juego la instalación completa de antes. Un programa muy útil que no viene en la instalación base es fdimples, un asistente para agregar todos los paquetes adicionales que vienen en el disco de arranque.
Si no hemos cerrado la máquina virtual en el apartado anterior podemos ejecutar dicho programa directamente. En caso contrario, debemos volver a iniciarla (fijándonos en que el disco de arranque siga conectado, claro está, pues es de donde extraeremos los programas que necesitamos).
Podemos utilizar el siguiente comando para iniciar la MV:
qemu-system-i386 -drive file=freedos.qemu.img,media=disk,format=raw -drive file=FD12CD.iso,media=cdrom
- Una vez ejecutemos fdimples nos saldrá la ventana del instalador de paquetes. Hay mucha variedad de contenido y programas de código abierto, pero lo que nos interesa ahora mismo se encuentra en el apartado “Networking”. Bajamos hasta allí y nos desplazamos una vez hacia la derecha para entrar en el submenú correspondiente.
- Marcamos (con enter o con la barra espaciadora) los paquetes FDNET (soporte de conexión para máquinas virtuales) y PING. El paquete MTCP también es visto como fundamental en cuanto al uso de internet en FreeDOS, aunque realmente no lo vamos a acabar usando en una prueba de conexión tan sencilla. Marcar si se tiene intención de utilizar algún navegador (que también habría que instalar).
- Pulsamos tabulador dos veces y enter una para conformar la instalación de los paquetes, y esperamos a que esta termine.
- Para que los cambios surtan efecto habría que reiniciar la máquina, pero en lugar de eso vamos a apagarla completamente con shutdown, dado que tenemos que cambiar una cosa más.
- Una vez se nos haya cerrado la ventana de QEMU, volvemos a iniciar la MV, esta vez con este otro comando (nótese que ya se podría desacoplar el disco de arranque si no se desean instalar más programas de los que vengan ahí, pero se ha dejado por comodidad): En este comando, indicamos a la MV que emule un tipo de tarjeta de red concreto para evitar problemas de compatibilidad.
qemu-system-i386 -drive file=freedos.qemu.img,media=disk,format=raw -net nic,model=pcnet -net user -drive file=FD12CD.iso,media=cdrom
- Una vez inicia la máquina (y vemos como efectivamente detecta que estamos usando QEMU y nos proporciona una ip), podemos hacer ping a una dirección cualquiera para comprobar nuestra conexión.
Si en un futuro queremos volver a usar esta máquina virtual, basta con lanzarla usando el último comando mostrado (con o sin disco de arranque, a gusto del usuario).
Añadir la máquina ya creada a virt-manager
Si bien la ejecución en virt-manager se hace un tanto más liviana, también es cierto que aquí también he encontrado problemas de compatibilidad con la emulación de la tarjeta de red de los cuales no he sido capaz de encontrar solución, como sí ha resultado en el caso de QEMU.
Sin embargo, si no tenemos intención de obtener conectividad y solo nos vamos a centrar en comandos sencillos, podemos añadir la máquina a virt-manager para ejecutarla ahí siguiendo el siguiente proceso:
- Con virt-manager abierto, creamos una nueva MV.
- Elegimos la opción “importar imagen de disco existente”.
- Seleccionamos la imagen que creamos anteriormente y que ahora tiene FreeDOS instalado (freedos.qemu.img).
- Indicamos que el SO de la máquina es “FreeDOS 1.2 ”.
- Dejamos la memoria y la CPU por defecto.
- Ponemos el nombre que queramos a la máquina (en mi caso, “maresprod5-FreeDOS”).
- Le damos a finalizar.
Tras esto ya tendríamos nuestra máquina lista (y semifuncional) en virt-manager.
Pasaporte del usuario de Bash
A continuación se muestra una tabla a modo de “diccionario sencillo” con el que traducir rápidamente los comandos más comunes de Bash, el intérprete de comandos que hemos aprendido en clase, a FreeCOM, el intérprete de FreeDOS, clon de COMMAND.COM de MS-DOS.
Diccionario Bash → FreeCOM | |
---|---|
Comando Bash | Comando DOS |
pwd | cd chdir |
ls ls -l ls -la |
dir/b dir dir/a |
cd [destino] | cd [destino] chdir [destino] |
mkdir | mkdir md |
rm | del erase |
rm -r | deltree |
cp | copy |
cp -R | xcopy |
mv (para mover o renombrar) | move (para mover) rename (para renombrar) |
man [comando] | [comando] /? |
clear | cls |
cat | type |
echo [texto] | echo [texto] |
grep | find |
ls -l (para conocer permisos de archivos) | attrib (sin argumentos |
chmod | attrib [+r/-r](read only) [+a/-a](archivo) [+s/-s](sistema) [archivo] |
mv [archivo] [.archivo] (cambiar un archivo a oculto) | attrib +h [archivo] |
Para más información sobre los comandos de FreeCOM, visitar la siguiente página. |