Categoría: plan9

  • Sustituyendo Android por Inferno en tu terminal móvil

    En Sandia National Labs, han portado Inferno a terminales que actualmente ejecutan Android. Aunque utiliza el kernel de Linux subyacente, sustituye todo el stack Java de Android, lo que le hace muy eficiente, rápido y completamente libre.

    Un terminal con Inferno, ya no ejecutaría Android, simplemente se ejecutaría sobre el mismo kernel modificado que Android.

    Personalmente, vuestro editor, no considera que esto sea un desarrollo para usuarios finales, pero si una demostración para fabricantes o personas interesadas, en la versatilidad de Inferno y la posibilidad de construir con Inferno otro sistema operativo para móviles.

    Más info: https://bitbucket.org/floren/inferno/wiki/Home
    Vídeo: http://www.youtube.com/watch?v=dF_-jQc53jw

    Vía https://www.facebook.com/linuxmagazine.es

  • Cambios en el frente de Plan9

     

    Hace poco que Cinap Lenrek -autor del emulador del kernel linux linuxemu, el servidor SMB cifsd, newboot, y otra innumerable cantidad de sofware para plan9 – ha lanzado plan9front, una bifurcación de la distribución oficial de Plan9 de Bell Labs

    Esta noticia no sería tan interesante si el autor no fuera a un ritmo de 10-20 commits diarios, y sin la siguiente lista de cambios:

    * 9load ha sido reemplazado por algo más avanzado: 9boot.
    * El sistema de ficheros fossil ha sido reemplazado por cwfs.
    * Ha sido portado el runtime del lenguaje de programación Go.
    * Un nuevo servidor por ficheros kbdfs.
    * La posibilidad de instalar desde CD-ROM USB, HDD USB, y Flash USB.
    * La inclusión del servidor-SMB cifsd.
    * Python y Mercurial.
    * Sistema de Emuladoción de tty.
    * El emulador /dev/realmode realemu, permite lanzar el modo gráfico para sistemas con tarjetas de video que no estaban soportadas antes.
    * Nuevos controladores para los siguientes dispositivos: Broadcom BCM57xx, controladores SATA Intel 82801FBM, Intel 82801HB/HR/HH/HO SATA IDE, Intel 82801HBM SATA (ICH8-M), tarjeta de video AMD Geode LX, Tablets Wacom WACF004 y WACF008.

    Fuente: http://inferno-rus.blogspot.com/2011/05/plan9front-plan9.html

  • lguest_thnx

    Drawterm a una máquina virtual plan9 bajo lguest

  • Documentos (papers) sobre Plan9 en castellano

    Traducción de los documentos de Plan9 en castellano, en uno de los lugares con más información sobre Plan9 de toda la red.

  • XtreemOS 2.0 publicado

    XtreemOS 2.0 ha sido publicado. Uno de los componentes principales es el sistema de ficheros distribuido XtreemFS.

    «XtreemOS nos brinda nuevas oportunidades a la computación distribuida, tales como una gestión sencilla de los procesos y su monitorización»

     

    Tal como comentan en http://lwn.net/Articles/362285/ sería interesante comparar XtreemOS y XtreemFS con otras soluciones, como

    por ejemplo Xcpu, el cual basandose en protocolo 9p de Plan9 tiene una finalidad similar.

    XCPU: a new, 9p-based, process management system for clusters and grids

    http://xcpu.org/

     

     

    Otros enlaces de interés:

    http://es.wikipedia.org/wiki/XtreemOS

  • snazvx – Plan9 bajo demanda

     

    Devon H. O’Dell anuncia el lanzamiento de snazvx, está basado en 9vx (la creación de Russ Cox para emular el sistema operativo Plan9 en el espacio de usuario), y permite la creación de instancias de Plan9 bajo demanda utilizando simplemente un navegador.  En resumen, podrás crear y probar tu propio Plan9 sin necesidad de Plan9 y con solo usar los servicios de snazvx.

    Para utilizarlo sólo hay que visitar el sitio web de snazvx: http://testbed.dh0.us/   y tras previo registro, podras crear instancias de plan9 bajo demanda las cuales podrás controlar con un applet de Java que se carga en la misma página, o con tu visor VNC favorito.

     
    El servicio aún está en periodo de pruebas, pero aun así, las instancias funcionan perfectamente, como muestra, una captura:

    Plan9 en tu navegador

  • 3rd International Workshop on Plan 9

    Estos son los artículos aceptados para la próxima cita:

    • 9P For Embedded Devices, Bruce Ellis and Tiger Ellis.
    • Glendix: A Plan 9/Linux Distribution, Anant Narayanan, Shantanu Choudhary, Vinay Pamarthi and Manoj Gaur.
    • Inferno DS : Inferno port to the Nintendo DS, Salva Peiro.
    • Mrph: A Morphological Analyzer, Noah Evans.
    • Scaling Upas, Erik Quanstrom.
    • Semaphores in Plan 9, Sape Mullender and Russ Cox.
    • Upperware: Pushing the Applications Back Into the System, Gorka Guardiola, Francisco J. Ballesteros and Enrique Soriano.
    • Vidi: A Venti To Go, Latchesar Ionkov (desafortunadamente no podra atender).
    • v9fb: A Remote Framebuffer Infrastructure for Linux, Abhishek Kulkarni and Latchesar Ionkov (desafortunadamente no podra atender).

     

     

  • Sistemas operativos en el espacio de usuario: vx32 y 9vx (2ª parte)

    Dónde obtener 9vx

    En el artículo anterior anunciamos la aparición de una distribución del sistema operativo Plan 9 de Bell Labs que podia correr como un proceso de usuario, siendo a todos los efectos un sistema operativo invitado en GNU/Linux, FreeBSD o MacOS X, gracias a la capa de emulacion de las librerías vx32.

    La distribución junto con los binarios se encuentran en http://swtch.com/9vx/

    [Actualización 9 Marzo 2011]:

    Copias más actualizadas se encuentran en los repositorios de mercurial:

    https://bitbucket.org/yiyus/vx32/

    https://bitbucket.org/rminnich/vx32/

    Se recomienda la última. En el futuro acabará siendo integrada en la versión de Russ Cox.

    hg clone https://bitbucket.org/rminnich/vx32

    Instalación de 9vx

    A todo aquel que haya intentado instalarlo, puede haberse encontrado con algunos problemas. Uno de ellos era que la distribución no contenia todos los ficheros que trae el CD de instalación de Plan 9 original, ocasionando por ejemplo que pull, el script que podemos lanzar para actualizar en línea Plan 9, fallaría al no encontrar el archivo plan9.db que contiene la lista de ficheros.

    Russ Cox, el creador de 9vx, informaba en la lista de 9fans, sobre esto:

    If you give 9vx a full Plan 9 distribution, you can use
    pull to update it just like any other distribution.

    Early copies of 9vx had a /dist/replica/client/plan9.db
    but it didn't match all the files I'd deleted to cut the
    size of the archive down.  In 0.12 I deleted the plan9.db
    too, so that pull wouldn't try to run.

    If you want to run pull, you should start with a full tree.
    I have posted one at http://pdos.csail.mit.edu/~rsc/plan9.tar.bz2
    You should be able to run pull successfully if you use
    that tree as your root.

    You can also start with a stock Plan 9 CD, if you know how
    to extract it into your local file system, but you will need
    to populate /dist/replica/client appropriately and also
    copy /dist/replica/network from a 9vx tree, since I haven't
    gotten those changes back into the distribution yet.

    En resumen, cuenta que 9vx podría usar una distribución completa de Plan 9, en lugar de la recortada, con la que podriamos volver a utilizar pull para actualizar.

    Tenemos 2 opciones para poder hacerlo.

    1. Usar una copia del «árbol completo» publicada aqui: http://pdos.csail.mit.edu/~rsc/plan9.tar.bz2
    2. Usar el CD de plan9 original http://plan9.bell-labs.com/plan9/ pero teniendo en cuenta que habría que tener un /dist/replica/client apropiado y copiar /dist/replica/network de la distribución de 9vx (la del paso 1, o el artículo anterior, por ejemplo).

    Llegados a este punto,  en mi caso opté por la opción 1, y me encontré que al descomprimir el fichero con tar en  Debian GNU/Linux los permisos de los ficheros no eran correctos, lo cual da posteriormente problemas al ejecutar Plan9 con 9vx.

    La solución es descomprimirlo con bsdtar (apt-get install bsdtar), o con la versión de tar incluida en plan9port (p9p).

    P9P o Plan 9 from User Space es un conjunto de utilidades y comandos de plan9 para sistemas GNU/Linux, *BSD, SunOS o Mac OS X. Con estas herramientas no habrá problemas de permisos de ficheros al descomprimir con:

     

    $ 9 bunzip2 < plan9.tar.bz2 | 9 tar xv

     

    Y por fin podemos ejecutar Plan9 como proceso de usuario con:

    9vx.Linux -u glenda

     

    Nota:

    Como comentario adicional, Andrey Mirtchovski publicó en la lista de correo de 9fans (http://plan9.bell-labs.com/wiki/plan9/mailing_lists/) la manera de descomprimirlo con GNU tar (el que suelen traer las distribuciones GNU/Linux).

     

    $ tar jxvf plan9.tar.bz2 plan9/mnt/cons plan9/mnt/exportfs --mode 755
    > /dev/null

    [messages about ignored headers]

    $ tar jxvf plan9.tar.bz2 --exclude plan9/mnt/cons --exclude

    plan9/mnt/exportfs > /dev/null

    [messages about ignored headers]

     

    Y si ya habiamos descomprimido los archivos sin tener en cuenta los pasos indicados en este artículo, para reparar los archivos, hasta que sean reparados en la distribución de Russ Cox:

     

    $ find plan9 -not -perm -200 -print0 | xargs -0 chmod u+w
  • Sistemas operativos en el espacio de usuario: vx32 y 9vx

    Un nuevo proyecto: vx32 (http://pdos.csail.mit.edu/~baford/vm/ )
    nos ofrece la posibilidad de ejecutar procesos de la arquitectura
    x86 en el espacio de usuario. Esto quiere decir que pueden ejecutarse
    de manera mas segura estas aplicaciones, ya que estarian restringidas
    las regiones de memoria a la que pueden acceder.

    Vx32 ya funciona en varios sistemas operativos y se han portado varias
    aplicaciones como: sistemas de archivos, una infraestructura de claves
    publicas extensible, un sistema operativo experimental en el espacio
    de usuario o una zona cerrada (jail) de llamadas al sistema (system calls)
    de Linux.

    Esto permite correr las aplicaciones de un sistema operativo «invitado»
    junto con las del servidor y estos sistemas operativos en el espacio
    de usuario corren un 30% más rápido que con maquinas virtuales tipo
    QEMU o VMware

    Una de las aplicaciones prácticas mas interesantes es 9vx
    ( http://swtch.com/9vx/ )

    Nota: La última versión de momento está en: https://bitbucket.org/rminnich/vx32/src

    En el futuro acabará siendo integrada en la versión de Russ Cox.

     

    9vx, implementado por Russ Cox, es un port del sistema operativo
    Plan 9 a FreeBSD, GNU/Linux, OS X, usando las posibilidades de
    sandboxing de las librerias vx32.

    9vx se ejecuta como un proceso de usuario normal, pero se comporta
    como una maquina virtual ejecutando plan 9. Los recursos del servidor
    como el sistema de ficheros, la pila de red, ventanas graficas o dispositivos
    de audio estan disponibles como sistemas de ficheros, siguiendo
    la filosofia de Plan9.

    Para ejecutar 9vx, solo tienes que bajarlo de la página mencionada
    anteriormente, y ejecutar: 9vx.Linux -u glenda (o 9vx.FreeBSD
    o 9vx.OSX)

    Ya no tienes excusa para no conocer Plan 9.
    En los proximos articulos sobre Plan 9 iremos ampliando informacion
    sobre sus aplicaciones, configuraciones, tanto de manera nativa,
    virtualizada con lguest en el kernel linux, o como proceso de usuario
    con vx32.

    zoperman

  • Configurar plan9 con el hipervisor lguest

    Introducción

    • Plan9 de Bell Labs es el sistema operativo creado por los mismos laboratorios que inventaron Unix. Puede ejecutarse de manera nativa sobre diferentes arquitecturas, o tambien como máquina virtual con Qemu, Xen o Lguest.
    • Lguest está integrado en el kernel linux desde la versión 2.6.23-git13 en adelante. Para realizar el artículo se ha probado con el último kernel 2.6.25.

     

    Configurando Lguest

    Hay que preparar el kernel para tener el soporte de lguest  y activar varias opciones.

    No es el objetivo de este artículo explicar como se configura o compila el kernel, pero puedes utilizar «make menuconfig» para seleccionar las siguientes opciones:

      "General setup":
         "Prompt for development and/or incomplete code/drivers" = Y
            (CONFIG_EXPERIMENTAL=y)
    
      "Processor type and features":
         "Paravirtualized guest support" = Y
            "Lguest guest support" = Y
         "High Memory Support" = off/4GB
         "Alignment value to which kernel should be aligned" = 0x100000
            (CONFIG_PARAVIRT=y, CONFIG_LGUEST_GUEST=y, CONFIG_HIGHMEM64G=n and
             CONFIG_PHYSICAL_ALIGN=0x100000)
    
      "Device Drivers":
         "Block devices"
            "Virtio block driver (EXPERIMENTAL)" = M/Y
         "Network device support"
            "Universal TUN/TAP device driver support" = M/Y
            "Virtio network driver (EXPERIMENTAL)" = M/Y
               (CONFIG_VIRTIO_BLK=m, CONFIG_VIRTIO_NET=m and CONFIG_TUN=m)
    
      "Virtualization"
         "Linux hypervisor example code" = M/Y
            (CONFIG_LGUEST=m)

     

    Configurando el soporte de red (Bridging o NAT)

    La máquina virtual usará un interfaz de red virtual, mediante bridging o NAT.

    En este caso, utilizaremos NAT, para lo cual tambien necesitaremos soporte de NAT en el kernel si no lo tuvieramos:

     

    Networking  ---->
     Networking options  ---->
      Network packet filtering framework (Netfilter)--->
       Core Netfilter Configuration ---->
        <*> Netfilter connection tracking support
        <*> Netfilter Xtables support (required for ip_tables)
        <*>   "NFLOG" target support
        <*>   "conntrack" connection tracking match support
        <*>   "state" match support
       IP: Netfilter Configuration --->
        <*> IPv4 connection tracking support (required for NAT)
        <*> IP tables support (required for filtering/masq/NAT)
        <*>   Packet Filtering
        <*>     REJECT target support
        <*>   Full NAT
        <*>     MASQUERADE target support
    

    Compilamos el kernel: make
    Instalamos el kernel: make install
    Instalamos los modulos: make modules_install

    Compilando el binario de lguest

    Bajo el arbol de directorios donde tengamos las fuentes de linux (en mi caso es /usr/src/fuentes/linux), vamos al siguiente subdirectorio:

    cd Documentation/lguest/

    y ejecutamos «make» para generar el binario ejecutable de lguest.

    vejeta:/usr/src/fuentes/linux/Documentation/lguest# make
    cc -Wall -Wmissing-declarations -Wmissing-prototypes -O3 -I../../include    lguest.c  -lz -o lguest

     

    Obtener el kernel modificado y la imagen de Plan9 para lguest (THNX)

     

    • 9lguestcpu.2.6.25.elf.   Es el kernel modificado para arrancar Plan9 bajo lguest.
    wget http://sirviente.9grid.es/sources/contrib/rminnich/lguest/9lguestcpu.2.6.25.elf
    • THNX – «Tiny Horrible NOT Xen» es la imagen preinstalada de Plan9 que fue creada por Ron Minnich para funcionar bajo lguest. (300Mb comprimidos, 1.6Gb al descomprimir)
    wget http://usuarios.lycos.es/vejeta/plan9/thx9.img.bz2

     

    Descomprimir:

    bzip2 -d thx9.img.bz2

     

    Haciendo NAT para el interfaz de red tap0

     

    Crear el script: NATME con las siguientes líneas y ejecutarlo.

    iptables --append FORWARD --in-interface tap0 -j ACCEPT
    iptables --table nat --append POSTROUTING --out-interface  eth0  -j MASQUERADE
    iptables -t nat --list
    echo 1 > /proc/sys/net/ipv4/ip_forward

     

    Arrancando Plan 9 con lguest

    Hay que reiniciar el ordenador para arrancar con el nuevo kernel y ya podemos arrancar lguest.

    Primero cargamos el modulo de lguest con los parámetros que se indican.

    modprobe lg syscall_vector=64

    Arrancando lguest con Plan9 virtualizado.

    /usr/src/fuentes/linux/Documentation/lguest/lguest 256 /usr/local/tmp/plan9/lguest/9lguestcpu.2.6.25.elf \
    --tunnet=192.168.19.1 \
    --block=/usr/local/tmp/plan9/lguest/thx9.img \
    'venti=#S/sd00/arenas;bootdisk=local!#S/sd00/fossil;bootargs=local!#S/sd00/fossil;lguestnetwork=NAT;'
    • 256 indica la RAM que tendra la máquina virtual.
    • 9lguestcpu.2.6.25.elf.  Es el kernel que ejecutará la máquina virtual.
    • –tunnet=192.168.19.1. Configura un dispositivo de red «tap» con la dirección IP indicada.
    • –block=/usr/local/tmp/plan9/lguest/thx9.img.  Es  el dispositivo de bloques (block device) que en este caso contiene la imagen de plan9 preinstalada.

     

    La imagen de Plan9 está preparada para funcionar como «cpu», es un servidor de Plan9 el cual sirve a terminales Plan9.

     

    Conectando a la máquina virtual Plan9 con drawterm

     

    Si aún no tienes un terminal Plan9, puedes usar drawterm compilando los fuentes, o usando un binario ejecutable para tu sistema operativo.

     

    drawterm -u bootes -a 192.168.19.2 -c 192.168.19.2

    La clave o password es: lguestgood

    La siguiente imagen muestra la ventana de drawterm, con el navegador abaco y acme. De fondo se ve el terminal donde arrancamos lguest.

     

    lguest_thnx

     

     

    Enlaces de interes

    Espero que os guste

    Zoperman – Vejeta

Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.