Descripción de la asignatura
Un sistema operativo es un programa que controla la ejecución de los programas de aplicación y que actúa como interfaz entre las aplicaciones del usuario y el hardware de una computadora. Es decir, el propósito principal de un sistema operativo es facilitar la utilización sencilla, eficiente, equitativa, ordenada y segura de los recursos hardware del sistema. Permite a los usuarios de la computadora emplear software de aplicación (hojas de cálculo, procesadores de textos, navegadores, software de correo electrónico, etc.). Los programadores emplean bibliotecas de lenguajes, llamadas al sistema y herramientas de generación de programas (editores, compiladores, intérpretes, etc.) para desarrollar software. Evidentemente, la equitatividad no es problema si sólo se permite que se utilice la computadora a un único usuario. Sin embargo, si se permite que múltiples usuarios utilicen la computadora, entonces las cuestiones de equitatividad y seguridad son dos de los problemas más importantes que deberán abordar los diseñadores de sistemas operativos.
La asignatura Diseño de Sistemas Operativos (DSO) actualmente se oferta como una asignatura de carácter optativo (bianual) en el primer curso (cuarto curso) y primer cuatrimestre de la Ingeniería en Informática de la Universidad de Almería (departamento de Lenguajes y Computación, área de Lenguajes y Sistemas Informáticos). La asignatura DSO tiene una carga docente de 6 créditos, repartidos en 3 créditos teóricos y 3 créditos prácticos.
La asignatura Diseño de Sistemas Operativos ofrece al alumno una visión detallada de los sistemas operativos desde una perspectiva de diseño e implementación. Se estudia en profundidad los aspectos más importantes (estructuras de datos y algoritmos) del kernel de Linux (versión 2.4) como son la gestión de procesos (mecanismos de sincronización y el scheduler), gestión de memoria (considerando como referencia a los procesadores de la arquitectura i386 y su direccionamiento), sistemas de archivos (sistemas de archivos virtual, con el objetivo de poder soportar múltiples sistemas de archivos), gestión de dispositivos de entrada/salida (diseño e implementación de drivers de dispositivos), comunicación entre procesos (a nivel local y en red), etc.
El programa de prácticas de la asignatura Diseño de Sistemas Operativos está estructurado en cuatro prácticas y está concebido de forma que los alumnos de Ingeniería en Informática puedan poner en práctica muchos de los conocimientos que se van introduciendo en el programa de teoría y conceptos nuevos que complementen su formación en dicha asignatura. Para ello, se va a utilizar un sistema operativo real, como es Linux (Red Hat Linux 9.0), aunque realmente el aspecto que se estudia en detalle es el kernel de dicho sistema operativo (Linux kernel 2.4.20). Las prácticas tratarán de estudiar aspectos arranque de Linux y compilación del kernel, analizar e implementar llamadas al sistema, introducir al alumno en el mundo de los módulos cargables del Kernel de Linux (Linux Loadable Kernel Linux, LKM), y por último añadir funcionalidades al kernel de Linux utilizando módulos cargables.