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 Mach: 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 Unix.
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 Linux).
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