Diferencia entre revisiones de «GNU Hurd»

Contenido eliminado Contenido añadido
Jakeukalane (discusión · contribs.)
m aquí no dice que sea un núcleo: https://www.gnu.org/software/hurd/hurd/what_is_the_gnu_hurd.html sólo dice que está reemplazando un kernel UNIX, que no es lo mismo
NacaruBot (discusión · contribs.)
Bot: eliminando enlaces según WP:ENLACESFECHAS
 
(No se muestran 19 ediciones intermedias de 14 usuarios)
Línea 1:
{{PA|2=wikificar|3=copyedit|4=referencias adicionales|5=desactualizado|7=informática|t=20191024081819}}{{Ficha de software
{{Ficha de sistema operativo
| nombre = GNU Hurd
| logo = [[Archivo:Hurd-logo.svg|70px]]
Línea 16:
}}
 
'''GNU Hurd''' es un conjuntoproyecto dedentro programasdel servidores[[Proyecto queGNU]] simulanpara reemplazar al [[Núcleo (informática)|núcleo]] de un [[sistema operativo]] tipo [[Unix]], que establece la base de latotalmente [[DistribuciónSoftware de softwarelibre|distribuciónlibre]], [[GNU]]. El Proyecto GNU loSe ha estado desarrollando desde [[1990]] comoy [[software libre]], distribuyéndolodistribuyendo bajo la [[licencia de software|licencia]] [[Licencia pública general de GNU|GPL]].<ref>{{Cita web|url=https://www.gnu.org/software/hurd/hurd/what_is_the_gnu_hurd.html|título=What Is the GNU Hurd?|títulotrad=¿Qué es el GNU Hurd?|fechaacceso=24 de octubre de 2019|fecha=7 de diciembre de 2010|sitioweb=www.gnu.org|editor=Free Software Foundation|idioma=en|urlarchivo=https://web.archive.org/web/20190924223235/https://www.gnu.org/software/hurd/hurd/what_is_the_gnu_hurd.html|fechaarchivo=24 de septiembre de 2019}}</ref>
 
Hurd intenta superar a los [[sistema operativo|sistema operativos]] tipo [[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─entre otras)otras─, pero eliminandoelimina las restricciones arbitrarias a los usuarios.
 
Aunque el [[Proyecto GNU]] se refieresuele considerar a Hurd como [[núcleo (informática)|núcleo]]{{cita requerida}}, en sentido estricto esto no essería correcto, dado que parte importante de Hurd reside en un [[espacio de usuario,]] que interactuandointeractúa con un [[micronúcleo]], ([[GNU Mach]]). De hecho, Hurd essería un [[sistema operativo]], tal como else considera al núcleo [[Núcleo Linux|Linux]], (comoy ella mismoextensa indica,colección elde [[ProyectoPrograma GNUinformático|programas]] se refiere aGNU [[GNUEjecución (computación)|corriendo]] ysobre Hurd se denomina [[GNU/Linux]]Hurd, usandotal elcomo términose [[sistemallama operativo]]GNU/Linux comoa equivalentela demisma [[distribucióncorriendo desobre software|distribución]])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 [[Linux (núcleo)|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 americanoestadounidense 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 sólosolo está soportado [[GNU Mach|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 kernel|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.
Línea 35:
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 de computadoras|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 ésteeste para dedicarse al [[sistema operativo]] en su totalidad. Hurd intenta, además, ser [[portabilidad|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 [[Identificador de usuario|identidad de usuario]], que normalmente se corresponde con el usuario que inició el [[Proceso (informática)|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 (informática)|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 ''[[montarMáquina|montaje]]'' de Unix, en Hurd se consigue configurando un traductor de sistema de archivos (usando el mandato <code>settrans</code>). Los traductores también se pueden usar para proporcionar servicios al usuario. Por ejemplo, el traductor [[ftpfs (Hurd)|ftpfs]] permite a un usuario encapsular un sitio FTP remoto en un directorio. Con esto, se pueden usar programas estándar como <code>[[ls (Unix)|ls]]</code>, <code>[[cp (Unix)|cp]]</code> o <code>[[rm (Unix)|rm]]</code> 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.
Línea 49:
Según la documentación de Debian son los siguientes:<ref>{{cita web|url=http://www.debian.org/ports/hurd/hurd-doc-server|título=Debian GNU/Hurd|editorial=[[Proyecto Debian]] |idioma=inglés}}</ref>
 
* [[init]]: Procedimientos de arranque del sistema.
* [[auth]]: Servidor de autenticación. Intercambia credenciales cuando dos servidores tratan de comunicarse entre ellos.
* [[Crash (informática)|crash]]: Servidor de manejo de [[Crash (informática)|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 [[Executable and Linkable Format|ELF]] y [[a.out]].
*fifo: Traductor [[First in, first out|FIFO]] translator, implenta [[Tubería (informática)|tuberías]] nombradas.
* [[null]]: implementa <code>/dev/null</code> y <code>/dev/zero</code>.
*new-fifo: Un servidor alternativo para tuberías nombradas.
* [[null]]: implementa <code>[[/dev/null]]</code> y <code>[[/dev/zero]]</code>.
* [[pfinet]]: implementa el protocolo IP (versión 4).
* [[pflocal]]: Implementa los UNIX domain sockets.
Línea 66 ⟶ 68:
* [[fwd]]: Punto de entrada común para buscar cualquier otro servidor.
* [[magic]]: Directorio para buscar información del proceso llamante.
* [[fifo]]: Implementa [[named pipes]]
* [[new-fifo]]: Implementación alternativa
 
También incluye varios sistemas de ficheros:
 
* [[Network File System|nfs]]: Implementa el ''Network file system'' de Sun.
* [[ftp]]: Un servidor para sistemas ftp.
* [[ufs]]: Sistema UFS de los DVD.
* [[isofs]]: Server para filesystemssistemas de archivos ISO, como los de los CD.
* [[ext2fs]]: Server para istemassistemas 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 (informática)|biblioteca]] <code>libc</code> la que implementa la API POSIX, igual que en Linux, y Hurd da una interfaz cercana pero de más bajo nivel.
Línea 115:
* [http://l4ka.org/ Sitio web oficial del micronúcleo L4] (inglés)
* [https://web.archive.org/web/20110725012919/http://www.archhurd.org/ Port GNU/Hurd de la distribución ArchLinux] (inglés)
* [https://web.archive.org/web/20110722113555/http://softlibre.barrapunto.com/softlibre/11/07/19/0751226.shtml Hurd ya está aquí, pero no sorprende] comparativa Linux versus Hurd
* [http://www.muylinux.com/2013/05/22/quieres-probar-debian-gnuhurd-hay-nueva-version/ Lanzamiento de la primera versión oficial de Debian GNU/Hurd del 22 de mayo de 2013]
* [http://www.gnu.org/software/hurd/news/2013-05-debian_gnu_hurd_2013.html Lanzamiento de la primera versión oficial de Debian GNU/Hurd] (inglés)
 
{{Control de autoridades}}
 
[[Categoría:Núcleos de sistemas operativos]]