Sistemas operativos modernos

hacerlo confiable y eficiente. Por ello, la administración de memoria y el sistema de archivos se manejan como procesos de usuario. El kemel se ocupa de la transferencia de mensajes en­ tre procesos y de casi nada más. El kemel abarcaba 1600 líneas en C y 800 líneas en ensambla­ dor Por motivos técnicos relacionados con la arquitectura 8088, los controladores de dispositivos de E/S (2900 líneas más en C) también estaban en el kemel. El sistema de archivos (5100 líneas en C) y el administrador de memoria (2200 líneas en C) se ejecutaban como procesos de usua­ rio separados. Los microkemels tienen la ventaja, respecto a los sistemas monolíticos, de que son fáciles de entender y mantener, gracias a su estructura altamente modular. Además, el traslado de có­ digo del kemel al modo de usuario los hace muy confiables, porque la caída de un proceso en modo de usuario causa menos perjuicios que la de un componente en modo de kemel. Su des­ ventaja principal es un desempeño un poco más lento debido a los cambios adicionales entre modo de usuario y modo de kemel. Sin embargo, el desempeño no lo es todo. Todos los siste­ mas LÍNIX modernos ejecutan X Windows en modo de usuario, y tan sólo aceptan la merma en el desempeño en aras de obtener mayor modularidad (en contraste con Windows, donde to­ da la GUI está en el kemel). Otros diseños de microkemel muy conocidos de esa época fueron Mach (Accetta et al., 1986) y Chorus (Rozier et al., 1988). Puede hallarse un tratamiento de los aspectos de desempeño de los microkemels en Bricker et al. (1991). Unos cuantos meses después de su aparición, MINIX se convirtió en una especie de objeto de culto, con su propio grupo de noticias, comp.os.minix y más de 40,000 usuarios. Muchos usuarios aportaron instrucciones y otros programas de usuario, con lo que MINIX se convirtió en una labor colectiva realizada por un gran número de usuarios vinculados por Internet. Fue el prototipo de otros esfuerzos de colaboración que aparecieron después. En 1997 salió a la luz la Versión 2.0 de MINIX y el sistema base, que ahora incluía conectividad de redes, había crecido a 62,200 líneas de código. Hay un libro acerca de los principios de sistemas operativos que se ilustra empleando el código fuente de MINIX, el cual se incluye en un apéndice de 500 páginas y en un CD-ROM adjunto (Tanenbaum y Woodhull, 1997). MINIX también puede obtenerse en forma gratuita en World Wide Web en la dirección URL www.cs.vu.nU-’ast/minix.html. 10.1.7 Linux Durante los primeros años del desarrollo y de la discusión por Internet de MINIX, muchas per­ sonas solicitaron (o, en muchos casos, exigieron) más y mejores funciones, a lo que el autor casi siempre decía “no” (a fin de que el sistema siguiera siendo lo bastante pequeño como pa­ ra que los estudiantes lo entendieran por completo en un curso universitario de un semestre). Esta negativa continua irritó a muchos usuarios. En esa época todavía no estaba disponible FreeBSD, así que no se tenía esa opción. Después de varios años de esto, un estudiante fmlan- dés, Linus Torvalds, decidió escribir otro clon de UNIX, llamado Linux, que sería un sistema de producción completo con muchas funciones de las que MINIX carecía (en forma deliberada). La primera versión de Linux, la 0.01, salió en 1991. Se desarrolló de forma cruzada en una má­ quina MINIX y tomó algunas ideas de MINIX, que van desde la estructura del árbol de origen hasta la organización del sistema de archivos. Sin embargo, era un diseño monolítico, no de

RkJQdWJsaXNoZXIy MjI4NDcx