tiriwolfgang: va a dar una presentacion acerca de GNU HURD, el descubrio HURD en 1999 u a dado bastantes conferencias desde aquella
tiriporfavor redirigir las preguntas en #qc, en aleman en #taee, en español en #redes
tiriVOy a hablar acerca de HURD, y explicare por que GNU lo desarrolla, apesar de existir un kernel maduro y popular para el sistema GNU, que es porsupuesto Linux
tiriHURD, no es un kernel. Junto con la libreria GNU C (glibc) y el microkernel GNU MAch, provee la funcionalidad y tradicionallidad de un kernel UNix
tiriEstos tres componentes juntos con el resto del sistema gnu (que incluye gcc, GNUME, etc, y el resto de software No-GNU como X11) proporcionan un Sistema Opreativo conforme a POSIX
tirien este punto, algunas notas de terminologia
tiriGNU Hurd (o simplemente Hurd) es el nombre de nua parte del sistema. GNU/Hurd es el mismo nombre para el sistema entero. TU puedes pensar en GNU/Hurd como "El sistema basado en HURD GNU)
tiribasicamente el sistema funciona como acontinuacion:
tirilas aplicaciones del mundo UNix (Yo las llamare aplicaciones conformes a POSIX) usan funciones de la libreria C donde ellas podrian usar llamadas al kernel Unix en un tradicional Unix. Estan son funciones basicas como read() write(), fork(), etc
tirila libreria C comunica con los servidores Hurd para implementar esas funciones
tiripero los servidores Hurd no son especiales de ninguna manera, son simplemente programas. pero ellos tambien pueden usar la libreria C
tiriyo puedes pensar en esos servidores-Hurd como demonios
tiris/yo/yu
tiritenemos un servidor que implemente el sistema de ficheros ext2
tiriotro que implementa el protocolo TCP/IP
tiritambien tenemos un servidor que implemente /dev/null
tiria pequeña nota acerca de la especificacion POSIX
tirialguna gente piensa que incluso Windows NT es conforme a POSIX
tiripero no es realmente el caso. Solo implementa algunas partes _muy_ basicas de POSIX
tiridonde GNU/Hurd es completamente conforme a POSIX.
tiribien, chinches de modulos naturalmente
tiri:)
tiriesto es un punto muy importante: de momento somos compatibles, es decir, tu puedes usar todos los programas libres que quieras en GNU/Hurd. Al menos si estan escritos en algo portable
tiripero, GNU/Hurd es una combinacion de compatibilidad y nuevos conceptos
tiripero conocemos acerca los nuevos conceptos
tirios, espera, olvide algo :)
tirie olvidado bastante, Primero quise hablar de la historia y motivacion que hay detras de Hurd
tiricomo tu probablemente sepas, RIchard Matthew Stallman empezo a desarrollar el sistema GNU en 1984
tiriel principal objetivo era que fuese libre, para ser superior a los sistemas propietarios moralmente, socialmente y eticamente
tiripero tambien fue un objetivo tecnico mejor
tirisi tu comparas el software GNU con el software de Unix, tu estaras notando de que. El software Unix suele tener limites arbitrarios. Por ejemplo, en muchos softwares unix, las lineas de entradas no pueden ser mas largas de 1024 caracteres pero pueden ser trucadas
tiribien, tenemos una pregunta: <riel> Es posible ejecutar software no libre en Hurd?
tirisi es posible, pero no creo que nadie quiera hacer eso ahora
tirino somos completamente binariamente compatibles con GNU/Linux, es decir, tu no puedes usar la mayoria de los programas no libres actualmente. Hay muchas razones tecnicas que pueden ser problematicas al ABI (Aplicacion binaria Interface)-compatible con el, puedo decir mas acerca de esto mas tarde si estas interesado
tirisi, es suficiente, puedes comunicarte con los servidores Hud directamente, desde que pudes usar Metodos de Llamada remotos para comunicarte con ellos. es decir no hay enlaces involucrados
tiri nosotros tenemos otra pregunta: bien, ser capaz a, y ser
tiri                 legalmente permitido a, es cosas diferentes.. es el lgpl-ness
tiri                 de glibc suficiente a escudo todos programas desde GPL
tiri                 "enlazando" clausula (para usar los hurd servidores)?
tiribien, volviendo al tema original: las limitaciones arbitrarias de los programas Unix y como GNU trata de hacerlo mejor
tirien realidad, el diseño entero de Hurd esta basado en la idea de no imponer limitaciones arbitrarias a los usuarios
tiries decir, si tu tienes una imagen ISO en un cd-rom, tu puedes montarlo desde el fichero el cd coimo un usuario sin necesidad de permisos especiales. no hay problema desde que el servidor iso9660fs se ejecutara como tu user-ide. es justo un programa que ejecutaste
tiripero tu puedes hacer mas cosas que solo esto
tirien realidad, si tu cambias todos los aspectos de un sistema como tu quieres. Puedes crear tu propio mundo, usando componentes-POSIX donde tu quieras y tus propios componentes
tirisi no
tiritenemos una pregunta  <sarnold> hay problemas de seguridad permitiendo a los usuarios modificar el espacio de nombre del sistema de ficheros? o es el usuario haciendo el mount que solo el usuario puede verl el sistema montado?
tirihay mucho acerca de lo que puedo decir sobre eso
tiriy aqui sigue:  <sarnold> si es asi, que pasa si dos usuarios tratan de montar el mismo punto de montaje? (suena como un problema...)
tirivoy a tratar de responder ala segunda pregunta primero, es mas facil :)
tiritu puedes montar solo algo en un nodo como quieras. pero dos usuarios tratando de usar el mismo nodo es imposible
tirieso parcialmente responde ala primera pregunta tambien
tiritu solo puedes usar en tu directorio home (o en otros lugares como /tmp /var/tmp por supuesto) pero esto no es una restrincion, desde que tu tambien puedes estar tu propia copia completa Hurd, tu puedes tener tu propio sistema de ficheros root (que otros no pueden ver) que tu puedes modificar como quieras
tiritenemos una pequeña interrupcion aqui. <Arador> y tu puedes montar algo (una imagen iso en un nodo loop por ejemplo) para N usuarios?
tiriNo estoy seguro de si hay alguna manera simple de hacerlo actualmente. Definitivamente es posible cambiar tu propia configuracion de autentificacion de servidor. pero no es el mismo trabajo, pero es posible
tirisimplemente todo es algo que puede funcionar como una taera, simplemente empezamos a trabajar en algun punto del futuro
tirivolviendo ala pregunta acerca de fallos de seguridad
Aradordesde que puedes poner cosas aleatorias en la parte del sistema de archivos que te pertenece, podrias meter a alguien en una trampa si accede a tu parte del sistema de ficheros
AradorPor ejemplo, si pones un sistema de ficheros en tu directorio raiz que sea puramente virtual (pensad en /proc de GNU/Linux) y crea un directorio sinfin dinamicamente, podria ser dificil para al administrador borrar tu directorio raiz cuando borre tu cuetna ;)
Aradorasique tendria qeu borrar todos tus archivos propios primero.
AradorSI hace eso, todo va bien
AradorEste es un simple hecho que tienes que pagar cuando permitese a los usuarios cambiar su entorno. La gente solo necesita estar al tanto de que se puede cambiar el entorno
Aradorpero adivino qe una persona que no hace esa cosa basica en un sistema mejor no deberia administrar un sistema con varios usuarios
Aradoruna pregunta: <sarnold> hay una manera facil de prevenir que los usuarios monten nuevos sistemas de ficheros por parte del administrador, para evitar cosas como while true; do mount; done ?
tiriSI tu ejecutas un servidor de sistema de ficheros, el se ejecuta como tu proceso, esta pregunta es vasicamente como "puede el administrador parar a los usuarios de ejecutar muchos procesos" y porsupuesto eso es posible. Incluso es posible hacerlo en Unix. No estoy seguro si esta implementado en GNU/Hurd todavia.
tirisi deseas prevenir _generalmente_ a tus usuarios de sus propios servidfores, es muy facil
tiriusa un sistema de ficheros para /home que no soporta esto. Tu puedes crear ese sistema de ficheros facil. En realidad, algunas presonas lo hacen accidentalmente cuando instalan Debian GNU/Hurd y entonces olvidan por que algunas cosas no funcionan
tiri;)
tiriosea que, GNU/Hurd trata de no imponer limites en el usuario si eso puede ser avolido. Es suficientemente malo que si el hardware es limitado, por que deberiamos añadir mas restrinciones al software? :)
tiri(excepto para los casos donde nosotros _queremos_ limitar esas cosas por metodos de seguridad)
tiriy puede haber otro pequeño aspecto en el sistema: La filosofia UNix dice que todos los prorgamas deberian de ser simples y flexibles y que se debieran de combinar. Eso es lo que se a conseguido en Hurd, el kernel Unix en realidad viola este principio, como hace en scheduling, soporte de hardware, sistemas de ficheros, protocolos de red, y demas cosas..
tiriesto significa que los diseñadores de Unix fueron tontos, porsupuesto :) ellos son actualmente normales xD
tiriellos tenian que diseñar Unix para ordenadores menos potentes que una tipica calculadora de hoy. es necesariamente simple para hacerlo de esa manera
tirien hurd, pensamos que ahora es tiempo de repensar esas viejas decisiones, todo a cambiado mucho desde aquella
Aradordesde entonces. De vuelta, los sistemas de archivos definidos por el usuarios no eran posibles, asique nadie los pidio, pero hoy, todo el mundo los quiere, y hay varias aproximaciones a ellos
Aradorel VFS de gnome es un ejemplo, los ioslaves de kde son otro. Libferris es todavia otro
Aradortodos estos tiene algo en comun: estan haciendo cosas de una manera que limita su usabilidad: tienes que escribir tus propis programas para usarlos. Los programas existentes no se benefician
AradorY lo que es la mayor ventaja de hurd: lo hacemos todo a nivel del sistema de archivos, asique no necesitas modificar ninguna aplicacion POSIX para beneficiarte de las caracteristicas de Hurd!
Arador*wolfgang encuentra esto tan emocionante
Aradorbien, ahora vamos a ejemplos concretos
Aradordesde luego, tenemos sistemas de archivos como ext2fs, ufs y fatfs
Aradory adicionalmente a estos sistemas de archivos de almacenamiento, tenemos sisyemas de archivos como nfs y ftpfs
Aradoreste ultimo es muy bonito, puedes hacer "tail -n 2 /ftp/ftp.debian.org/pub/welcome.msg" y cosas como esta
Aradoralgunas personas ven problemas en esos con cosas como "algunas operaciones como añadir a un archivo son terriblemente ineficintes sobre ftp" Eso es verdad, pero si lo consideras un problema, no lo uses :) a pesar de todo, es util tenerlo
Aradortenemos una pregunta: <Arador> como maneja ftpfs cosas como "contraseña incorrecta" y "timeout" a las aplicaciones POSIX?
Aradorbien, adicionalmente a estos sistemas de archivos tenemos otros virtuales como GNU/Linux tiene /proc y devfs
Aradorpero hay mas que eso
Aradorun servidor puede disponer a un solo nodo, como /dev/null o /dev/random
Aradory tenemos uno en particular: " el traductor "run" (oh, he olvidado mencionar que los servidores que residen en el sistema de archivos se llaman tambien traductores)
Aradorcuando ejecutas "run", lo provees con un comando shell. Cuando abres el archivo donde "run" esta, ejecutara ese comando, y cuando lo leas de el conseguiras la salida de ese comando
Aradorasique le puedes decir que ejecute "fortune", en cada "cat foo" mostrara una nueva "fortune"
Arador(que puede usarse para generar firmas aleatorias para emials - o para lo que quieras)
Arador<vegai> wolfgang: En ese ejemplo, "foo" es un traductor, correcto? <vegai> el traductor-run, eso es
Aradorsi, es el nodo donde el traductor descansa, por ejemplo "puntodemontaje"
Aradortodo esto seria bonito, pero todavia hay mas posibilidades
Aradorun traducto no necesita implementar el protocolo del sistema de archivos. Puede implementar cualquier protocolo
AradorPor ejemplo, la pila IP implementa la interfaz de sockets, obviamente
Arador<sarnlod> Se ejecuta el traductor con privilegios de quien quiera que ejecute "run" o a quien quiera que haga el read(2)?
Aradorun traductor siempre se ejecuta con los privilegios del usuario del nodo que traduce (el "puntodemontaje")
Aradorasique los permisos necesitan estar bien, como siempre
Aradorhay una razon simple para eso
Aradorsi iso9660 traduce /cdrom (o /mnt/cdrom si lo prefieres) entonces necesita acceder a /dev/cd0. Lo mismo para otro sistema de archivos: si tienes un etx2fs en /var, ese servidor necesita poder escribir a por ejemplo /dev/hd0s3. Y por supuesto los usuarios no deberian estr permitidos a usar eso directametne
Aradorvale, la utlima cosa que mencione fue la pila IP, que provee la interfaz de sockets (y esta disponible en /servers/socket/inet y - si quieres ir por numero de protocolo en vez de por nombre - /servers/socket/2)
AradorPor supuesto no est as limitado a las interfaces que Hurd usa. Puedes usar tus porpias interfaces, y simplemente usar el sistema de archivos como espacio de nombres para el "apreton de manos" entre un servidor y sus usuarios
AradorSolo piensa por ti mismo un poco sobre lo que puedes hacer con todo eso. Estoy seguro de que podas venir con algunas interesatnes ideas. No hay problema de si hay sistemas de archivo virtuales, nodos unicos o cosas completamente diferentes
Aradoruna pregunta <vegai> que ahy sobre la independencia de lenguaje? es C la unica opcion para codificar traductores?
Aradorhace mucho tiempo, alguien escribio un modulo para escribir traductores en perl ( e implemento uno con el, pero no uno util ;-))
Aradorpero en general, se neceseita mucho trabajo para hacer conveniente escribir traductores varios en cualquier lenguaje
AradorEsto muy interesado en eso yo mismo, pero actualmente otras cosas son ciertamente mas urgentes
AradorAsique si alguien esta interesado en eso, no dudeis en contactar conmigo
Arador<sarnold> Si no te importa (je je, debes estar cansado de mi :) Cual es lo mas importante en la lista de cosas por hacer?
Aradorno estoy seguro de que esa lista entre en memoria :)
Aradorbien, creo que tenemos algunas listas online incluso, esperad un segundo
Aradorunas pocas cosas muy urgentes estan listadas en  http://hurd.gnufans.org/bin/view/Hurd/GNUHurdStatus
Aradortenemos una pregunta muy interesante: <mentor> tanto como puedo ver: esencialmente los traductores/servidores  HURD  proveen un servicio en un contexto diferente (contexto de procesador, de seguridad y otros conextos que mantiene el microkernel); seria considerando util implementar servicios de una manera que los contextos especificos se puedan elegir para segregarlos?
Aradorbien, los traductores estan mas alla que eso :) entonces permite cambiar tu entorno como quieras (y los usuarios experimentados normalmente quiern que su entorno se encaje a sus necesidades mejor), pero seguro, la separacion es tambien un punto. Sin embargo, no estoy seguro a) como tu propuesta  podria ser implementada, no ya en Hurd sino en cualquier parte, y b) cual seria la ventaja de ses aproximamiento
Aradorbien, entonces dare un ejemplo mas de una caracteristica interesante. y una muy nueva de hecho
Aradorla nueva implementacion de la consola
Aradorahora, tenemos un servidor de consola (un traductor) que provee un directorio para cada consola virtual
Aradorpuedes adherir un cliente de consola a el, que envia el archivo de "entrada" en el directorio de la consola virtual, y consige los contenidos del "display" en el mismo directorio
Aradorel cliente no necesita sondear los datos del display: simplemente requiere notificar cambios, una caracteristica que se provee por sistemas de archivos de almacenamiento normales como ext2fs. Eso por otra parte podria ser bastante interesante para implementar como Sistema de Deteccion de Intrusos
tirila cosa buena es acerca de esta implementacion de consola es que tu puedes añadir multiples clientes al mismo servidor
tiriasi que puedes trabajar en un ordenador, despues ir a otro ordenador, ssh en la red al primero y ser capaz de coger tus consolas originales - todas ellas
tiriNo pienso que necesite mencionar que la consola soporta unicode dondesea etc.
tiriPienso que la nueva consola es un buen ejemplo de como el diseño de Hurd puede ser usado para implementar cosas nuevas poderosas
tiriOk, ahora voy a concluir refiriendome a http://hurd.gnu.org/  http://www.debian.org/ports/hurd , http://hurd.gnufans.org/ y por supuesto  http://hurd.es.gnu.org/ . Para mas informacion ¿alguna pregunta?
tiri* wolfgang podria seguir hablando acerca de los servidores de Hurd durante bastantes dias :)
tiri <vegai> Estoy impresionado, que el microkernel actual esta limitado en varias cosas, y esta siendo reemplazado por L4. QUe causara esto en el actual Hurd?
tiriMach fue un microkernel de primera generacion, es decir, ciertamente no es perfezto.
tiride todas formas, hay planos para cambiar L4 de alguna menra en el futuro, pero estan lejos de aqui. Hurd es lo ultimo incluso cuando se ejecuta en Mach :)
tiripara Hurd, significara que sera mejor, verdaderamente. y podremos cambiar algunas partes especificas de Mach. Afortunadamente dependemos de la semantica Mach en algunos lugares
tiriI ya se termino

Generated by irclog2html.pl 2.1 by Jeff Waugh - find it at freshmeat.net!