The GNU Hurd Sistemas De Operaci´Onii
Total Page:16
File Type:pdf, Size:1020Kb
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).