fbpx
Wikipedia

GNU Hurd

GNU Hurd es un proyecto dentro del Proyecto GNU para reemplazar al núcleo de un sistema operativo tipo Unix totalmente libre, GNU. Se ha estado desarrollando desde 1990 y distribuyendo bajo la licencia GPL.[1]

GNU Hurd
Parte de sistema operativo tipo Unix

Live CD de Hurd.
Información general
Tipo de programa micronúcleo
Desarrollador Thomas Bushnell, Roland McGrath, Marcus Brinkmann, Neal Walfield, Michael I. Bushnell
Modelo de desarrollo Software libre
Licencia GPL
Estado actual En desarrollo
Información técnica
Programado en
Núcleo Mach
Tipo de núcleo Micronúcleo
Plataformas admitidas IA-32
Versiones
Última versión estable 0.918 de diciembre de 2016
Última versión en pruebas 0.9 ( 18 de diciembre de 2016 (5 años, 11 meses y 4 días))
Enlaces
Sitio web oficial
Repositorio de código

Hurd intenta superar a los Unix en cuanto a funcionalidad, seguridad y estabilidad, aún manteniéndose compatible con ellos. Esto se logra gracias a que Hurd implementa la especificación POSIX ─entre otras─, pero elimina las restricciones arbitrarias a los usuarios.

Aunque el Proyecto GNU se suele considerar a Hurd como núcleo, en sentido estricto esto no sería correcto, dado que parte importante de Hurd reside en un espacio de usuario que interactúa con un micronúcleo, GNU Mach. De hecho, Hurd sería un sistema operativo, tal como se considera al núcleo Linux, y la extensa colección de programas GNU corriendo sobre Hurd se denomina GNU/Hurd, tal como se llama GNU/Linux a la misma corriendo sobre Linux.

Historia del desarrollo

El desarrollo de Hurd empezó en el año 1990. Aunque Richard Stallman, fundador del proyecto GNU, había anunciado que esperaba el lanzamiento oficial del sistema operativo GNU (también conocido como GNU/Hurd) antes de finales de 2002, esto no fue conseguido, en parte porque se comenzó a utilizar el núcleo Linux.

Origen del nombre

La palabra Hurd es un acrónimo recursivo. Hurd es el acrónimo de «Hird of Unix-Replacing Daemons» (en español: «Hird» de demonios que reemplazan a Unix). A su vez el término «Hird» significa «Hurd of Interfaces Representing Depth» («Hurd» de interfaces que representan profundidad). Tanto «Hurd» como «Hird» en inglés estadounidense se pronuncian como /hɜːrd/ «herd» (en español: manada), por lo que GNU Hurd se podría traducir como «manada de ñúes», referente a su arquitectura de un conjunto de servidores corriendo.

Arquitectura

A diferencia de la mayoría de núcleos tipo Unix, Hurd se erige encima de un micronúcleo (actualmente solo está soportado Mach, aunque existió un proyecto ahora abandonado para poder ejecutar Hurd en el micronúcleo de segunda generación L4), responsable de facilitarle los servicios de un núcleo más básicos: coordinar el acceso al hardware (a la CPU —mediante multiproceso—, a la memoria RAM —mediante gestión de memoria—, y a otros dispositivos de sonido, gráficos, almacenamiento, etc.).

Hay otros sistemas tipo Unix que se ejecutan encima del micronúcleo Mach, como OSF/1, NEXTSTEP, Mac OS X, Lites y MkLinux. Todos ellos están implementados como un único servidor. Por lo tanto, sustituyen el núcleo monolítico de los sistemas Unix tradicionales con dos elementos, el micronúcleo y el servidor Unix.

En cambio, Hurd consiste en múltiples servidores ejecutándose simultáneamente. En lugar de un solo programa enorme que controle desde el reloj hasta el manejo de la red, en Hurd cada una de estas tareas es gestionada por un servidor independiente. Esto hace que (teóricamente, al menos) el desarrollo de Hurd sea mucho más fácil, ya que es menos probable que el hacer cambios en un servidor tenga efectos indeseados en otros servidores.

