Miguel de Cervantes y Saavedra - Don Quijote de la Mancha - Ebook:
HTML+ZIP- TXT - TXT+ZIP

Wikipedia for Schools (ES) - Static Wikipedia (ES) 2006
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Hurd - Wikipedia, la enciclopedia libre

Hurd

De Wikipedia, la enciclopedia libre

GNU Hurd es un kernel tipo Unix (realmente no es un kernel, sino un conjunto de programas servidores que simulan un kernel unix) que establece la base del sistema operativo GNU. El Proyecto GNU lo ha estado desarrollando desde 1990 como software libre, distribuyéndolo bajo la GPL. Hurd intenta superar los kernel tipo Unix en cuanto a funcionalidad, seguridad y estabilidad, aun manteniéndose compatible con ellos. Esto se logra gracias a que Hurd implementa la especificación POSIX (entre otras), pero eliminando las restricciones arbitrarias a los usuarios.

Tabla de contenidos

[editar] Arquitectura

A diferencia de la mayoría de kernels tipo Unix, Hurd se erige encima de un microkernel (actualmente sólo está soportado Mach), responsable de facilitarle los servicios de un kernel más básicos: coordinar el acceso al hardware (a la CPU —mediante multiproceso—, a la RAM —mediante gestión de memoria—, y a otros dispositivos de sonido, gráficos, almacenamiento, etc). Actualmente se está usando GNU Mach como microkernel, pero se estuvo trabajando para poder ejecutar Hurd en el microkernel de segunda generación L4. Se espera que el microkernel Coyotos esté listo dentro de poco y sea la base de la próxima generación del Hurd (HurdNG).

Hay otros sistemas tipo Unix que se ejecutan encima del microkernel 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 kernel monolítico de los sistemas Unix tradicionales con dos elementos, el microkernel 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. De aquí se deriva el doble acrónimo recursivo: la palabra 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 se pronuncian como herd (en español: manada), por lo que GNU Hurd se podría traducir como «manada de ñúes».

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 microkernel Mach (aunque QNX es similar, pero basado en su propio microkernel). No está claro por qué no hubo ninguna implementación de múltiples servidores anterior, 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 microkernels.

[editar] 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.

Por lo que respecta al sistema de ficheros, se puede establecer un programa adecuado como traductor para un solo fichero o una jerarquía de directorios entera. Cada acceso al fichero traducido, o a los ficheros en la jerarquía en el segundo caso, son de hecho manejados por este programa. Por ejemplo, un traductor de ficheros puede simplemente redirigir las operaciones de lectura y escritura hacia otro fichero, no como un enlace simbólico de Unix. El montaje de Unix, en Hurd se consigue configurando un traductor de sistema de ficheros (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 ficheros 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 ficheros 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.

Hurd necesita un gestor de arranque compatible con multiarranques, como GRUB.

[editar] Arquitectura de los servidores

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

  • auth: El servidor de autenticación. Se le envían pares usuario/password y él devuelve un token. Juega un papel importante ya que todos los otros servidores exigen que se les presente algún token de los que auth reparte o rechazan la llamada que se les pide.
  • crash: Servidor para gestionar aplicaciones que mueren
  • exec: servidor para la llamada exec
  • ext2fs: Servidor ext2fs
  • fifo: Traductor fifo
  • firmlink: Traductor firmlink
  • ftpfs: Traductor del sistema de archivos ftp
  • fwd: Servidor fwd
  • hostmux: Servidor hostmux
  • ifsock: Servidor ifsock
  • init: Servidor init
  • isofs: Servidor del sistema de archivos iso
  • magic: Servidor magic
  • new-fifo: Servidor new-fifo
  • nfs: Servidor nfs
  • null: Servidor null
  • pfinet: Servidor pfinet
  • pflocal: Servidor pflocal
  • proc: Servidor de procesos
  • storeio: Traductor de almacenamiento
  • symlink: Traductor de enlaces simbólicos
  • term: Servidor de terminal
  • ufs: Servidor de ufs
  • usermux: Servidor usermux

Entre todos ellos implementan la interfaz o API Single Unix Specification que es un superset de POSIX. En realidad, es la librería libc la que implementa la API POSIX, igual que en Linux, y Hurd da un interfaz cercano pero de más bajo nivel.

La forma de los programas de llamar al hurd es a través del sistema de ficheros. Funcionan como un sistema de ficheros 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 ficheros es el que hace de interfaz del API también y 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 ficheros, el programa recibe un ID que se llama en argot del hurd "port" [2] y que se comporta como un punto de entrada al fs (algo como un par de números major/minor en linux).

La arquitectura de Mach obliga a que los drivers para los distintos dispositivos hardware vayan compilados dentro del microkernel. Por tanto Hurd no necesita llevar el mismo la gestión de bajo nivel de las interrupciones. En cambio sí que necesita traducir las señales hardware a señales del sistema operativo.

[editar] Como arrancarlo

Necesitaremos un boot loader que sea multiboot compliant, como GRUB. Haremos los siguientes pasos (o configuraremos el boot loader para que los haga automáticamente)

  • Cargar el microkernel en memoria
  • Cargar un script para que el microkernel arranque el hurd. Puede arrancarse a mano o cargase 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.
  • Darle el control al microkernel, que debe estar capacitado para ejecutar scripts

Con esto, el microkernel cargará los servidores del hurd y les pasa el control

[editar] Historia del desarrollo

El desarrollo de Hurd empezó en 1990.

Aunque Richard Stallman, del proyecto GNU, había anunciado que esperaba el lanzamiento oficial del SO GNU (también conocido como GNU/Hurd) antes de finales de 2002, esto no fue conseguido.

En 2004, Hurd tiene un desarrollo lento y algunas limitaciones hardware importantes (por ejemplo, la carencia de sonido). Gracias al creciente apoyo del proyecto Debian, entre otros, estas limitaciones están siendo eliminadas. La próxima transición al microkernel L4 (y el intento de hacer Hurd independiente del microkernel sobre el que se ejecute), aunque exigirá un rediseño de varios elementos de Hurd, podría empezar a acelerar su desarrollo. Una vez que Hurd haya superado sus importantes limitaciones actuales, se espera que sea un kernel realmente funcional para los sistemas GNU.

[editar] Distribuciones que usan HURD

Actualmente, hay al menos tres distribuciones de GNU/Hurd en preparación, aunque ninguna ha sido oficialmente publicada a parte de para gente interesada en su prueba y desarrollo. Sólo existe una distribución popular que use HURD que es una versión de GNU/Debian. No existe ningún howto sencillo para hacer que HURD corra sobre otras distribuciones, ya sean Red Hat, Mandrake, Gentoo, ...

[editar] Hurd NG

Se está intentando crear una nueva versión del Hurd llamada NgHurd, este proyecto comenzó con un intento de portar el microkernel 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 microkernel a utilizar.

[editar] Limitaciones

Estas son algunas de las limitaciones conocidas del HURD

  • El tamaño maximo de la partición es de 2GB utilizando el sistema de archivos ext2, esta restricción no existe con fat16.
  • Los drivers de la versión actual de GNUMach se corresponden con la versión 2.0 del kernel de Linux.
  • El maximo de memoria ram aceptada es de 768 MB, si se dispone de mayor cantidad de memoria se debe usar el comando uppermem del GRUB.
  • No existe aun soporte para clientes audio, USB, PPP ni clientes DHCP.


[editar] Véase también

[editar] Enlaces externos

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com