Home

Pablo (PP) Anibal Ramirez Garcia
Project Admins:

English translation

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.

Screenshot thumbnail
Screenshot thumbnail
Screenshot thumbnail
Screenshot thumbnail
Screenshot thumbnail
SO1 con 4 sh
Screenshot thumbnail
SO1 sobre bochs

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:

  • procesos con planificación Round-Robin.
  • gestión de memoria con particiones variables (lista de bloques libres).
  • intérprete de comandos ampliable con comandos externos.
  • sistema de ventanas de texto con uso de raton.
  • manejo de dispositivos de caracteres (teclado, ventana, terminal, impresora)
  • acceso al disquete en modo nativo
  • acceso al sistema de ficheros MSDOS o Windows 7/XP
  • funciones internas del sistema operativo perfectamente identificadas:
    (planificador, dispatcher, gestión de memoria, cargador, ...)
  • repertorio de llamadas al sistema ortogonal facilmente ampliable

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:

  • puesta a punto del sistema, cambio de rodaja de CPU, y
    monitorización gráfica con datos temporales numéricos del sistema
    en cuanto a las interrupciones y llamadas al sistema realizadas
    por los programas de usuario.
  • implementación de interrupciones y excepciones (Ctrl-Break, Div 0, overflow)
  • implementación de la llamada al sistema sleep
  • implementación de semáforos
  • implementación de paso de mensajes mediante buzones
  • implementación del arranque del sistema (sector de arranque)
  • implementación de un demonio de impresión
  • implementación de la compactación de la memoria
  • implementación del comando fsck

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:

SO1 mx CPU
SO1 ps y mem


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.