En el diseño original de Mach una de las principales metas fue este tipo de «conjunto de servidores», pero parece que Hurd es el primero en implementar este diseño sobre un micronúcleo Mach (aunque QNX es similar, pero basado en su propio micronúcleo). No está claro por qué no hubo ninguna implementación de múltiples servidores anteriormente, aunque parece que los grupos que trabajaban en Mach estaban demasiado ocupados en este para dedicarse al sistema operativo en su totalidad. Hurd intenta, además, ser portable entre micronúcleos.

Extensiones de Unix

En Hurd un buen número de conceptos tradicionales de Unix cambian o se potencian:

Bajo Unix, cada programa que se ejecuta tiene asociada una identidad de usuario, que normalmente se corresponde con el usuario que inició el proceso. Esta identidad determina en gran medida qué acciones se le permite realizar al programa. Ningún proceso externo puede cambiar la identidad de un programa que se esté ejecutando. Un proceso de Hurd, por otra parte, se ejecuta asociado a un conjunto de identidades de usuario, que puede contener múltiples identidades, una, o ninguna. Un proceso con los suficientes privilegios puede añadir o eliminar identidades de otro proceso. Por ejemplo, existe un servidor de contraseñas que otorga identidades en respuesta a una contraseña de usuario correcta.

En lo que respecta al sistema de archivos, se puede establecer un programa adecuado como traductor para un solo archivo o una jerarquía de directorios entera. Cada acceso al archivo traducido, o a los archivos en la jerarquía en el segundo caso, son de hecho manejados por este programa. Por ejemplo, un traductor de archivos puede simplemente redirigir las operaciones de lectura y escritura hacia otro archivo, no como un enlace simbólico de Unix. El montaje de Unix, en Hurd se consigue configurando un traductor de sistema de archivos (usando el mandato settrans). Los traductores también se pueden usar para proporcionar servicios al usuario. Por ejemplo, el traductor ftpfs permite a un usuario encapsular un sitio FTP remoto en un directorio. Con esto, se pueden usar programas estándar como ls, cp o rm para manipular archivos en el sitio remoto. Hay traductores incluso más potentes, como UnionFS, que permite a un usuario unificar varios directorios en uno solo, de tal manera que al listar este directorio se muestra el contenido de todos los directorios unificados (una característica ausente en la mayoría de Unices, aunque presente en FreeBSD).

Quizás la característica más potente de Hurd es la posibilidad de que cualquier usuario ejecute sus propios servicios de sistema. Un usuario puede asignar cualquier traductor al sistema de archivos para su uso personal. Incluso puede reemplazar servidores del sistema, como el servidor de autenticación, con otros servidores de su elección. Todo esto se puede hacer sin afectar a los otros usuarios, gracias a que los ámbitos de efecto están bien definidos. De hecho, incluso es posible para un usuario ejecutar Hurd dentro de sí mismo, lo que se conoce como sub-Hurd.

Arquitectura de los servidores

Según la documentación de Debian son los siguientes:[2]

  • init: Procedimientos de arranque del sistema.
  • auth: Servidor de autenticación. Intercambia credenciales cuando dos servidores tratan de comunicarse entre ellos.
  • crash: Servidor de manejo de errores. Se activa cuando una tarea recibe una señal de error irrecuperable, como un segmentation fault.
  • exec: Cargador de ejecutables. Genera la imagen inicial de un proceso desde su imagen binaria en disco. Soporta ELF y a.out.
  • fifo: Traductor FIFO translator, implenta tuberías nombradas.
  • new-fifo: Un servidor alternativo para tuberías nombradas.
  • null: implementa /dev/null y /dev/zero.
  • pfinet: implementa el protocolo IP (versión 4).
  • pflocal: Implementa los UNIX domain sockets.
  • proc: Asigna estructuras de procesos a las tareas, incluyendo su PID, y gestiona sus estados.
  • storeio: Un traductor para dispositivos de almacenamiento.
  • symlink: Simula enlaces simbólicos en sistemas de ficheros que no los soportan.
  • ifsock: Simula filesystem sockets en sistemas de ficheros que no los soportan.
  • firmlink: Un firmlink es algo intermedio entre un enlace simbólico y un hardlink.
  • term: Implementa un terminal POSIX.
  • usermux: Implementa un directorio en el que se pueden buscar nombres de usuarios.
  • hostmux: Directorio para buscar hosts.
  • fwd: Punto de entrada común para buscar cualquier otro servidor.
  • magic: Directorio para buscar información del proceso llamante.

