Quantcast
Channel: Sistemas Operativos - Artículo de la Semana
Viewing all articles
Browse latest Browse all 56

GNU Hurd

$
0
0

GNU Hurd 

 

GNU Hurd 0.6 ya está aquí. Se trata de la nueva versión de un proyecto que viene de lejos, antes de Linux. El proyecto GNU necesitaba un kernela y fue entonces cuando comenzó la semilla de lo que hoy es Hurd. Con la llegada de Linux, GNU disponía de un kernel y Hurd se dejó en un segundo plano para ahora recuperarse. 

GNU Hurd 0.6 en realidad es un conjunto de programas servidores que simulan un sistema operativo Unix. Se trata por supuesto de software libre, puesto que pertenece al proyecto GNU y se distribuye gratuitamente y bajo licencia GPL. Y aunque pretende superar a Unix en cuanto a funcionalidad, seguridad y estabilidad, aun es un desconocido y no tiene tanta aceptación como Linux. 

Hurd es el acrónimo de Hird of Unix-Replacing Daemons, es decir, “Hird demonios que reemplazan a Unix”. A su vez, Hird significa “Hurd of Interfaces Representing Depth”, o “Hurd de interfaces que representan profundidad”. Todo un juego de palabras que en inglés americano se pronuncian de forma similar a “herd” o “manada”. Por tanto GNU Hurd podría ser algo así como “una manada de ñúes”.

Aunque el Proyecto GNU se refiere a Hurd como núcleo, en sentido estricto esto no es correcto, dado que parte importante de Hurd reside en espacio de usuario, interactuando con un micronúcleo (GNU Mach). De hecho, Hurd es un sistema operativo, como el núcleo Linux (como el mismo indica, el Proyecto GNU se refiere a GNU y GNU/Linux usando el término sistema operativo como equivalente de distribución).


Volviendo a Hurd 0.6, viene con mejoras en la integración del micronúcleo GNU Match y poco más, además de alguna limpieza del código fuente. Por el momento ni siquiera cuentan con soporte para 64 bits, solo x86-32 por el momento. Así que si estás interesado, puedes descargartelo o involucrarse en el proyecto.

En la actualidad existen distribuciones que utilizan el kernel Hurd en sustitución de Linux en algunas ediciones especiales, como ocurre con Debian kFreeBSD que se basa en FreeBSD en vez de Linux, pues también existe ArchHurd, Debian GNU/Hurd, etc.

Los desarrolladores del proyecto GNU han hecho pública la nueva versión del núcleo para sistemas operativos que sobrevivirá a la humanidad, y esta vez no es broma: GNU Hurd 0.6 aparece dos años después de que lo hiciera su anterior versión. 

De acuerdo al anuncio de lanzamiento que publican en Gmane, las novedades destacadas de GNU Hurd 0.6 contemplan una limpieza del código, mejoras en la integración con el micronúcleo GNU Match en el que Hurd se sustenta y poca cosa más. Muy poca cosa, a decir verdad, y es que tanto GNU Hurd como GNU Match aún se mantienen apegados a la arquitectura x86 con soporte solo para 32-bit

GNU Hurd, el kernel con que el la Free Software Foundation y el proyecto GNU querían y querrían sustituir a Unix y Linux respectivamente, no es alternativa de nada en la actualidad, aunque sí puede resultar de interés para programadores que deseen involucrarse en un proyecto de software libre y aprender, y de hecho la lista de ideas a implementar -y solo mirando al Google Summer of Code- es considerable. 

En cuanto a lo del núcleo que sobrevivirá a la humanidad, si alguien no ha pillado la broma, es porque todavía no conoce la fecha de lanzamiento de GNU Hurd De su versión final, se entiende.

GNU Hurd, el núcleo desarrollado por la Free Software Foundation para algún día sustituir a Linux y conformar el sistema operativo libre definitivo, ya tiene fecha de lanzamiento, según adelantan en xkcd.

Imaginamos que la información la han conseguido por medio de algún oráculo, vidente o viajero en el tiempo, pues no hemos encontrado el dato en ninguna de las páginas del proyecto. Sin embargo, la previsión parece bastante sólida a juzgar por el “calendario” presentado.

GNU Hurd se ejecuta en máquinas x86 de 32 bits. Una versión que se ejecuta en 64 bits x86 Máquinas (x86_64) está en curso. Los voluntarios interesados en los puertos de otras arquitecturas se buscan; por favor póngase en contacto con nosotros (véase más adelante) si había gustaría ayudar.

Para compilar el Hurd, se necesita un conjunto de herramientas configurado para apuntar i 86-gnu?; usted no puede utilizar una cadena de herramientas focalización GNU / Linux. También tenga en cuenta que no se puede ejecutar el Hurd "aisladamente": tendrá que añadir otros componentes como el microkernel GNU Mach y la biblioteca GNU C (glibc), para activar en un sistema ejecutable.

Versión 0.6 (10/04/2015)

Numerosos limpiezas y correcciones estilísticas de la base de código. Varios problemas han sido identificados mediante el análisis estático y hacer ejercicio Herramientas, y posteriormente han sido corregidos.

El mensaje despachar código en los servidores Hurd ha sido mejorada.  Entre otras cosas, ahora hacemos uso de las cargas protegidas  Introducida en GNU Mach 1,5.

El gz incrustado y código descompresor bz2 se ha eliminado, y libz Libbz2 se utiliza en su lugar

La herramienta fakeroot nativa se ha mejorado mucho y ahora es capaz de Construir muchos paquetes. Las herramientas portinfo y rpctrace ahora ofrecen una  Mejor experiencia de depuración.

El rendimiento de la biblioteca hashing número entero ha sido mejorada

El servidor de inicio ha sido dividido en el servidor de inicio (el manejo temprano  Arranque y cierre del sistema), y un programa de inicio de estilo SysV (acertadamente  Llamado `init ').

Los procfs y traductores al azar se han fusionado.

Historia de 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.

Arquitectura

A diferencia de la mayoría de núcleos tipo Unix, Hurd se erige encima de un micronúcleo (actualmente sólo está soportadoMach, aunque existió un proyecto ahora discontinuado 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/1NEXTSTEPMac OS XLites yMkLinux. 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 éste para dedicarse al sistema operativo en su totalidad. Hurd intenta, además, ser portable entre micronúcleos.

Arquitectura de los servidores

Según la documentación de Debian son los siguientes:1

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/HurdGentooArch HurdBee yA.T.L.D. GNU/Hurd), aunque ninguna ha publicado versiones oficiales.

Ventajas del Hurd 

El Hurd no es el núcleo más avanzado del planeta (aún), pero tiene algunas características tentativas: 

Es software libre 

Cualquiera puede usarlo, modificarlo, y redistribuirlo bajo los términos de la «GNU General Public License (GPL)». 

Es compatible 

EL Hurd provee un entorno de usuario y una programación amigable. Para todas las intenciones y los propósitos, el Hurd es un núcleo moderno del tipo Unix. El Hurd usa la «GNU C Library», cuyo desarrollo está cercano a estándares como ANSI/ISO, BSD, POSIX, Single Unix, SVID, y X/Open. 

Está creado para sobrevivir 

A diferencia de otro popular núcleo, el Hurd tiene una estructura orientada a objetos que le permite evolucionar sin comprometer su diseño. Esta estructura ayuda al Hurd para que sobrepase un rediseño total y modificaciones sin tener que ser completamente reescrito. 

Es escalable 

La implemetanción es agresivamente multitarea para que así se ejecute eficientemente en procesadores simples y multiprocesadores simétricos. Las interfaces del Hurd están diseñadas para permitir clústeres de red transparentes (colectivos), aunque esta característica no ha sido implementada todavía. 

Es extensible 

El Hurd es una plataforma atractiva para aprender a convertirse en hacker del núcleo o para implementar nuevas ideas en la tecnología del núcleo. Cada parte del sistema está diseñada para ser modificada y extendida. 


Es estable 

Es posible desarrollar y probar nuevos componentes del núcleo Hurd sin reiniciar la máquina (ni siquiera accidentalmente). La ejecución de tus propios componentes del núcleo no interfiere con otros usuarios, y no se requiere de ningún privilegio especial del sistema. El mecanismo para las extensiones del núcleo es seguro por el diseño: es imposible imponer tus cambios para los otros usuarios a menos que tengas su autorización o que tú seas el administrador del sistema. 
existe 

El Hurd es software real que funciona. No es un proyecto de investigación o un propósito. No tienes que esperar para empezar a usarlo y a desarrollarlo. 

Estado del proyecto 

El Hurd, junto al micronúcleo GNU Mach, la GNU C Library y otros programas GNU y non-GNU en el sistema GNU, provee un sistema operativo básicamente completo y usable. No está listo para su uso en producción, ya que todavía tiene muchos bugs y le faltan características. Sin embargo, debería ser una buena base para desarrollo en el futuro y uso de aplicaciones no críticas. 

El sistema GNU (también llamado GNU/Hurd) es completamente autocontenido (puedes compilar todas las partes usando GNU). Puedes ejecutar varias instancias del Hurd en paralelo, e incluso corregir servidores críticos en una instancia de Hurd con gdb ejecutándose en otra instancia de Hurd. Puedes ejecutar el X window system, aplicaciones que lo usen, y aplicaciones de servidor avanzadas como el servidor web Apache. 

En el lado negativo, el soporte para dispositivos (como tarjetas de sonido) es bastante pobre. Aunque la interfaz POSIX está implementada, algunas interfaces adicionales como la memoria compartida POSIX o semáforos están todavía en desarrollo. 

Todo esto se aplica a la versión en desarrollo actual, y no a la última versión (0.2). Animamos a todo el mundo que esté interesado a probar nuestra última versión de desarrollo, y a que envíen opiniones a los desarrolladores del Hurd. 


Viewing all articles
Browse latest Browse all 56

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>