¿vuelta al terminal tonto?
Allá por el '99 todavía se hablaba de network computers: ordenadores sin disco duro, que lo hacen todo contra un servidor a través de la red. ¿Visión de futuro, o vuelta al terminal tonto? Reconstruyamos la historia.
La wikipedia nos cuenta que a mediados de los '90 Larry Ellison y otros "visionarios" bocazas empezaron a apoyar la idea de un "ordenador de red", sin almacenamiento local. Varios fabricantes (Sun, IBM, Oracle y Apple, nada menos) crearon una especificación en 1996, en la que Java jugaba una parte importante. IBM llegó a comercializar varios modelos con escaso éxito -- no pongo enlaces porque son muy largos, pero esta búsqueda os mostrará algunas notas de prensa de la época.
A mí todo aquello me parecía una idea estúpida: vuelta al terminal tonto de otros tiempos. La razón principal para introducir clientes ligeros era el coste del hardware; pero el coste de un disco duro es una parte ridícula del ordenador. Entiendo que IBM quisiera vender sus mainframe, pero ¿para qué querríamos los demás introducir servidores monstruosos que dieran servicio a ordenadores capados?
La industria parecía pensar lo mismo. Los ordenadores personales siguieron haciéndose cada vez más potentes por menos precio, y hoy día el término network computer no lo usa ni Larry Ellison.
mini-virguerías
Los que sigáis mi diario desde hace tiempo recordaréis ya mi pasión por los ordenadores silenciosos. Hace unas semanas me topé con este miniordenador: gasta 6 W, y la versión pelada cuesta $225 (unos 173 €). Por $50 más se convierte en cliente ligero (thin client), supongo que con un dispositivo de estado sólido donde colocarle el cargador de red. No te dicen la velocidad del procesador, sólo que es un SiS 550LV; y parece que SiS no da muchos detalles sobre estos procesadores integrados.
Luego me encontré con el eBox, otro cacharro similar que cuesta 150 € y pesa 800g; el sitio tiene más información, como por ejemplo que el procesador va a 200 MHz. En este sitio descubro que hay un modelo de referencia para mini-aparatos de éstos llamado OpenBrick; hasta Mandrake vende uno. Todos ellos sin ventilador, por supuesto.
En realidad el coste del disco duro no es tan importante (+$20 en el caso de Norhtec). El problema es que con un procesador a 200 MHz poco se puede hacer hoy día, ¿o no?
guías y más guías
Hace tiempo que tenía ganas de probar una cosa, y estos días en el trabajo lo he conseguido: correr programas gráficos en una máquina y presentar las ventanas en otra. Tras muchos intentos fallidos, lo más sencillo ha sido abrir una conexión con ssh -X
. A los veteranos os parecerá una tontería; a mí me parece mágico: OpenSSH encapsula todo el tráfico del cliente X hacia el servidor a través de un puerto, por defecto el 22; luego en el otro lado lo dirige a su destino; se encarga de manejar las magic cookies; funciona a través de varios ordenadores en secuencia... Se puede incluso hacer un streaming de vídeo cutre, reproduciendo en un ordenador y viéndolo en otro: con una red de 10 Mbit consigue no atrancarse demasiado si está codificado a poco tamaño.
¿Cómo lo he hecho? ¿Seré un gurú? Ni de coña; una ayuda inestimable fue el XDMCP howto, de the Linux documentation project. Pero claro, leyendo, leyendo, se pica uno y encuentra cosas como el mainframe howto, que te cuenta cómo llevar esta idea al siguiente nivel y usar ordenadores viejos como terminales o clientes ligeros. Para un artículo más específico, el thin client howto da detalles más precisos. El proyecto linux terminal server te da las herramientas necesarias para arrancar directamente desde la red, con lo cual puedes prescindir del disco duro.
Ya estamos en condiciones de montarnos una red de clientes ligeros: un servidor central, y muchos terminales sin disco que montan su sistema por NFS. Los programas se pueden correr en remoto y mostrar en nuestro terminal, para máquinas con procesadores lentos. ¿Dará la talla? ¿Se podrá utilizar, digamos, en una oficina pequeña?
ventajas e inconvenientes
La primera ventaja de montarse una red de clientes ligeros es el precio. Ahora no estamos comprando ordenadores capados que corren programas en Java por $500; tiramos de máquinas viejas o bien (en plan bien) compramos clientes de bajo consumo y precio mínimo. Supongo que las máquinas a 200 MHz serán suficiente para correr el terminal, aunque no estoy del todo seguro. Por otro lado, un servidor potente puede dar servicio a un montón de terminales; y hoy día, cualquier ordenador actual tiene potencia de sobra para hacer este papel.
Pero la mayor ventaja es la mantenibilidad. El administrador sólo tiene que configurar y actualizar una máquina; el resto no contiene software -- sólo el cargador en disquete, disco RAM o llave USB. Tampoco hay discos duros que se corrompan o degraden.
La mayor desventaja que le veo es la de siempre: sólo podemos correr programas de Linux. En cualquier caso habría que mantener un par de máquinas con algún sistema operativo propietario; es la estrategia recomendada habitualmente para migraciones.
Otra desventaja es que los terminales dependen completamente de la red; si no hay red, nadie puede trabajar. También dependemos del servidor, porque estamos poniendo todos los huevos en la misma cesta. Si fallara su disco duro, ese día tampoco se trabaja. Se puede responder que cada vez es más difícil trabajar sin red en cualquier caso, y que de todas formas es interesante mantener un servidor de repuesto.
Y no es práctico si los usuarios necesitan programas de proceso intensivo: un grupo de programadores del kelmer, por ejemplo, dejarían de hablarse a la tercera vez que coincidieran compilando.
conclusión
Pues sí, amigos: la idea de Larry Ellison no era tan mala. Por supuesto, la red de clientes ligeros no surge de ningún visionario; es una evolución lógica de los sistemas Unix en su momento y el avance de Linux.
¿Volverán las redes de ordenadores a albergar servidores compartidos? ¿Se generalizarán los clientes ligeros en uso común para reducir gastos de hardware y mantenimiento? ¿Volverán los usuarios a pelearse por su quota
?
Ya sólo nos falta lo más importante: vuestra opinión y experiencia.