También incluye varios sistemas de ficheros:

  • nfs: Implementa el Network file system de Sun.
  • ftp: Un servidor para sistemas ftp.
  • ufs: Sistema UFS de los DVD.
  • isofs: Server para sistemas de archivos ISO, como los de los CD.
  • ext2fs: Server para istemas de archivos de tipo ext-2.

Entre todos ellos implementan la interfaz de programación de aplicaciones o API Single Unix Specification que es un superset de POSIX. En realidad, es la biblioteca libc la que implementa la API POSIX, igual que en Linux, y Hurd da una interfaz cercana pero de más bajo nivel.

La forma en que los programas llaman a Hurd es a través del sistema de archivos. Funcionan como un sistema de archivos especial, parecido al /proc de linux. Por ejemplo, si queremos hablar con el servidor auth miraremos en el directorio donde esté montado (/servers/auth) y haremos llamadas read/write sobre él.

De alguna forma, por tanto, el servidor del sistema de archivos es el que hace de interfaz del API y también sabe a cuál de los otros servidores de bajo nivel mandar las llamadas. A bajo nivel, cuando se hace un open de uno de estos archivos, el programa recibe los distintos dispositivos de hardware que vayan compilados dentro del micronúcleo. Por tanto Hurd no necesita llevar él mismo la gestión de bajo nivel de las interrupciones; en cambio sí necesita traducir las señales hardware a señales del sistema operativo.

Arranque

Necesita un gestor de arranque que siga el protocolo multiboot como GRUB. La configuración se realiza mediante los siguientes pasos (o se configura el gestor de arranque para que lo haga automáticamente):

  • Se carga el micronúcleo en memoria.
  • Se carga un script para que el micronúcleo arranque el Hurd. Puede arrancarse manualmente o como si fuera un módulo de grub (comando module de GRUB). Hurd viene con un script que se llama serverboot para arrancar el hurd completo.
  • Se le da el control al micronúcleo, que debe estar capacitado para ejecutar scripts.

Con esto, el micronúcleo cargará los servidores del hurd y les pasará el control.

Distribuciones que usan Hurd

Actualmente, hay al menos cinco distribuciones de GNU/Hurd en preparación (Debian GNU/Hurd, Gentoo, Arch Hurd, Bee y A.T.L.D. GNU/Hurd), aunque ninguna ha publicado versiones oficiales.

Hurd NG

Se está intentando crear una nueva versión del Hurd llamada NgHurd, este proyecto comenzó con un intento de portar el micronúcleo L4 a Hurd lo cual lo hubiera dotado de una mayor velocidad entre otras características. Dicho proyecto fue abandonado, por lo cual se están discutiendo las características para esta nueva versión desde cero, incluyendo el micronúcleo a utilizar.

Véase también

Referencias

  1. Free Software Foundation, ed. (7 de diciembre de 2010). . www.gnu.org (en inglés). Archivado desde el original el 24 de septiembre de 2019. Consultado el 24 de octubre de 2019. 
  2. «Debian GNU/Hurd» (en inglés). Proyecto Debian. 

Enlaces externos

  • Sitio web oficial de Hurd (en inglés).
  • ¿Qué es GNU Hurd?
  • Port GNU/Hurd de la distribución Debian (inglés)
  • Sitio web oficial del micronúcleo L4 (inglés)
  • (inglés)
  • comparativa Linux versus Hurd
  • Lanzamiento de la primera versión oficial de Debian GNU/Hurd del 22 de mayo de 2013
  • Lanzamiento de la primera versión oficial de Debian GNU/Hurd (inglés)
  •   Datos: Q48464
  •   Multimedia: GNU Hurd / Q48464

