Hace mucho tiempo, cuando todavía era estudiante de licenciatura, compré el libro Sistemas operativos Diseño e Implementación. Esta obra contiene el código fuente de Minix, un sistema operativo académico. Quería poseer la habilidad de programar mi propio sistema desde cero y no tener que pagar costosas licencias de software. Creo que todo el mundo soñaba con eso en aquellos días como se puede constatar en el siguiente video sobre la historia de Linux. Este es un video ya muy viejo pero muy recomendable.
Desafortunadamente, mis limitadas posibilidades materiales y el hecho de vivir en una “economía emergente” ponían en serios aprietos cualquier posibilidad de éxito. En ese tiempo no tenía acceso al juego de discos para arrancar sistema operativo y tampoco el dinero pues había la posibilidad de pedirlos por correo. Internet estaba en su infancia y no se encontraba la información con la facilidad con la que hoy en día se hace. Desde entonces he venido trabajando con Minix, siempre entrando y saliendo.
Cuando este sistema operativo se desarrolló allá por el año de 1987 por el Profesor Andrew S. Tanenbaum para enseñar sistemas operativos, la implementación inicial, versión 1.0, se hizo en la IBM PC. Minix se pensó para correr en las PCs de más bajo costo. Las máquinas que un estudiante de primer mundo y de clase media podía permitirse. El sistema operativo se cargaba por medio de floppies con una capacidad de 360K de almacenamiento. Si se poseía una segunda unidad de disco era un poco más fácil trabajar con Minix. Tener un disco duro en aquellos días era todo un lujo. Debido a esto, es bastante complicado hacer correr Minix 1.1 en equipos más modernos. La solución para zanjar esta dificultad son las máquinas virtuales, aunque no todas. Por ejemplo, VirtualBox no soporta la imágenes de disco floppy de 360K.
Para ejecutar Minix y tener una probadita de como se programaba un sistema operativo hace 33 años, se empleó Bochs, un emulador para la plataforma x86. Se puede descargar el programa desde este enlace. La versión que descargué en días pasados fue la 2.7 para Windows que es la más reciente. Sin embargo, en años pasados trabajé con una versión más antigua para Linux.
Una vez descargado e instalado, se requiere configurar el emulador para que la imagen de Minix arranque desde el disco flexible. Las unidades de disco floppy virtuales deben ser configuradas para soportar discos de 360K.
Las imagenes del sistema operativo Minix 1.1 se pueden descargar del siguiente repositorio de GitHub. Este repositorio incluye un archivo de configuración para la versión 2.7 de Bochs y una copia en pdf de la segunda edición del libro “Sistemas Operativos, Diseño e Implementación”.
Cuando se oprime es botón Start en la ventana de inicio del emulador, comienza la ejecución de Minix 1.1. Una vez que Minix arranca, se despliegan algunas opciones. Introduciendo la tecla =, igual, se inicia el arranque del sistema operativo. Antes de oprimir = hay que cambiar de imagen de diskette de floppy_disk1 a floppy_disk2. Una cosa a tener en cuenta es que la configuración del teclado en Minix es en inglés de Estados Unidos con 92 teclas. No hay otra configuración disponible.
Una vez que Minix arranca, hace un conteo de memoria y pide que se cambien los discos conforme la carga progresa.
Una vez que Minix termino de cargarse, pide la fecha y la hora para después proceder a la introducción de las credenciales. El usuario es “ast”, sin las comillas y la contraseña es “Wachtwoord”.
El sistema operativo a duras penas se puede usar. Contiene un muy limitado conjunto de comandos Unix y un minúsculo compilador de C. Recordemos que se trata de un programa empleado para enseñar conceptos de sistemas operativos en las universidades. Sin embargo, el sistema ya comenzaba a poner a prueba las capacidades limitadas de las PCs de aquellos días.
Ex-Ingeniero Mecánico, Ex-Investigador, mi verdadera pasión es el Desarrollo de Software. Me he acomodado bastante bien en el mundo corporativo aunque espero poder independizarme en algunos años y eso solo para saber que se siente ser dueño de una empresa.