The GNU Hurd Sistemas de Operaci´onII

Sabrina Fern´andez & Manuel G´omez.

Universidad Sim´onBol´ıvar.

23 de mayo de 2011

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 1 / 19 Esquema

1 Conceptos B´asicos

2 Antecedentes Hist´oricos

3 Arquitectura

4 Curiosidades

5 Bibliograf´ıa

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 2 / 19 Conceptos B´asicos Conceptos B´asicos

GNU: Es un proyecto de desarrollo de un Sistema Operativo totalmente libre que sigue la filosof´ıaUnix. Su meta es ofrecer un sistema completo, desde el n´ucleoa bajo nivel, hasta aplicaciones de usuario, ya sea en servidores, estaciones de trabajo, entre otros.

Micron´ucleo: es un principio de dise˜nopara un Sistema Operativo en el que se incluye la cantidad m´ınimanecesaria de funcionalidad en el n´ucleodel Sistema Operativo, delegando todo lo que se pueda a procesos proveedores de servicios de sistemas en espacio de usuario.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 3 / 19 Conceptos B´asicos Conceptos B´asicos

Micron´ucleoGNU : Es una implemetaci´onde Mach y el micron´ucleo oficial del proyecto GNU. Adem´asde esto, se considera a GNU Mach como una familia de micron´ucleos,con varias implementaciones, incluyendo los nucleos de OS X, varios BSD y el GNU Hurd. El mismo funciona ´unicamenteen arquitecturas Intel de 32 bits.

Mach: Es un micron´ucleode primera generaci´on.Mach incluye espacios de direcciones virtuales en forma de tareas, contextos de ejecuci´onen forma de hilos, IPC (Comunicaci´onInter Proceso), capacidades en forma de puertos, y objetos de memoria, los cuales habilitan los mecanismos externos de Mach para paginaci´on.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 4 / 19 Conceptos B´asicos Conceptos B´asicos

El GNU Hurd: Es un proyecto de GNU para remplazar el kernel de .

Es una colecci´onde servidores que corren sobre el micron´ucleo de Mach para implementar sistema de archivos, control de acceso a archivos, y otras funcionalidades que son implementadas por el n´ucleode Unix o por otros n´ucleos similares (como ).

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 5 / 19 Antecedentes Hist´oricos Antecedentes Hist´oricos

En 1983 se crea el proyecto GNU por Richar Stallman como el fin de crear un sistema operativo completo y libre. Stallman lo describe como un n´ucleoprimitivo.

En 1986 se conoci´oque TRIX era el n´ucleode GNU. TRIX es un sistema operativo compatible con UNIX versi´on7. Fu´edesarrollado en 1970 por el Laboratorio de Ciencias de la Computaci´ondel Instituto de Tecnolog´ıade Massachusetts (MIT). El n´ucleode TRIX usa RPC.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 6 / 19 Antecedentes Hist´oricos Antecedentes Hist´oricos

La fundaci´onpara el Software Libre (FSF) informa en 1986 que comenzar´alos cambios sobre TRIX. Pero poco despu´escomienzan las negociaciones para desarrollar Mach. Esto har´ıaque Mach no solo fuese una mejora, sino tambi´enun trabajo totalmente nuevo.

En 1988 Stallman anuncia que pondr´ael sistema de archivos Berkeley Sprite sobre Mach. Poco tiempo despu´es,considerando que el desarrollo de Mach pod´ıa no lograrse, la FSF declara que de no lograr Mach, usar´ıanTRIX o Berkeley Sprite. Sprite pasa de ser un simple sistema de archivos a tener opciones de n´ucleo completas.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 7 / 19 Antecedentes Hist´oricos Antecedentes Hist´oricos

En enero de 1990 anuncian que no se est´adesarrollando ningun trabajo sobre n´ucleos,pues a´unquer´ıanusar Mach. Por un a˜nono se supo m´as,hasta que en 1991 anuncian que a´unera de su interes un n´ucleo multi-procesos que pudiera correr sobre Mach.

Los abogados de la CMU (Carnegie Mellon University) buscaban liberar a Mach con las condiciones de distribuci´onque les permitiera poder distribuirlo. De poder hacerlo y decidir distribuirlo, entonces comenzar´ıanel trabajo de desarrollo.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 8 / 19 Antecedentes Hist´oricos Antecedentes Hist´oricos

CMU ten´ıaa su disposici´onen los mismos terminos que Mach un s´olo servidor parcial que emula UNIX llamado Poe. El mismo era lento y proporcionaba m´ınimasfuncionalidades. El plan era comenzar a extender Poe para que diera funcionalidad completa. Luego de esto, se esperaba tener un emulador modular dividido en m´ultiplesprocesos.

Stallman explic´ola relaci´onentre el Hurd y Linux, donde se mencionaba que la FSF comenz´oa desarrollar el Hurd en 1990. A partir de noviembre de 1991, el Hurd (que se ejecuta sobre Mach) es el kernel oficial de GNU.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 9 / 19 Arquitectura Arquitectura

El Hurd usa una arquitectura cliente servidor, construido sobre un micron´ucleoque es responsable de proveer el servicio m´asb´asicodel n´ucleo,esto es, coordinar los accesos al hardware de la siguiente forma:

Al CPU a trav´esde manejo de procesos y scheduling.

A la RAM a trav´esde manejo de memoria.

A los dispositivos Entrada/Salida para sonido, gr´aficas, almacenamiento masivo, etc a trav´esde E/S scheduling.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 10 / 19 Arquitectura Arquitectura

¿C´omose eligi´oel micron´ucleo?

El Hurd fu´edesarrollado para usar a Mach como micron´ucleo.

Se escogi´oel micron´ucleoL4 y se hicieron avances como el manejador de memoria inicial, el funcionamiento del c´odigode inicio del proceso y se logr´oque los programas corrieran.

Se intent´oque Coyotos reemplazara a EROS, sin embargo esto fracas´oy se comenz´oa desarrollar Viengoos como una alternativa.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 11 / 19 Arquitectura Arquitectura

¿Qu´ese logra con Hurd?

Un proceso Hurd corre bajo un conjunto de ids de usuario, los cuales pueden contener m´ultiplesids, una o ninguna. Un proceso con suficientes privilegios puede a˜nadiro quitar ids a otro proceso.

Un programa adecuado puede designarse como un traductor de un archivo ´unicoo de una jerarqu´ıade directorios entera. Cada acceso al archivo traducido, o los archivos bajo la jerarqu´ıa,es manejado por el programa.

Los traductores tambi´enpueden ser usados para proveer servicios al usuario.

El Hurd necesita un gestor de arranque m´ultiplecomo GRUB.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 12 / 19 Arquitectura Arquitectura

Arquitectura de los Servidores Existen 24 servidores en total, 18 servidores centrales y 6 servidores de sistema de archivos.

Servidores de Sistema de Archivos ext2fs: Maneja los sistemas de archivos tipo ext2. isofs: Un servidor para sistemas de archivos tipo iso, usualmente usado para CDs. nfs: Sistema de archivos de red que hace soporte al sistema de archivos de red de Sun. ufs: Un servidor para sistemas de archivos del tipo ufs. ftpfs: Un servidor para sistemas de archivos del tipo ftp. storeio: Un traductor para dispositivos y otros almacenamientos.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 13 / 19 Arquitectura Arquitectura

Servidores Centrales auth: El servidor de autenticaci´onpasa las credenciales cuando dos servidores que no conf´ıanentre s´ıse comunican. Cada servidor de autenticaci´onestablece un dominio de confianza. crash: El servidor de ca´ıdase activa cada vez que una tarea manda una se˜nalde error grave. exec: El servidor de ejecuci´onmaneja la creaci´onde una nueva imagen de proceso. fifo: El traductor FIFO implementa pipes. new-fifo: Servidor alternativo para los pipes. firmlink: Un traductor de firmlinks.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 14 / 19 Arquitectura Arquitectura

Servidores Centrales fwd: Env´ıalas peticiones a otro servidor. Es usado para coordinar otros servidores que encarg´andose de los diferentes nodos. hostmux: Un traductor para invocar traductores de servidores espec´ıficos. ifsock: Sirve para enganchar las direcciones de dominio Unix e implementa el API de sokets. init: Un servidor para los procedimientos de arranque del sistema y las configuraciones b´asicasde tiempo de ejecuci´on. magic: La b´usquedade Magic es b´asicamentepara los casos donde la b´usquedanecesita informaci´onque es parte del estado del proceso que realiza la llamada, y no parte del procedimiento de b´usqueda.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 15 / 19 Arquitectura Arquitectura

Servidores Centrales null: Un servidor con mucho espacio libre y un incontable n´umerode ceros. pfinet: Un servidor para TCP/IP, que implementa la familia de protocolos de IPv4. pflocal: Implementa los sockets de dominio de UNIX. proc: El servidor de proceso asigna PID’s y estructura de procesos a las tareas, y maneja las operaciones y todos los niveles de proceso. symlink: Servidor para enlaces simb´olicos. term: Implementa un terminal de POSIX. usermux: Un traductor para invocar traductores de usuarios espec´ıficos.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 16 / 19 Arquitectura Arquitectura

Distribuciones GNU Hurd Arch Hurd Bee GNU/Hurd Debian GNU/HURD Gentoo GNU Hurd (abandonado) GNU/Hurd Live CD

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 17 / 19 Curiosidades Curiosidades

Hurd es un acr´onimorecursivo doble que significa Hird of Unix-Replacing Daemons (Manada de Sustituci´onUNIX de Demonios), y Hird significa Hurd of Interfaces Representing Depth (Manada de Interfaces de Representaci´onde Profundidad).

Inicialmente El Hurd iba a llamarse Alix, nombre de una novia de Stallman, pero el programador Michael Bushnell lo nombr´oEl Hurd.

El mensaje de error equivalente al kernel-panic en Unix es computer bought the farm lo cu´ales referencia a una canci´onfolcl´orica llamada Old McDonald Had a Farm.

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 18 / 19 Bibliograf´ıa Bibliograf´ıa

http://www.gnu.org/software/hurd/hurd.html http://www.debian.org/ports/hurd/hurd-doc-server#crash http://www.rinconsolidario.org/linux/gnu/gnu.html

Sabrina Fern´andez& Manuel G´omez. (USB) The GNU Hurd 23 de mayo de 2011 19 / 19