hurd, este, artículo, detectaron, varios, problemas, favor, edítalo, para, mejorarlo, necesita, wikificado, conforme, convenciones, estilo, wikipedia, necesita, referencias, adicionales, para, verificación, podría, contener, información, desactualizada, requie. En este articulo se detectaron varios problemas Por favor editalo para mejorarlo Necesita ser wikificado conforme a las convenciones de estilo de Wikipedia Necesita referencias adicionales para su verificacion Podria contener informacion desactualizada Requiere una revision ortografica y gramatical Este aviso fue puesto el 24 de octubre de 2019 GNU Hurd es un proyecto dentro del Proyecto GNU para reemplazar al nucleo de un sistema operativo tipo Unix totalmente libre GNU Se ha estado desarrollando desde 1990 y distribuyendo bajo la licencia GPL 1 GNU HurdParte de sistema operativo tipo UnixLive CD de Hurd Informacion generalTipo de programamicronucleoDesarrolladorThomas Bushnell Roland McGrath Marcus Brinkmann Neal Walfield Michael I BushnellModelo de desarrolloSoftware libreLicenciaGPLEstado actualEn desarrolloInformacion tecnicaProgramado enClenguaje ensambladorNucleoMachTipo de nucleoMicronucleoPlataformas admitidasIA 32VersionesUltima version estable0 918 de diciembre de 2016Ultima version en pruebas0 9 18 de diciembre de 2016 5 anos 11 meses y 4 dias EnlacesSitio web oficial Repositorio de codigo editar datos en Wikidata Hurd intenta superar a los Unix en cuanto a funcionalidad seguridad y estabilidad aun manteniendose compatible con ellos Esto se logra gracias a que Hurd implementa la especificacion POSIX entre otras pero elimina las restricciones arbitrarias a los usuarios Aunque el Proyecto GNU se suele considerar a Hurd como nucleo en sentido estricto esto no seria correcto dado que parte importante de Hurd reside en un espacio de usuario que interactua con un micronucleo GNU Mach De hecho Hurd seria un sistema operativo tal como se considera al nucleo Linux y la extensa coleccion de programas GNU corriendo sobre Hurd se denomina GNU Hurd tal como se llama GNU Linux a la misma corriendo sobre Linux Indice 1 Historia del desarrollo 2 Origen del nombre 3 Arquitectura 3 1 Extensiones de Unix 3 2 Arquitectura de los servidores 4 Arranque 5 Distribuciones que usan Hurd 6 Hurd NG 7 Vease tambien 8 Referencias 9 Enlaces externosHistoria del desarrollo EditarEl desarrollo de Hurd empezo en el ano 1990 Aunque Richard Stallman fundador del proyecto GNU habia anunciado que esperaba el lanzamiento oficial del sistema operativo GNU tambien conocido como GNU Hurd antes de finales de 2002 esto no fue conseguido en parte porque se comenzo a utilizar el nucleo Linux Origen del nombre EditarLa palabra Hurd es un acronimo recursivo Hurd es el acronimo de Hird of Unix Replacing Daemons en espanol Hird de demonios que reemplazan a Unix A su vez el termino Hird significa Hurd of Interfaces Representing Depth Hurd de interfaces que representan profundidad Tanto Hurd como Hird en ingles estadounidense se pronuncian como hɜːrd herd en espanol manada por lo que GNU Hurd se podria traducir como manada de nues referente a su arquitectura de un conjunto de servidores corriendo Arquitectura EditarA diferencia de la mayoria de nucleos tipo Unix Hurd se erige encima de un micronucleo actualmente solo esta soportado Mach aunque existio un proyecto ahora abandonado para poder ejecutar Hurd en el micronucleo de segunda generacion L4 responsable de facilitarle los servicios de un nucleo mas basicos coordinar el acceso al hardware a la CPU mediante multiproceso a la memoria RAM mediante gestion de memoria y a otros dispositivos de sonido graficos almacenamiento etc Hay otros sistemas tipo Unix que se ejecutan encima del micronucleo Mach como OSF 1 NEXTSTEP Mac OS X Lites y MkLinux Todos ellos estan implementados como un unico servidor Por lo tanto sustituyen el nucleo monolitico de los sistemas Unix tradicionales con dos elementos el micronucleo y el servidor Unix En cambio Hurd consiste en multiples servidores ejecutandose simultaneamente En lugar de un solo programa enorme que controle desde el reloj hasta el manejo de la red en Hurd cada una de estas tareas es gestionada por un servidor independiente Esto hace que teoricamente al menos el desarrollo de Hurd sea mucho mas facil ya que es menos probable que el hacer cambios en un servidor tenga efectos indeseados en otros servidores En el diseno original de Mach una de las principales metas fue este tipo de conjunto de servidores pero parece que Hurd es el primero en implementar este diseno sobre un micronucleo Mach aunque QNX es similar pero basado en su propio micronucleo No esta claro por que no hubo ninguna implementacion de multiples servidores anteriormente aunque parece que los grupos que trabajaban en Mach estaban demasiado ocupados en este para dedicarse al sistema operativo en su totalidad Hurd intenta ademas ser portable entre micronucleos Extensiones de Unix Editar En Hurd un buen numero de conceptos tradicionales de Unix cambian o se potencian Bajo Unix cada programa que se ejecuta tiene asociada una identidad de usuario que normalmente se corresponde con el usuario que inicio el proceso Esta identidad determina en gran medida que acciones se le permite realizar al programa Ningun proceso externo puede cambiar la identidad de un programa que se este ejecutando Un proceso de Hurd por otra parte se ejecuta asociado a un conjunto de identidades de usuario que puede contener multiples identidades una o ninguna Un proceso con los suficientes privilegios puede anadir o eliminar identidades de otro proceso Por ejemplo existe un servidor de contrasenas que otorga identidades en respuesta a una contrasena de usuario correcta En lo que respecta al sistema de archivos se puede establecer un programa adecuado como traductor para un solo archivo o una jerarquia de directorios entera Cada acceso al archivo traducido o a los archivos en la jerarquia en el segundo caso son de hecho manejados por este programa Por ejemplo un traductor de archivos puede simplemente redirigir las operaciones de lectura y escritura hacia otro archivo no como un enlace simbolico de Unix El montaje de Unix en Hurd se consigue configurando un traductor de sistema de archivos usando el mandato settrans Los traductores tambien se pueden usar para proporcionar servicios al usuario Por ejemplo el traductor ftpfs permite a un usuario encapsular un sitio FTP remoto en un directorio Con esto se pueden usar programas estandar como a href Ls Unix html class mw redirect title Ls Unix ls a a href Cp Unix html title Cp Unix cp a o a href Rm Unix html class mw redirect title Rm Unix rm a para manipular archivos en el sitio remoto Hay traductores incluso mas potentes como UnionFS que permite a un usuario unificar varios directorios en uno solo de tal manera que al listar este directorio se muestra el contenido de todos los directorios unificados una caracteristica ausente en la mayoria de Unices aunque presente en FreeBSD Quizas la caracteristica mas potente de Hurd es la posibilidad de que cualquier usuario ejecute sus propios servicios de sistema Un usuario puede asignar cualquier traductor al sistema de archivos para su uso personal Incluso puede reemplazar servidores del sistema como el servidor de autenticacion con otros servidores de su eleccion Todo esto se puede hacer sin afectar a los otros usuarios gracias a que los ambitos de efecto estan bien definidos De hecho incluso es posible para un usuario ejecutar Hurd dentro de si mismo lo que se conoce como sub Hurd Arquitectura de los servidores Editar Segun la documentacion de Debian son los siguientes 2 init Procedimientos de arranque del sistema auth Servidor de autenticacion Intercambia credenciales cuando dos servidores tratan de comunicarse entre ellos crash Servidor de manejo de errores Se activa cuando una tarea recibe una senal de error irrecuperable como un segmentation fault exec Cargador de ejecutables Genera la imagen inicial de un proceso desde su imagen binaria en disco Soporta ELF y a out fifo Traductor FIFO translator implenta tuberias nombradas new fifo Un servidor alternativo para tuberias nombradas null implementa a href dev null html title dev null dev null a y a href dev zero html title dev zero dev zero a pfinet implementa el protocolo IP version 4 pflocal Implementa los UNIX domain sockets proc Asigna estructuras de procesos a las tareas incluyendo su PID y gestiona sus estados storeio Un traductor para dispositivos de almacenamiento symlink Simula enlaces simbolicos en sistemas de ficheros que no los soportan ifsock Simula filesystem sockets en sistemas de ficheros que no los soportan firmlink Un firmlink es algo intermedio entre un enlace simbolico y un hardlink term Implementa un terminal POSIX usermux Implementa un directorio en el que se pueden buscar nombres de usuarios hostmux Directorio para buscar hosts fwd Punto de entrada comun para buscar cualquier otro servidor magic Directorio para buscar informacion del proceso llamante Tambien incluye varios sistemas de ficheros nfs Implementa el Network file system de Sun ftp Un servidor para sistemas ftp ufs Sistema UFS de los DVD isofs Server para sistemas de archivos ISO como los de los CD ext2fs Server para istemas de archivos de tipo ext 2 Entre todos ellos implementan la interfaz de programacion de aplicaciones o API Single Unix Specification que es un superset de POSIX En realidad es la biblioteca libc la que implementa la API POSIX igual que en Linux y Hurd da una interfaz cercana pero de mas bajo nivel La forma en que los programas llaman a Hurd es a traves del sistema de archivos Funcionan como un sistema de archivos especial parecido al proc de linux Por ejemplo si queremos hablar con el servidor auth miraremos en el directorio donde este montado servers auth y haremos llamadas read write sobre el De alguna forma por tanto el servidor del sistema de archivos es el que hace de interfaz del API y tambien sabe a cual de los otros servidores de bajo nivel mandar las llamadas A bajo nivel cuando se hace un open de uno de estos archivos el programa recibe los distintos dispositivos de hardware que vayan compilados dentro del micronucleo Por tanto Hurd no necesita llevar el mismo la gestion de bajo nivel de las interrupciones en cambio si necesita traducir las senales hardware a senales del sistema operativo Arranque EditarNecesita un gestor de arranque que siga el protocolo multiboot como GRUB La configuracion se realiza mediante los siguientes pasos o se configura el gestor de arranque para que lo haga automaticamente Se carga el micronucleo en memoria Se carga un script para que el micronucleo arranque el Hurd Puede arrancarse manualmente o como si fuera un modulo de grub comando module de GRUB Hurd viene con un script que se llama serverboot para arrancar el hurd completo Se le da el control al micronucleo que debe estar capacitado para ejecutar scripts Con esto el micronucleo cargara los servidores del hurd y les pasara el control Distribuciones que usan Hurd EditarActualmente hay al menos cinco distribuciones de GNU Hurd en preparacion Debian GNU Hurd Gentoo Arch Hurd Bee y A T L D GNU Hurd aunque ninguna ha publicado versiones oficiales Hurd NG EditarSe esta intentando crear una nueva version del Hurd llamada NgHurd este proyecto comenzo con un intento de portar el micronucleo L4 a Hurd lo cual lo hubiera dotado de una mayor velocidad entre otras caracteristicas Dicho proyecto fue abandonado por lo cual se estan discutiendo las caracteristicas para esta nueva version desde cero incluyendo el micronucleo a utilizar Vease tambien EditarArch Hurd GNU Mach L4 Debian GNU Hurd GNU Hurd based Live CD Minix 3 Un sistema operativo similar tambien basado en servidores Kernel based Virtual Machine KVM Referencias Editar Free Software Foundation ed 7 de diciembre de 2010 What Is the GNU Hurd Que es el GNU Hurd www gnu org en ingles Archivado desde el original el 24 de septiembre de 2019 Consultado el 24 de octubre de 2019 Debian GNU Hurd en ingles Proyecto Debian Enlaces externos EditarSitio web oficial de Hurd en ingles Que es GNU Hurd Port GNU Hurd de la distribucion Debian ingles Sitio web oficial del micronucleo L4 ingles Port GNU Hurd de la distribucion ArchLinux ingles Hurd ya esta aqui pero no sorprende comparativa Linux versus Hurd Lanzamiento de la primera version oficial de Debian GNU Hurd del 22 de mayo de 2013 Lanzamiento de la primera version oficial de Debian GNU Hurd ingles Datos Q48464 Multimedia GNU Hurd Q48464 Obtenido de https es wikipedia org w index php title GNU Hurd amp oldid 147465826, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos