Existen varios textos más o menos fundamentales que cualquier persona interesada por el Hurd querrá leer. También hay alguna que otra página importante relacionada con el Hurd, a la que podemos echarle un vistazo de vez en cuando, y algún que otro ftp. Aquí tenéis una lista :
La página oficial de el Hurd, en donde se ponen los anuncios oficiales, y que contiene parte de la documentación que deberíamos leer para introducirnos en el interesante mundo de el Hurd.
"Towards a New Strategy of OS Design", artículo en el que Thomas Bushnell, principal arquitécto de el Hurd, expone los principales conceptos que hay detras de el Hurd.
Una charla de Marcus Brinkmann, en donde se presenta una simpática y concisa introducción a el Hurd. Útil para aclarar conceptos.
Otra charla introductoria de Marcus Brinkmann.
Introducción al servidor de Autentificación escrita por Wolfgang Jährling.
El FAQ de el Hurd, que por cierto tiene traducción al español.
"The GNU Hurd User's Guide", una introducción al Hurd pensada para los usuarios.
Puede ser útil tener un Hurd instalado en nuestra máquina, sobre todo si queremos aprender en serio como es el sistema. Para tal fin tenemos la guía de instalación del hurd ( la traducción española, hecha por Vicente Hernando Ara, está aquí ), de Neal Walfield. Otra guía de instalación, ya algo anticuada pero todavía útil, es la de Matthew Vernon.
El Twiki de el Hurd, inagotable fuente de información actualizada sobre el sistema GNU.
Otra maravillosa fuente de información sobre el Hurd son sus listas de correo ( en este enlace podéis encontrar más enlaces a varias discusiones que han tenido lugar en estas listas ). Existe además un útil resumen de lo hablado en la lista de Debian GNU/Hurd , conocido como "Kernel Cousin Debian Hurd". Los archivos de KC Debian Hurd los podéis encontrar aquí.
En principio el Hurd se supone que algún día será independiente de micronúcleo en cierto grado, y que por lo tanto pues puede que sea posible estudiar el Hurd sin tener que entrar en los detalles de bajo nivel sobre el micronúcleo en el que se ejecuta ( de la misma manera en que uno puede estudiar como es Unix de manera independiente al estudio de la máquina donde se ejecuta ). Pero ese momento aun no ha llegado, y mientras esperamos a que llegue para obtener un conocimiento aunque sea moderado de el Hurd tenemos que juguetear con el micronúcleo que hay debajo. Así que recomiendo de manera muy encarecida visitar los enlaces correspondiente a la sección sobre Mach, L4 y otros Micronúcleos como complemento a los de esta sección.
Breve introducción sobre que pasos podemos seguir si queremos aprender como es el Hurd, y como desarrollar para él.
"The Hurd Hacking Guide" es hoy día el mejor documento introductorio disponible para aprender como se programan objetos relacionados con el Hurd, especialmente traductores.
Puede ser útil estudiar el código de algunos traductores ( sobre todo los basados en la librería trivfs ) para comenzar a disfrutar de la programación en el Hurd. Un ejemplo es el "hello translator" que podemos encontrar en las fuentes de el Hurd. Otro el "one translator" descrito en "The Hurd Hacking Guide". Otro ejemplillo relativamente sencillo es un traductor que crea un "disco ram", memfs, y que además resulta ser sorprendentemente sencillo.
Aunque la transicion de los hilos C a los hilos POSIX está en camino, aun puede ser útil saber algo de hilos C ( al menos durante uno o dos meses más ). Un pequeño tutorial lo podeis encontrar aquí.
Mach es el micronúcleo que en la actualidad sirve de base a el Hurd, y también a un cierto número de sistemas operativos conocidos, como por ejemplo MacOS X. Su influencia fue enorme, pues Mach popularizó los micronúcleos, y muchos sistemas posteriores se han basado en sus ideas. A pesar de que Mach no destaca por su rendimiento, los conceptos que hay detrás de este micronúcleo son de una riqueza inusual ( y también de una complejidad excesiva ).
Página sobre Mach de la CMU ( Carnegie Mellon University ). De ella nos interesará de manera especial la sección de documentación, y sobre todo los manuales de la OSF.
En ediciones antiguas del libro Operating System Concepts ( por cierto, existe traducción española ) había un capítulo dedicado a Mach. Este puede ser bajado gratuitamente en la página de este libro.
Una simpática introducción a los principios y conceptos básicos de Mach.
Una importante fuente de información ( e inspiración ) sobre Mach son los USENIX Mach Symposiums. Por desgracía el único con página propia es el USENIX Mach III Symposium ( algunos de los artículos pueden bajarse ).
Breve lista de artículos relacionados con Mach.
Richard Rashid ha estado intimamente lígado a la historia y el desarrollo de Mach. Comenzó con RIG ( "Rochester Intelligent Gateway" ), un sistema que pretendía demostrar que los sistemas operativos podían estructurarse de manera modular. Cuando Rashid se fue de Rochester a la CMU siguió investigando en las ideas de RIG y escribió Accent. Poco despues comenzó con Mach, y estuvo ligado a su desarrollo hasta su versión 3.0. Actualmente trabaja en Microsoft. No es el único personaje únido al desarrollo de Mach que ha terminado en Microsoft, pues Richard P. Draves también ha terminado allí.
Hay una buena cantidad de proyectos basados en Mach cuya idea consiste en implementar un servidor Unix en espacio de usuario ( casi todos basados en 4.4BSD ):
Lites es un servidor 4.4BSD ligero sobre Mach. Parece que tiene compatibilidad a nivel binario con un buen número de sistemas ( algunas versiones de NetBSD, FreeBSD y Linux ), y es bastante pequeñito en espacio requerido ( mira aquí ). La documentación incluye la tesis del creador de Lites.
Un descendiente de Lites es xmach, cuya antigua página oficial parece haber desaparecido. También esta disponible esta entrevista en osnews al fundador del proyecto xmach, Joseph Mallet.
Yamit es otro servidor BSD sobre Mach.
Con toda seguridad, el más popular de los monoservidores Unix sobre Mach es Darwin, corazón de MacOSX. También puedes visitar la página de documentación para desarrolladores.
Mklinux responde al mismo esquema que los anteriores ejemplos : poner el núcleo linux como servidor sobre Mach. La distribución principal es para PowerPC, aunque es posible compilarlo para x86 ( si bien no sé como ).
L4 es el candidato más probable a un futuro puerto de el Hurd. Es un micronúcleo moderno, elegante, y de gran rendimiento ( también a pasado a llamarselo "micronúcleo de segunda generación" ), que se basa en la concepción minimalista de que sólo debemos incluir algo en el núcleo, cuando sea imposible implementarlo de forma segura fuera de este.
Página de L4 de la Universidad de Karlsruhe. Pistachio es la implementación de L4 sobre la cual se intenta portar al Hurd.
Rtmk ( siglas de "Real Time MicroKernel" ) es un pequeño micronúcleo en tiempo real basado en las ideas de Mach. En cierto sentido es una depuración y refinamiento de los conceptos que podemos encontrar en Mach. Entre los objetivos de rtmk está el de portar el Hurd a este micronúcleo :
Página principal de rtmk.
VSTa ( siglas de "Valencia's Simple Tasker" ) es un interesante micronúcleo basado en las ideas de QNX y Plan 9. La instalación es bastante sencilla y funciona bien.
Página Principal de VSTa.
QNX es un sistema operativo a tiempo real basado en una arquitectura micronúcleo.
Página Principal de QNX.
Enlaces recopilados por Jim Franklin, muy completos e interesantes.
Enlaces recopilados por Ognyan Kulev, quizás la mejor página con enlaces sobre el Hurd ( y que más a inspirado a esta página ). Una versión más actualizada la podemos encontrar aquí . Entre los intereses de Ognyan Kulev en el Hurd está el conseguir una implementación funcional del sistema de archivos ext3 para el Hurd