sarnold(hmm, looks like ismak is doing his presentation in english in #linux :)
raulhola...
raulbuenas noches ;-)
raulbien, esta es una introduccion a User Mode Linux
* Playing 'ismak.txt' to #redes with 7000ms delay
> An Introduction to
> User Mode Linux
> I - Introducción
> Esto es una pequeña introducción a User Mode Linux (UML). Basicamente es
raulpara, q no es aqui
> una recopilación de la documentación del proyecto, que podeis encontrar en la web
> del proyecto (http:/user-mo e-linux.sourceforge.net).
> Explicaré que es UML, alguna descripción de para que los está usando la gente, sus
> características y como puedes instalar UML.
> . - Ejecutar Linux dentro de si mismo
> Podemos leer una pequeña descrición de que es UML en al web del projecto
> (http://user-mode-linux.sourceforge.net):
> " User-Mode-Linux es una forma segura de ejecutar Linux dentro de si mismo.
> Te provee de una máquina virtual que puede tener más hardware y software virtual
> que tu maquina real. El almacenamiento de disco se realiza completamente en un
> fichero almacenado en tu disco duro. Puedes controlar el acceso de la máquina virtual
> al hardware que tu desees, nada que hagas en la máquina virtual puede dañar datos
> o software de tu sistema real"
> Esto parece entretenido. Podemos tener un Linux dentro de nuestro propio Linux, y
> podemos hacer lo que queramos, porque es como otro sistema. UML te permite
> ejecutar Linux como un proceso normal dentro del sistema real.
> Básicamente, UML es el
Aradorel porte del kernel linux
Aradora la interfaz de las llamadas del sistema de linux
Aradoren vez de directamente al hardwre
Aradorque significa esto?
Aradortrata a Linux como una plataforma en la cual el kernel puede ser portado, como las plataformas Intel, Mips, Alpha
AradorTodos los dispositivos accesibles dentro de la maquina virtual son virtuales y UML soporta uel amplio rango de dispositivos soportados  por linux, como
Arador- Consola y lineas serie
Arador- Dispositivos bloque
Arador- Dispositivos de red
> <ismak> | Process 1 | Process 2 | ...|
AradorNormalmente el kernel Linux habla hacia el hardware (tarjeta de red, de video, de sonido...) y cualquier programa que halal en el sistema pregutna al kernel para operar con el hardware
Arador +-----------+-----------+----+
Arador| Process 1 | Process 2 | ...|
Arador+-----------+-----------+----+
Arador|        Linux Kernel         |
Arador+------------------------------+
Arador|        Hardware            |
Arador+------------------------------+
> <raul> El kernel de UML no habla con el hardware, habla con un kernel Linux "real" (el kernel del sistema donde esta corriendo nuestro UML) como cualquier otro programa. Esto significa que los programas pueden ejecutarse dentro de UML como si estuvieran ejecutandose en un kernel normal, como esto:
> <raul> +-----------------+
raul          | Proceso 2 | ...|
raul +-----------+--------------------+
raul |Proceso 1 | User-Mode Linux |
raul+---------------------------------+
raul |     Kernel Linux              |
raul +---------------------------------+
raul  |        Hardware               |
raul +---------------------------------+
Aradoralgunos de los beneficios de UML son:
Arador- SI user mode linux se cuelga, el sistema que ejecut aUML todavia esta bien y no puede ser dañado por el cuelgue de UML
Arador- user mode linux puede ser ejecutado por usuarios no root
racieluml puede ejecutarse como otro proceso así que puede depurarse.
racielpuedes utilizarlo para probar nuevas aplicaciones, nuevos kernels, nuevas distribuciones (ejecutar diversas distribuciones simultaneamente)
racielII. para qué la gente lo utiliza?
> II - What are people using it for? (wait for the translator)
racielhosting virtual
> podemos usar UML para Virtual hosting. UML nos provee de un sistema completo Linux, asi que podemos ejecutar cualquier cosa q pueda ejecutarse en nuestro host.
> <raul> Un ejemplo de un virtual hosting es usermodelinux.org, administrado por David Coulson, que esta ejecutandose en un sistema User Mode Linux.
raul-------------------------------
raulDesarrollo y debugging del kernel
raulEste es un buen metodo para depurar el kernel. Si nuestro sistema UML falla, el sistema q esta ejecutando UML continuan bien, nuestro sistema no es dañado.
jacoboPodemos utilizar programas de depuración como gdb, gprof y gcov. El desarrollo de los controladores es más eficiente, porque no tenemos que reiniciar la máquia, lo que reduce el tiempo de desarrollo.
jacoboDepuración de procesos
raulDepuracion de procesos
jacoboUML se puede utilizar para depurar procesos de nivel de usuario. Si queremos depurar algún proceso, podemos lanzar UML, establecer un punto de interrupción en la llamada al sistema y ejecutar el programa.
jacoboJugar con seguridad con los últimos núcleos
jacoboPodemos utilizar UML para sondear de una forma segura el último núcleo, así que si el núcleo contiene erroes, como erroes de corrupción de ficheros, no puede dañar ningún dato importante de fuera de UML.
jacoboProbar nuevas distribuciones
jacoboEl sistema de ficheros del UML está completamente contenido dentro de un fichero, así que no necesitamos utlizar toda una partición para ello.
jacoboPodemos encontrar varios sistemas de ficheros raíz listos para utilizarlos cargados con varias distribuciones en la web de UML (http://sourceforge.net/project/showfiles.php?group_id=429) o podemos crearnuestro propio sistema de ficheros desde cero.ñ Más tarde veremos un ejemplo con la distribución Debian.
jacoboEducación.
jacoboEs útil para estudiantes que necesitan una máquina dedicada, para enseñar desarrollo de SO, administración de redes y administración general del sistema.
jacoboDesarrollo experimental
jacoboNuestra máquina virtual puede correr con más dispositivos que el sistema físico que ejecut UML, así que podemos tener un sistema virtual con más memoria, más dispositivos y más procesadores.
jacoboPodemos hacer desarrollo y pruebas de capacidaades de hardware aún cuando no tengamos el hardware relevante.
jacoboHacer cosillas con un sistema que está funcionando
jacoboTenemos un SO completo ejecutándose fuera de UML, así que podemos utilizarlo para "mirar dentro" del núcleo, lo que es imposible en un núcleo nativo.
jacoboComo una caja arenera (sandbox) o cárcel segura
jacoboLos procesos que se ejecutan dentro de uml no tienen acceso al sistema que ejecuta uml, así que los programas maliciosos que se ejecuten dentro de uml no pueden dañar nuestro sistema real.
jacoboRedes virtuales
jacoboPodemos utilizar la red en un uml que se está ejecutando. Podemos establecer una red virtual si queremos probar servicios experimentales. Más tarde explicaré cómo establecer un uml con soporte de red.
jacoboComo un entorno de pruebas
jacoboProbar cierto software requiere reiniciar la máquina, así que con uml podemos evitar esta pérdida de tiempo. Podemos automatizar estas pruebas. Hay un pequeño módulo de perl que implementa un objeto UML que proporciona métodos para arrancar una máquina virtual, conectarse a ella, ejecutar comandos y apagarla. Podemos encontrarla en la página de descargas (http://sourceforge.net/project/showfiles.php?group_id=429)
jacoboPráctica de recuperación de desastres
jacoboSi quieres saber qué ocurre uando ejectas el comando rm -fr / ;-) o quieres practicar la recuperación de un desastre se puede utilizar uml como máquina de prácticas. Puede ser divertido ;
jacobo:-)
jacoboEntorno Linux para otros sistemas operativos
jacoboUML sólo corre en Linux ahora, pero hay varios proyectos para portar uml a otrs SO, para poder tener un entorno linux completo en otro SO
jacoboAhora que sabemos qué es user mode linux y cómo se puede utilizar, voy a explicar algunos ejemplos prácticos e uml. Cómo instalar, desde cero, un uml basado en Debian
jacoboIII - Un ejemplo práctico
jacoboNecesitamos un núcleo UML y un sistema de ficheros raíz para arrancarlo. Podemos obtener el núcleo instalando el paquete rpm o deb, o pacheando el núcleo y compilando nuestro núcleo UML.
jacoboLos paquetes .rpm y .deb también proporcionan un conjunto de herramientas de espacio de usuario, módulos del núcleo y documentación.
jacoboInstalación desde el código fuente
jacoboSi quieres compilar UML desde el código fuente, tienes que descargar el parche y aplicarlo al código fuente del núcleo Linux correspondiente:
jacobocd linux-2.4.19
jacobopatch -p1 < ul-patch-2.4.19-37
jacoboCompilar el núcleo en modo usuario es como compilar cualquier otro núcleo. Este es el proceso. Tras parchear el núcleo tenemos que compilarlo:
jacobomake menuconfig ARCH=um (puede utilizar make xconfig y make config)
jacoboLa configuración por defecto del núcleo también funciona, así que no tienes que cambiar nada. Si quieres puedes cambiar algo. Seguramente nada quede dañado. Ahora tenemos que compilar nuestro nuevo núcleo:
jacobomake linux ARCH=um
jacoboTras la compilación tienes el núcleo en modo usuario, llamado linux, en el directorio superior de su árbol de fuente.
jacobohora vamos a compilar e instalar los módulos del núcleo. Compilamos los módulos en la misma manera que un núcleo nativo con la excepción del 'ARCH=um':
jacobomake modules ARCH=um
jacoboPodeis instalarlos utilizando ftp, subiéndolos a nuestro UML o podemos montar nestro sistema de ficheros raíz y copiarlos en el directorio apropiado:
jacobomake modules_install INSTALL_MOD_PATH=`pwd`/mnt ARCH=um
jacoboumount mnt
jacoboesto utilizará el proceso de compilación del núcleo para instalar nuestros módulos en nuestro sistema de ficheros raíz.
jacoboSi qeremos tuilizar las utilidades uml, tenemos que obtener el código fuente y compilarlo.
jacoboInstalación de Debian
jacoboBien, ahora voy a explicar la forma fácil de obtener un uml que funciona, con debina por supuesto ;)
jacoboPrimero, la versión woody de debian tiene los siguientes paquetes uml:
jacobouser-mode-linux
jacobouser-mode-linux-doc
jacobouml-utilities
jacoboTenemos que instalar el paquete user-mode-linux:
jacoboapt-get install user-mode-linux (el paquete uml-utilities se instalará automáticamente por las dependencias de paquetes)
jacoboDijimos que el sistema de ficheros raíz de uml será un fichero, así que vamos a crear el fichero apropiado:
jacobodd if=/dev/zero of=root_fs_woody bs=1M count=100
jacoboDe esta manera creamos un fichero de 100 megas. Podemos poner el tamaño que queramos.
jacoboEste fichero puede tener un sistema de ficheros ext2. Utilizamos mke2fs para crear el sistema de ficheros ext2:
jacobo /sbin/mke2fs -Fq root_fs_woody
jacoboBien, tenemos nuestr sistema de ficheros raíz, ahora vamos a montarlo y crear nuestra estructura de ficheros:
jacobomkdir /mnt/ml
jacobomkdir /mnt/uml
jacobomount  root_fs_woody /mnt/uml -o loop
jacoboObtenemos el paquete del sistema base de nuestra versión de Debian (he utilizado la última: woody):
jacobowget ftp://ftp.debian.org/debian/dists/woody/main/disks-i386/base-images-current/basedebs.tar
jacoboInstalamos el sitema base en nuestro fichero:
jacobodebootstrap --unpack-tarball /PATH/basedebs.tar woody /mnt/uml
jacobobien, una pregunta
jacobo<arador> ¿no se puede utilizar una partición como fs raízde UML?
jacobono, el almacenamiento de disco de UML es un fichero
jacoboo más ficheros si quieres simular más discos duros
jacoboAhora tenemos que configurar ciertos ficheros de nuestro sistema uml:
jacobocd /mnt/debinst
jacobovi etc/fstab
jacobo# /etc/fstab: static file system information.
jacobo# file system    mount point   type    options    dump pass
jacobo /dev/ubd0        /             ext2    defaults   0 0
jacoboproc             /proc         proc    defaults   0 0
jacobootro fichero:
jacobovi etc/inittab
jacobocomentamos las líneas de arriba, para que sólo se lance un xterm cuando el sistema arranque.
jacobo1:2345:respawn:/sbin/getty 38400 tty1
jacobo#2:2345:respawn:/sbin/getty 38400 tty1
jacobo#3:2345:respawn:/sbin/getty 38400 tty3
jacobo#4:2345:respawn:/sbin/getty 38400 tty4
jacobo...
jacobocreamos un fichero de fuentes vacío:
jacobotouch etc/apt/ources.list
jacoboBien, ahora podemos lanzar nuestro núcleo UML:
jacobolinux udb0=root_fs_woody devfs=nomount rw
jacoboSi queremos soporte de cdrom:
jacobolinux udb0=root_fs_woody udb2r=/dev/cdrom devfs=nomount rw
jacobo¿Qué ocurre con el soporte de red? es la última part de la conferencia
jacoboRedes con User Mode Linux
jacoboNecesitamos el módulo del dispositivo TUN/TAP, así que necesitaréis recompila el núcleo (no el núcleo uml) con este módulo soportado.
jacoboCuando tengamos TUN/TAP como módulo, lo insertamos en el núcleo:
jacoboinsmod tun
jacoboCreamos el interfaz TUN/TAP:
jacobotunctl -u uidusr
jacobodonde uidusr es el uid del usuario que ejecuta uml.
jacoboEl usuario que va a usar el dispositivo TUN/TAP
jacoboConfiguramos el interfaz:
jacoboifconfig tap0 ip_system netmask netmask_system broadcast broadcast_system
jacobodonde ip_system, netmask_system y broadcast_system son los parámetros de red de nuestro sistema real (el sistema que ejecuta uml)
jacoboAhora configuramos la tabla de rutado. Tenemos qu permitir forwarding y crear manualmente una entrada de mapeado de direcciones ARP para el servidor UML:
jacobobash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
jacobo route add -host uml_ip dev tap0
jacobobash -c 'echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp'
jacoboarp -Ds uml_ip eth0 pub
jacobouml_ip debe ser la ip del interfaz de red de uml.
jacobo /dev/net/tun debe tener permisos de escrityura para el usuario que ejecuta uml:
jacobochgrp gid /dev/net/tun
jacobochgrp gid /dev/net/tun
jacobochmod 660 /dev/net/tun
jacoboNuestor sistema está preparado para ejecutar uml con soporte de red:
jacobolinux udb0=root_fs_woody devfs=nomount rw eth0=tuntap,tap0
jacoboAhora teneis que configurar vuestros par'ametros de red en el sistema uml (ip, gateway, dns, ...) y tendréis un sistema uml con soporte de red.
jacoboAhora lo único que falta es disfrutarlo ;-)
jacoboEsto es todo...
jacoboGracias y felicidades a los traductores
jacobothx: Raul, raciel, Mjesus, Arador
> clap clap clap clap clap clap clap clap clap clap
> clap clap clap clap clap clap clap clap clap clap
> clap clap clap clap clap clap clap clap clap clap
> bravo por jacobo !!!!
jacobook, si quereis la conferencia en pdf:
angelLuisjejeje
angelLuissi
overflowexceleeeente!
overflowclap clap clap clap clap clap clap clap
overflowclap clap clap clap clap clap clap clap
overflowclap clap clap clap clap clap clap clap
jacobohttp://www.inkatel.int/new/textos/umeet/2002/umeet2002.pdf
Abelanchclap clap clap clap clap
slackclap clap clap clap clap clap clap
angelLuisclap clap clap clap
Cuquibravo!
jacobo<MiTo> ismak podrias dar un ejemplo con los files COW ?
jacoboMiTo, si, no es muy difícil
jacobo./linux udb0=cow_file,base_file
jacobodonde base_file es un sistema de ficheros raíz de solo lectura. Asegúrate de que a partir de ahora nunca modifiques base_file
jacobo<Arador> ismak: en UNIX todo es un fichero, ¿por qué no se puede utilizar una partición como fs raíz?
jacobo<catfish> Arador: puedes utilizar una partición como sistema de ficheros raíz, pero no es obligatorio.
jacobo<sergio> ismak: ¿no es inkatel.com en lugar de .int?
jacobo<ismak> lo sient
jacobo<ismak> he hecho copy/paste :-)
jacobo<ismak> s/.int/.com/ ;-)
eduardoclap clap clap clap clap clap clap
Abelanchclap clap clap clap clap clap
angelLuisbravo!
jacobobueno, y ahora dicen que si intentas compartir una partición entre uml y el sistema "vivo" la puedes dañar, y tal... :D
jacobohala
jacobo<Arador> Ya que UML es un sistema linux, ¿se puede acceder al hardware si quieres? <catfish> normalmente no. El núcleo UML puede ser replanificado, y eso es malo para hablar con chips físicos. Es por eso por lo que la mayoría de "dispositivos" que usas son virtuales, y sólo el núcleo anfitrión habla con los chips físicos.
jacobo<catfish> Sin embargo, hay excepciones. Un núcleo uml puede habar con algunos dispositivos usb anfitriones y algunas otras cosas específicas
ismak2gracias por la traduccion jacobo
ismak2enhorabuena
angelLuissi
angelLuisenhorabuena :))
Aradorjacobo es el primer traductor que veo capaz de llevar la traduccion a la vez que la conferencia :)
MiTojacobo por favor, podrias traducirle al ingles mi pregunta ?
angelLuissi
jacoboqué pregunta?
angelLuis:)
MiTo<MiTo> catfish pero no hay problema si esta montado /mnt/uml/ y corro el uml y luego compilo los modulos y hago make
MiTo          modules_install y su PATH?
MiTogracias jacobo :)
jacoboArador: son ya tres años de práctica traduciendo software :)
Aradorjacobo: se nota ;)
jacobo<catfish> MiTo: deberías desmontar el sistema de ficheros raíz antes de iniciar uml, si
MiTook, muchas gracias jacobo , por eso eran los errores :þ
jacobojeje

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