El proyecto SO1 consiste en un pequeño sistema diseñado para la enseñanza de los conceptos y técnicas utilizados en el desarrollo de los sistemas operativos. Está dirigido a los estudiantes que, teniendo conocimientos de los sistemas operativos a nivel de usuario y de la programación de aplicaciones, desean comenzar a desarrollar un primer sistema operativo desde el principio. El sistema SO1 está escrito en el lenguaje de programación C, aunque utilizando los recursos de bajo nivel ya clásicos ofrecidos por el compilador Turbo C de Borland. El sistema está pensado para que funcione sobre una arquitectura 80x86, lo que significa que funciona de forma nativa sobre cualquier ordenador personal compatible con el IBM-PC, pero también para que funcione por encima de MSDOS o de la capa NTVDM de Windows 7/XP (32 bits). Esta característica lo hace ideal para la enseñanza de sistemas operativos, ya que tanto la compilación como la ejecución, y depuración del sistema puede llevarse a cabo sobre Windows 7/XP sin requerir reiniciar el ordenador o utilizar una máquina virtual. Con la llegada de Windows 7 de 64 bits y el abandono de la capa NTVDM por parte de Microsoft, en dichos sistemas no queda más remedio que utilizar máquinas virtuales tanto para el desarrollo como la ejecución del sistema SO1. Así SO1 funciona perfectamente en los emuladores qemu, boch y DOSBox tanto sobre Windows como Linux.
El sistema SO1 viene utilizándose ininterrumpidamente desde el año 2005 para impartir la docencia de prácticas de sistemas operativos en la Escuela Universitaria de Informatica de la Universidad Politecnica de Madrid, siendo el profesor Pedro Pablo López Rodríguez el creador del sistema, cuando en el año 2005 tuvo que impartir en solitario la enseñanza de la asignatura Sistemas Operativos I de Ingeniería Técnica en Informática de Gestión. En el año 2009 el sistema SO1 pasó a impartirse en las prácticas de Sistemas Operativos del Grado en Ingeniería del Software, con la incorporación al proyecto del profesor Aníbal Ramírez García, quien ha realizado múltiples aportaciones y está investigando nuevas posibilidades del sistema en lo que respecta al sistema de ficheros, y ha creado una nueva versión del sistema SO1 (denominada SO, a secas) especialmente adaptada para su desarrollo y ejecución sobre la máquina virtual DOSBox. La versión SO es una versión que resulta muy conveniente por los siguientes motivos: la comodidad que ofrece para el desarrollo y depuración, la extensa y detallada documentación de su código, y por poder utilizarse sin problemas, gracias a DOSBox, incluso sobre Windows 7/XP de 64 bits.
Se resalta que el sistema no pretende ser un sistema acabado, es decir que tenga implementadas todas las características exigibles a un sistema operativo de desarrollo. Por el contrario sólo pretende ser una base de software minímamente operativo que motive al alumno a la ampliación del sistema con nuevas características que deberán implementarse como prácticas o pequeños proyectos emprendidos por los estudiantes.
El sistema ofrece una base con las siguientes características:
De esta manera es posible explicar fácilmente a los alumnos todo lo que necesitan para afrontar la ampliación del sistema con proyectos de prácticas como los siguientes, que actualmente se llevan a cabo en el Grado de Ingeniería de Software:
Como parte del proyecto se aporta la especificación detallada de los anteriores proyectos didácticos en la forma de tutoriales, así como algunas herramientas de software desarrolladas para este proyecto por los profesores Aníbal Ramírez García y Pedro Pablo López Rodríguez.
Otras imágenes del proyecto SO1: