the gnu hurd · en 1983 se crea el proyecto gnu por richar stallman como el n de crear un sistema...

19
The GNU Hurd Sistemas de Operaci´ on II Sabrina Fern´ andez & Manuel G´ omez. UniversidadSim´onBol´ ıvar. 23 de mayo de 2011 Sabrina Fern´ andez & Manuel G´ omez. (USB) The GNU Hurd 23 de mayo de 2011 1 / 19

Upload: others

Post on 04-Jul-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

The GNU HurdSistemas de Operacion II

Sabrina Fernandez & Manuel Gomez.

Universidad Simon Bolıvar.

23 de mayo de 2011

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 1 / 19

Page 2: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Esquema

1 Conceptos Basicos

2 Antecedentes Historicos

3 Arquitectura

4 Curiosidades

5 Bibliografıa

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 2 / 19

Page 3: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Conceptos Basicos

Conceptos Basicos

GNU: Es un proyecto de desarrollo de un Sistema Operativototalmente libre que sigue la filosofıa Unix. Su meta es ofrecer unsistema completo, desde el nucleo a bajo nivel, hasta aplicacionesde usuario, ya sea en servidores, estaciones de trabajo, entre otros.

Micronucleo: es un principio de diseno para un Sistema Operativoen el que se incluye la cantidad mınima necesaria de funcionalidaden el nucleo del Sistema Operativo, delegando todo lo que sepueda a procesos proveedores de servicios de sistemas en espaciode usuario.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 3 / 19

Page 4: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Conceptos Basicos

Conceptos Basicos

Micronucleo GNU Mach: Es una implemetacion de Mach y el micronucleooficial del proyecto GNU. Ademas de esto, se considera a GNU Mach comouna familia de micronucleos, con varias implementaciones, incluyendo losnucleos de OS X, varios BSD y el GNU Hurd. El mismo funcionaunicamente en arquitecturas Intel de 32 bits.

Mach: Es un micronucleo de primera generacion. Mach incluye espacios dedirecciones virtuales en forma de tareas, contextos de ejecucion en formade hilos, IPC (Comunicacion Inter Proceso), capacidades en forma depuertos, y objetos de memoria, los cuales habilitan los mecanismosexternos de Mach para paginacion.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 4 / 19

Page 5: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Conceptos Basicos

Conceptos Basicos

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

Es una coleccion de servidores que corren sobre el micronucleode Mach para implementar sistema de archivos, control deacceso a archivos, y otras funcionalidades que sonimplementadas por el nucleo de Unix o por otros nucleossimilares (como Linux).

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 5 / 19

Page 6: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Antecedentes Historicos

Antecedentes Historicos

En 1983 se crea el proyecto GNU por Richar Stallmancomo el fin de crear un sistema operativo completo ylibre. Stallman lo describe como un nucleo primitivo.

En 1986 se conocio que TRIX era el nucleo de GNU.TRIX es un sistema operativo compatible con UNIXversion 7. Fue desarrollado en 1970 por el Laboratoriode Ciencias de la Computacion del Instituto deTecnologıa de Massachusetts (MIT). El nucleo de TRIXusa RPC.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 6 / 19

Page 7: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Antecedentes Historicos

Antecedentes Historicos

La fundacion para el Software Libre (FSF) informa en1986 que comenzara los cambios sobre TRIX. Peropoco despues comienzan las negociaciones paradesarrollar Mach. Esto harıa que Mach no solo fueseuna mejora, sino tambien un trabajo totalmente nuevo.

En 1988 Stallman anuncia que pondra el sistema dearchivos Berkeley Sprite sobre Mach. Poco tiempodespues, considerando que el desarrollo de Mach podıano lograrse, la FSF declara que de no lograr Mach,usarıan TRIX o Berkeley Sprite. Sprite pasa de ser unsimple sistema de archivos a tener opciones de nucleocompletas.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 7 / 19

Page 8: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Antecedentes Historicos

Antecedentes Historicos

En enero de 1990 anuncian que no se esta desarrollandoningun trabajo sobre nucleos, pues aun querıan usarMach. Por un ano no se supo mas, hasta que en 1991anuncian que aun era de su interes un nucleomulti-procesos que pudiera correr sobre Mach.

Los abogados de la CMU (Carnegie Mellon University)buscaban liberar a Mach con las condiciones dedistribucion que les permitiera poder distribuirlo. Depoder hacerlo y decidir distribuirlo, entoncescomenzarıan el trabajo de desarrollo.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 8 / 19

Page 9: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Antecedentes Historicos

Antecedentes Historicos

CMU tenıa a su disposicion en los mismos terminos que Mach un soloservidor parcial que emula UNIX llamado Poe. El mismo era lento yproporcionaba mınimas funcionalidades. El plan era comenzar a extenderPoe para que diera funcionalidad completa. Luego de esto, se esperabatener un emulador modular dividido en multiples procesos.

Stallman explico la relacion entre el Hurd y Linux, donde se mencionabaque la FSF comenzo a desarrollar el Hurd en 1990. A partir de noviembrede 1991, el Hurd (que se ejecuta sobre Mach) es el kernel oficial de GNU.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 9 / 19

Page 10: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Arquitectura

Arquitectura

El Hurd usa una arquitectura cliente servidor, construido sobre unmicronucleo que es responsable de proveer el servicio mas basico delnucleo, esto es, coordinar los accesos al hardware de la siguiente forma:

Al CPU a traves de manejo de procesos y scheduling.

A la RAM a traves de manejo de memoria.

A los dispositivos Entrada/Salida para sonido, graficas,almacenamiento masivo, etc a traves de E/S scheduling.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 10 / 19

Page 11: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Arquitectura

Arquitectura

¿Como se eligio el micronucleo?

El Hurd fue desarrollado para usar a Mach como micronucleo.

Se escogio el micronucleo L4 y se hicieron avances como el manejadorde memoria inicial, el funcionamiento del codigo de inicio del procesoy se logro que los programas corrieran.

Se intento que Coyotos reemplazara a EROS, sin embargo estofracaso y se comenzo a desarrollar Viengoos como una alternativa.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 11 / 19

Page 12: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Arquitectura

Arquitectura

¿Que se logra con Hurd?

Un proceso Hurd corre bajo un conjunto de ids de usuario, los cualespueden contener multiples ids, una o ninguna. Un proceso con suficientesprivilegios puede anadir o quitar ids a otro proceso.

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

Los traductores tambien pueden ser usados para proveer servicios alusuario.

El Hurd necesita un gestor de arranque multiple como GRUB.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 12 / 19

Page 13: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Arquitectura

Arquitectura

Arquitectura de los ServidoresExisten 24 servidores en total, 18 servidores centrales y 6 servidores desistema de archivos.

Servidores de Sistema de Archivos

ext2fs: Maneja los sistemas de archivos tipo ext2.

isofs: Un servidor para sistemas de archivos tipo iso, usualmenteusado para CDs.

nfs: Sistema de archivos de red que hace soporte al sistema dearchivos 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 Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 13 / 19

Page 14: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Arquitectura

Arquitectura

Servidores Centrales

auth: El servidor de autenticacion pasa las credenciales cuando dosservidores que no confıan entre sı se comunican. Cada servidor deautenticacion establece un dominio de confianza.

crash: El servidor de caıda se activa cada vez que una tarea mandauna senal de error grave.

exec: El servidor de ejecucion maneja la creacion de una nuevaimagen de proceso.

fifo: El traductor FIFO implementa pipes.

new-fifo: Servidor alternativo para los pipes.

firmlink: Un traductor de firmlinks.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 14 / 19

Page 15: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Arquitectura

Arquitectura

Servidores Centrales

fwd: Envıa las peticiones a otro servidor. Es usado para coordinarotros servidores que encargandose de los diferentes nodos.

hostmux: Un traductor para invocar traductores de servidoresespecıficos.

ifsock: Sirve para enganchar las direcciones de dominio Unix eimplementa el API de sokets.

init: Un servidor para los procedimientos de arranque del sistema y lasconfiguraciones basicas de tiempo de ejecucion.

magic: La busqueda de Magic es basicamente para los casos donde labusqueda necesita informacion que es parte del estado del procesoque realiza la llamada, y no parte del procedimiento de busqueda.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 15 / 19

Page 16: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Arquitectura

Arquitectura

Servidores Centrales

null: Un servidor con mucho espacio libre y un incontable numero deceros.

pfinet: Un servidor para TCP/IP, que implementa la familia deprotocolos de IPv4.

pflocal: Implementa los sockets de dominio de UNIX.

proc: El servidor de proceso asigna PID’s y estructura de procesos alas tareas, y maneja las operaciones y todos los niveles de proceso.

symlink: Servidor para enlaces simbolicos.

term: Implementa un terminal de POSIX.

usermux: Un traductor para invocar traductores de usuariosespecıficos.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 16 / 19

Page 17: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Arquitectura

Arquitectura

Distribuciones GNU Hurd

Arch Hurd

Bee GNU/Hurd

Debian GNU/HURD

Gentoo GNU Hurd (abandonado)

GNU/Hurd Live CD

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 17 / 19

Page 18: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

Curiosidades

Curiosidades

Hurd es un acronimo recursivo doble que significa Hird ofUnix-Replacing Daemons (Manada de Sustitucion UNIX deDemonios), y Hird significa Hurd of Interfaces RepresentingDepth (Manada de Interfaces de Representacion de Profundidad).

Inicialmente El Hurd iba a llamarse Alix, nombre de una novia deStallman, pero el programador Michael Bushnell lo nombro El Hurd.

El mensaje de error equivalente al kernel-panic en Unix es computerbought the farm lo cual es referencia a una cancion folcloricallamada Old McDonald Had a Farm.

Sabrina Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 18 / 19

Page 19: The GNU Hurd · En 1983 se crea el proyecto GNU por Richar Stallman como el n de crear un sistema operativo completo y libre. Stallman lo describe como un nucleo primitivo. En 1986

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 Fernandez & Manuel Gomez. (USB) The GNU Hurd 23 de mayo de 2011 19 / 19