C.2. NACHOS
INTRODUCCIÓN A NACHOS
Nachos es un sistema operativo pedagógico, que ejecuta como un proceso UNIX, para proporcionar a
los estudiantes un entorno de depuración reproducible, que simule un sistema operativo y su hardwa-
re subyacente [CHRI93]. El objetivo de Nachos es proporcionar un entorno de proyectos que sea lo
suficientemente realista para mostrar cómo funcionan los sistemas operativos reales, aunque suficien-
temente simple para que los estudiantes puedan comprenderlo y modificarlo de manera significativa.
En la Web está disponible un paquete de libre distribución que incluye:
• Un artículo de introducción.
• Un código inicial sencillo que corresponde con un sistema operativo en funcionamiento.
• Un simulador de un computador personal/estación de trabajo genérico.
• Propuestas de proyectos. Los proyectos enseñan y exploran todas las áreas de los sistemas
operativos modernos, incluyendo hilos y concurrencia, multiprogramación, llamadas al siste-
ma, memoria virtual, TLB gestionadas por software, sistemas de ficheros, protocolos de red,
llamadas a procedimientos remotos y sistemas distribuidos.
• Una introducción a C++ (Nachos está escrito en un subconjunto de C++ de fácil aprendizaje, y
esta introducción ayuda a enseñar este subconjunto a los programadores en C).
Nachos se utiliza en cientos de universidades a lo largo del mundo y se ha adaptado a numerosos
sistemas, incluyendo Linux, FreeBSD, NetBSD, DEC MIPS, DEC Alpha, Sun Solaris, SGI IRIS, HP-
UX, IBM AIX, MS-DOS y Apple Macintosh. Los planes futuros incluyen una adaptación al SimOS
de Stanford, una simulación completa de una estación de trabajo SGI.
Nachos está disponible de manera gratuita en su sitio Web (hay un enlace a su sitio web en Wi-
lliamStallings.com/OS/OS5e.html); está disponible un conjunto de soluciones para los profesores
mediante correo electrónico a
[email protected]. Además, hay una lista de correo para profe-
sores y un grupo de noticias (alt.os.nachos).
CÓMO ELEGIR ENTRE NACHOS, OSP Y BACI
Si el profesor está dispuesto a dedicar un cierto tiempo a adaptar uno de estos tres simuladores al en-
torno local disponible para los estudiantes, la elección entre los tres dependerá de los objetivos y la
opinión personal del profesor. Si el enfoque del proyecto es la concurrencia, BACI es la elección ade-
cuada. BACI proporciona un entorno excelente para el estudio de las complejidades y la sutilezas de
los semáforos, los monitores y la programación concurrente.
En cambio, si el profesor desea que los estudiantes exploren diversos mecanismos del S.O., in-
cluyendo programación concurrente, espacios de direcciones y planificación, memoria virtual, siste-
mas de ficheros, redes, etcétera, entonces se puede utilizar Nachos u OSP.
En este libro se ha incluido un apéndice sobre OSP debido a que es uno de los mejores vehículos
disponibles para dar soporte a proyectos de SS.OO. OSP se utiliza en más de 100 sitios y proporciona
una gran cantidad de apoyo y documentación. Un inconveniente potencial es que, aunque el sistema,
los proyectos propuestos y la lista de correo asociada son gratuitos, hay un pequeño manual de usua-
rio que los estudiantes deberían comprar. Sin embargo, esto se debe compensar con los puntos fuertes
Proyectos de programación y de sistemas operativos779
19-Apendice C 12/5/05 16:31 Página 779