MarioDebian, mi devlog

Bitácora de un desarrollador newbie.

Arranque de GNU/Linux no local a través de la historia

Hace unos días en la lista debian-live se publicó una de las últimas mejoras que es poder descargar el archivo squashfs (un sistema raiz comprimido del órden de 3:1) mediante http.

Bien, desde el principio de los tiempos (que se usa GNU/Linux) siempre hemos tenido multitud de opciones distintas para cargar el sistema operativo desde los dispositivos/medios más extraños:

LIVECDS

El primer livecd (sin demasiado éxito) fue creado allá por 1995, aunque hasta el año 2003 con la aparición de los primeros Knoppix no fue demasiado usado.

La técnica consistía en generar un archivo comprimido (cloop) que más tarde se montaría como sólo lectura y al que por determinados trucos podíamos simular que se podía escribir (solapando la memoria RAM con el cloop)

La técnica fue mejorando y saliendo nuevos drivers como unionfs, squashfs y hace poco aufs.

El proyecto Metadistros siempre fue un punto de referencia para crear livecds ya que las distribuciones españolas más importantes de aquella época (Linex y Guadalinex) se basaban en sus scripts para arrancar.

UPDATE: Metadistros nació (después de/a partir de) Linex para unificar a todas. (gracias José L. Redrejo)

Con la llegada de Ubuntu nació casper, que tomó prestado y también programó de cero muchas partes de su «arranque». En Debian se adoptó casper pero no duró mucho naciendo un fork llamado live-initramfs que lo mejoró en bastantes casos.

Nunca me acabó de convencer casper ya que los scripts que siempre he usado para mis pruebas (initramfs-tools-metadistros basados en el calzador de Guadalinex) eran bastante más rápidos y hacían todo lo que necesitaba.

Un subderivado que últimamente ha tenido bastante éxito son los LIVEUSB que vienen a ser lo mismo que un cd pero con las ventajas de velocidad y escritura de las memorias USB (cada vez más baratas).

Ya hace un tiempo estuve jugando con ellas en el proyecto conocido como USeBix, pero aquello quedó en standby, aunque todavía sigue salvando de desgracias, ¿verdad Rober?

RED

Bastante antes del nacimiento de los livecds existe la posibilidad de arranque por red. Fué en 1999 cuando comenzó el proyecto más popular: LTSP. Casi 10 años después, es el proyecto más usado para «resucitar equipos obsoletos», pero en la versión 5 (la última que ha salido no hace mucho) parece no haber seguido su habitual facilidad y sencillez y mucha gente no puede usarlo o no le funciona.

LTSP crea en un directorio una microdistribución que comparte por NFS para que cada terminal que arranca lo monte como su sistema «/». Esto en equipos con muy poca memoria es la única solución pero cuando tenemos más de 40 Mb genera demasiado tráfico por red (tráfico innecesario si el equipo pudiera usar más su RAM y menos la red)

PXES nace a partir de la idea de LTSP pero exportando un sistema de archivos «/» dentro de un squashfs que se generaba con un completo asistente. El problema de PXES fue que estaba anclado a programas y librerías antiguas y no era posible avanzar o añadir nuevas características de una manera sencilla. Dejaremos a parte la empresa 2x....

Tanto el uno como el otro han usado siempre un servidor TFTP (Trivial File Transfer Protocol) un pseudo-servidor FTP en el que no hace falta autenticación.

El año pasado nace TCOS, pero no voy a hablar demasiado de él porque ya hablo lo suficiente en el resto de lo que escribo por aquí.

Desde el proyecto LTSP han venido investigando métodos para evitar el servidor NFS y uno de ellos es NBD (Network Block Device) que está compuesto por un módulo del kernel, un cliente y un servidor. Con NBD es posible exportar un archivo como si fuese un dipositivo y montarlo como un dispositivo loopback en una máquina remota. Ellos lo han usado para SWAP por red pero en mis pruebas yo lo he usado para exportar el squashfs de TCOS, y así evitar la descarga.

 

Con todo esto lo único que quiero dejar claro es que la gente de debian-live está haciendo un gran trabajo pero para nada han descubierto algo espectacular. Descargar un archivo de 500-600 Mb con wget y usarlo como sistema «/» puede estar bien si nuestra máquina tiene 1-2 Gb de RAM y una tarjeta de red de 1Gbit... aún así se sigue necesitando un CDROM o memoria USB para cargar tanto el vmlinuz como el initramfs (lejos quedaron los tiempos en el que los dos cabían en un disquete)

Hasta que no se mejore el soporte de arranque desde los dispositivos hardware, HTTP no puede ser un método primario de arranque, TFTP, por ejemplo sí lo es.

 

Mientras y para no tener que escribir un nuevo artículo, en TCOS se ha añadido soporte para escuchar CDAUDIO desde terminales (usando el módulo cdfs) y estoy haciendo pruebas con un nuevo juguete que encontré el otro día por casualidad: USB/IP.

USB/IP consiste en varios módulos para el kernel y algunas utilidades, y lo que hace es apropiarse del dispositivo USB que le digamos y servirlo por red a otro equipo.... Los usos casi los limita la imaginación:

  • Usar webcams en terminales ligeros
  • Scanner o impresoras
  • VOIP
  • .....
El proyecto aún es demasiado experimental y no he conseguido hacerlo funcionar al 100%, pero por si a alguien le interesa puede encontrarlo convertido en paquetes deb en el repos de tcos.
Articulos relacionados:

Comentarios

  1. José L. Incorrección con linex
    17/10/2007 | 17:12

    Comentas que linex uso cosas de metadistros, cuando fue al contario. Metadistros nacio en hispalinux como un intento de unir varias distribuciones, principalmente linex. Nunca cuajó porque el live a linex no le valía ya que no permitía actualizar equipos. Era para instalar y en linex había que actualizar una base instalada de miles de ordenadores.
    Andalucía si lo usó con Guadalinex, pero linex jamás usó nada de metadistros.
    Saludos

Comentarios cerrados