MarioDebian, mi devlog

Bitácora de un desarrollador newbie.

TCOS Thin Client Operating System

Después de pensarlo un poco no merece la pena trabajar sobre un nombre del que no pertenecemos, lease el caso de llamar PXES a algo que se parece preo no tiene nada que ver....

Así que después de preguntar a los compañeros de Soleup he decidido rebautizar metapxes como TCOS, (aka Thic Client Operating System).

TCOS es un proyecto libre que consiste en crear un micro sistema operativo (basado en debian/ubuntu) para que al ser copiado en un directorio tftp sea servido a terminales que con bajos recursos (pentium 350, 64 RAM) arranquen por red y se conecten al entorno gráfico (las X) del servidor, donde se loguean y ejecutan aplicaciones. El proyecto se parace bastante a PXES en la idea pero no en la forma ya que pxes usa software bastante viejo y kernel especiales. Mi idea es usar un kernel debian normal y darle toda la potencia que permiten los scripts.

He añadido importantes mejoras:

* La configuración se gestiona desde un simple y comentado archivo de texto. (se puede hacer un asistente pygtk en tres patadas)
* He reducido el consumo de ram de los terminales a algo menos de 40 megas. (contando que usan Xorg, alsa y esound es todo un record)
* Las particiones ahora si se reconocen al arranque, el script fstab del calzador de guadalinex no es compatible con busybox.
* Si hay partición swap en el sistema se monta, si no se buscan particiones ext3 o fat32 y se prueba a crear un archivo de poco menos de 60 megas para ser montado como swap. En próximos reinicios el archivo, si existe se formatea y se monta sin tener que crearse (aquí tengo que investigar porqué no me deja crear un archivo mayor que la memoria en el sistema, quizás para crearlo grande primero hay que crear uno de menos tamaño...) el error dice algo de out of memory.
* La imagen de arranque es el kernel (1,2 Mb) y el initramfs (7 Mb), después se descargan los extras por tftp (10-15 Mb).
* Como la imagen de extras es un squashfs se monta como sólo lectura, asunto que he solucionado creando un ramdisk de 2 megas y solapándolo al squashfs mediante unionfs.

En un artículo anterior ya comentaba ventajas e inconvenientes sobre PXES, espero reducir los inconvenientes y aumentar las ventajas.

Antonio Quesada uno de los gurús de LTSP y PXES en España (además de profe de mates) ya ha dado su visto bueno :P

Si alguien desea probarlo y tiene ya un aula con un servidor pxes en marcha puede hacer lo siguiente:

1.- Descargar los tres archivos necesarios de tcos y copiarlos en /tftpboot/pxes/
2.- Editar /tftpboot/pxes/pxelinux.cfg/default y añadir lo siguiente al final:

label tcos
kernel vmlinuz-tcos
append ramdisk_size=65536 initrd=initramfs-tcos root=/dev/ram0 BOOT=tcos quiet

Cuando cargue el terminal se escribe en boot: tcos y si todo ha salido bien debería cargar, obtener ip por dhcp realizar alguna tarea y conectarse a las X del servidor. TCOS admite variables en la línea de comandos para poder personalizar los terminales cuando arrancan de modo que si se pone server=192.168.1.1 esta variable será usada como servidor donde nos conectaremos a las X remotas o volume=60% pondrá el volumen del master y el pcm al 60%. Según vaya creciendo el proyecto intentaré que la mayoría de la configuración interna sea controlable mediante la línea de comando de arranque (cmdline) La imagen incluye los módulos necesarios para arrancar el sonido de una sound blaster, pero se puede añadir cualquier módulo disponible en el kernel de debian 2.6.15-1-486 (el kernel que uso). Esto permitirá crear un default por ip para que cada máquina arranque de una manera distinta compartiendo imagen.


Por otra parte he añadido a jclic-browser (0.0.4) al manejo de hilos (threading) para que tareas como escribir en la barra de estado o leer de la base de datos se realicen asíncronamente, dando un poco más de fluided al interfaz. Podeis descargarlo y probarlo desde este directorio: jclic-browser (antes de ejecutar sería bueno leer el /usr/share/doc/jclic-browser/README) Si alguien desea mirar el tema de los hilos a ver si está bien hecho será bien recibido.

Articulos relacionados:

Comentarios

  1. adrian15 out of memory
    25/04/2006 | 08:50

    En próximos reinicios el archivo, si existe se formatea y se monta sin tener que crearse (aquí tengo que investigar porqué no me deja crear un archivo mayor que la memoria en el sistema, quizás para crearlo grande primero hay que crear uno de menos tamaño...) el error dice algo de out of memory.

    ¿Que comandos usas?
    Todo apunta a que por alguna razón el fichero que escribe tiene que estar completamente en la RAM antes de escribirlo lo cual no me parece correcto. Quizás puedas modificar algun programa para que no cargue de vez en la RAM tanta parte del fichero SWAP que va escribiendo.

    De todas maneras creo que tu puedes crear el fichero swap con el programa que tu quieras (un programa en c que te hagas) y luego lo puedes formatear con mkfs.swp

    Suerte con el TCOS. Es una pena que te alejes del mundo pendrive y boot (aunque sé que no te alejas) aunque es una buena alegria que dinamizes un poco el mundo del software dedicado a los terminales ligeros.

    adrian15

  2. Tomás Fdez Thin client con OpenOffice
    10/05/2006 | 13:10

    Hola. Me gustaría tener información sobre los requerimientos de un servidor a la hora de conectar clientes ligeros que utilicen OpenOffice. ¿Que RAM y procesador necesitaría el servidor según el número de clientes a conectar?

Comentarios cerrados