# Multiestación

Multiseat o multipuesto, también llamado multiterminal, multi-station, multihead, es la configuración especial de una computadora para poder soportar múltiples usuarios trabajando al mismo tiempo, cada uno con su propio monitor, teclado, ratón y, opcionalmente, con su propia tarjeta de sonido.

## Introducción

Al usar la configuración estándar de una PC de escritorio (1 CPU + 1 pantalla + 1 teclado + 1 ratón), únicamente un usuario puede usar la PC completa a la vez, limitando la efectividad del sistema pues permanece desocupado la mayor parte del tiempo. Con la configuración multipuesto, varios usuarios pueden compartir información del mismo CPU, usando de este modo un mayor porcentaje de su capacidad total y teniendo así un mejor aprovechamiento del sistema.
Esta funcionalidad se basa en gran medida en el creciente aumento de capacidad del hardware, tanto en procesadores como memorias, así como en la optimización del uso de los recursos por parte del sistema operativo, lo que permite aprovechar las capacidades multiusuario de sistemas GNU/Linux.
Por ejemplo, en el esquema tradicional, si alguien está usando únicamente un navegador de páginas web o escribiendo una carta en un procesador de textos, o trabajando con una hoja de cálculo, o con un programa de facturación, inventario, o contabilidad, el equipo se desaprovecha, al estar gran parte de la capacidad del sistema sin uso. Pero con la configuración multiterminal, otras personas podrán usar los recursos que de otra manera estarían ociosos.
Otra gran ventaja que posee la configuración multiterminal es el precio: no es necesario comprar diferentes placas base, microprocesadores, memorias RAM, discos duros, carcasas, reguladores de voltaje y otros componentes por cada usuario. Únicamente se necesita comprar un CPU lo suficientemente potente y un lote pantalla-teclado-ratón por usuario, pues normalmente comprar un micro-ordenador rápido cuesta mucho menos que comprar varios más lentos.
Como inconveniente, si alguien o algún proceso está usando todos los recursos de la máquina (con juegos 3-D o computación intensiva), los otros usuarios no tendrán suficientes recursos para sus tareas y percibirán un sistema lento. Este problema puede eliminarse si los recursos del CPU son los necesarios para el uso deseado y si el sistema operativo maneja dichos recursos de forma óptima.

## Historia

En los años 1970 era muy corriente conectar múltiples terminales, e incluso terminales gráficos, a un solo computador central (mainframe), para así aprovechar las ventajas del tiempo compartido.
Sin embargo, la idea de usar la interface más contemporánea X11 para soportar múltiples usuarios apareció en 1999. Fue implementada por un brasileño llamado Miguel Freitas, usando el sistema operativo Gnu/Linux y el sistema gráfico X11 (en ese momento mantenido por XFree86). La manera en que lo hizo Freitas fue un parche en el servidor X para ejecutar muchas instancias de X al mismo tiempo, de tal manera que cada una capturara eventos de ratón y teclado específicos y el contenido gráfico. Este método recibió el nombre del multiseat o multiterminal.
Después de Freitas, otras soluciones aparecieron en 2003, como las de Svetoslav Slavtchev, Aivils Stoss y James Simmons, que trabajaron en el acercamiento a evdev and faketty, modificando el núcleo Linux y permitiendo a más de un usuario usar independientemente la misma máquina. En ese tiempo, el Linux Console Project también propuso una idea para usar múltiples consolas independientes y luego múltiples teclados y ratones independientes en un proyecto llamado "Backstreet Ruby". Backstreet Ruby es un parche del núcleo Linux. Fue portar hacia atrás al Linux-2.4 el árbol de núcleo de Ruby. El objetivo de los desarrolladores de Linux Console fue mejorar y reorganizar la entrada, la consola y los subsistemas del framebuffer en el núcleo Linux, para que pudiesen trabajar independientemente uno del otro y permitir la operación multi-escritorio. La idea de Backstreet Ruby nunca fue terminada.
En 2005, el equipo de C3SL (Centro para la Computación Científica y el Software Libre), de la Universidad Federal de Paraná en Brasil, creó la solución basada con servidores X anidados, como Xnest y Xephyr. Con esta solución, cada servidor X anidado corre en cada pantalla de un servidor X anfitrión (por ejemplo Xorg) y una modificación en los servidores anidados les permite tener la exclusividad de cada conjunto de ratón y teclado. Estas soluciones eran las más usadas hoy en día debido a su estabilidad. En 2008, el grupo C3SL lanza el Multiseat Display Manager (MDM) para facilitar el proceso de la instalación y configuración de una caja multiseat. También en 2008, este grupo concibió un LiveCD para propósitos de pruebas.

## Ventajas y desventajas

Una configuración multiterminal tiene importantes ventajas; entre ellas:
* Ahorro de espacio (solo se necesita un computador para varias personas).
* Ahorro en costos en computadores y en consumo de energía (hasta un 80%).
* Ahorro en licencias de software.
* Mejor aprovechamiento de los recursos de computación.
* Menor costos de mantenimiento.
A su vez también importantes desventajas, entre ellas:
* Mayor inversión en hardware.
* Incomodidad en el ambiente de trabajo.
* Riesgo de que se malogre la PC y todo el equipo de trabajo se quede congelado.

## Usos

Un computador multipuesto puede usarse en lugares donde haya varias personas trabajando cerca una de la otra, como sucede en laboratorios de computación, cibercafés, cubículos en una oficina, departamentos de atención al cliente, etc. Algunos de estos lugares son:
* Escuelas.
* Universidades.
* Oficinas.
* Cibercafés.
* Bibliotecas.
* Hospitales.
* Hogares.

## Requerimientos

Es importante tener un ordenador con una buena placa base, un CPU potente y con buena cantidad de memoria (4 GB o más). Esto dependerá del número de puestos que se deseen conectar.
Para que varios usuarios puedan trabajar en un ordenador se necesita conectar a éste varios monitores, teclados y ratones. Por ejemplo, para formar una multiterminal de cuatro estaciones (para cuatro usuarios), se requieren cuatro monitores, cuatro teclados y cuatro ratones.
Cada monitor necesita ser conectado a una salida de video. Algunas tarjetas de video tienen múltiples salidas y soportan varios monitores. Adicionalmente, se pueden instalar en el ordenador varias de estas tarjetas de video, pero la mayoría de las máquinas modernas solo tienen un slot PCIe o AGP, así que, en general, estas tarjetas deberán ser PCI.
La mayoría de los ordenadores tienen solo un conector PS/2 para el teclado y otro para el ratón, así que para conectar varios teclados y ratones se debe hacer mediante conectores USB y HUBs USB.
En resumen:
* Ordenador con una placa base, un CPU potente y con una buena cantidad de memoria RAM.
* Disco duro.
* Varias placas de video PCI/AGP/PCI-E.
* Varios teclados PS/2 / USB.
* Varios ratones PS/2 / USB.
* Opcionalmente, varias tarjetas de sonido.
* Sistema operativo multiterminal preferido.

## Implementación

Actualmente, hay varias formas de hacer multiterminales, y nuevas maneras están siendo constantemente desarrolladas. No existe la "mejor versión", pero algunas versiones son mejores que otras.

### GNU/Linux

Userful Corporation desarrolló Userful MultiSeat Linux, una solución que habilita hasta diez usuarios para compartir simultáneamente un solo computador. Funciona con la mayoría de las tarjetas de video y los dispositivos USB Multi-Usuario disponibles en el mercado, soporta Edubuntu y otras distribuciones Linux, e incluye aplicaciones educativas de software libre.
En los sistemas operativos tipo Unix, como GNU/Linux, la interacción con el usuario se efectúa por el X Window System. Este sistema está basado en la arquitectura cliente-servidor, donde el cliente envía peticiones al servidor y recibe eventos de los dispositivos de entrada (teclados y ratones). Los servidores X tienen la definición de recurso, como puede ser un dispositivo de entrada o una ventana, que son dados a sus clientes. Estos recursos están asociados a una pantalla, la cual pertenece a un usuario. Por lo tanto, una multiterminal basada en GNU/Linux debe proveer una pantalla por cada usuario.
El servidor Xorg, la más reciente implementación del servidor X, no tiene soporte para múltiples pantallas. Este sigue el modelo del computador personal, el cual supone únicamente un usuario a la vez. Su entrada de datos está implementada sobre la entrada estándar del núcleo, llamadas terminales virtuales (VT). Estas reciben tal nombre debido a que simulan los viejos métodos de entrada de los antiguos mainframes. El VT esta totalmente implementado usando software, simulando un TTY, un dispositivo que estaba conectado a través de puertos seriales. El núcleo Linux soporta múltiples terminales, pero únicamente pueden recibir eventos de un teclado a la vez. Si más de un teclado está conectado al ordenador, los eventos serán enviados al VT activo. Eso quita la posibilidad de ejecutar dos o más servidores X, debido a que únicamente pueden activar un servidor a la vez, incluso si éstos usan distintas tarjetas de video. Para resolver estos problemas, se han creado varias soluciones diferentes, mencionadas aquí en orden cronológico:
* Multiterminal con ruby (aplicando un parche al núcleo).
* Multiterminal con evdev (un protocolo).
* Multiterminal con faketty (un módulo del núcleo).
* Multiterminal con Xnest.
* Multiterminal con Xephyr (una mejora al anterior).
La más usadas son la faketty y Xephyr. La solución con Xephyr es independiente del hardware, mientras que la faketty únicamente trabaja con un conjunto más restringido de tarjetas de vídeo como las de NVIDIA y SiS.
También podemos optar por la opción de utilizar terminales ZeroClient con MAX Madrid Linux 6.0 Multiseat. Esta distribución derivada de Ubuntu y dedicada al mundo educativo, tiene incluidos dos paquetes, max-multiseat y max-multiseat-storage, que darán la funcionalidad multiseat con ZeroClients compatibles con este sistema de forma sencilla y sin complicadas configuraciones.

### Windows

Para los sistemas operativos Windows 2000, XP, Vista y Windows 7, existen varios productos comerciales que permiten la implementación de configuraciones multiseat para dos o más puestos de trabajo. Dentro de estos productos se encuentran ASTER, BeTwin, y SoftXpand.

### Línea de tiempo, evolución del software multiseat comercial

* 1996, ThinSoft/BeTwin
* 2002, Userful Corporation
* 2004, Open-Sense Solutions (Groovix)
* 2006, NComputing
* 2009, FriendlySeats
* 2010, Windows MultiPoint Server 2010 de Microsoft

## Casos de éxito
### La instalación de computadores multi-usuario más grande del mundo

En febrero de 2009, el ministerio de Educación de Brasil se comprometió a entregar más de 350.000 estaciones de cómputo trabajando en Linux, en más de 45.000 colegios de áreas rurales y urbanas a lo largo del país. Las organizaciones escogidas para implementar este proyecto fueron la empresa canadiense de software Userful Corporation y su socio técnico ThinNetworks.

### Paraná Digital Project

Uno de los éxitos de las multiterminales está pasando en Paraná Digital Project, la cual está creando un laboratorio en 2000 escuelas públicas en el estado de Paraná, Brasil. Más de 1.5 millones de usuarios serán beneficiados cuando el proyecto termine, y habrá 40.000 terminales. Los laboratorios tendrán multiterminales de cuatro cabezas corriendo Debian. El costo de todo el hardware es un 50% menor que el precio normal; además no habrá costo alguno en software. Este proyecto lo desarrolla el Centro de Computação Científica e Software Livre (C3SL). El proyecto no ha concluido aún, pero los beneficios de las multiterminales son realmente grandes.

### Investigación de la Universidad Estatal de Míchigan en Tanzania

Desde 2008, los estudiantes de ingeniería eléctrica y de computación de la Universidad Estatal de Míchigan han instalado sistemas multiterminales con acceso a Internet en tres escuelas en Mto wa Mbu, Tanzania. El propósito del proyecto es estudiar el impacto de tener sistemas de computadores con acceso a Internet en un sistema educativo que no puede permitirse otros recursos educativos tales como libros. Los sistemas de computadores corren Ubuntu 8.04 de 32 bits y utilizan el Multiseat Display Manager de fuente abierta creado por C3SL. La investigación finalmente será usada en un esfuerzo para mostrar el impacto positivo de tener sistemas computacionales eficientes en costo en las escuelas a los oficiales de los gobiernos de los países del tercer mundo. El proyecto es patrocinado por George y Vickie Rock y Dow Chemical Company.

### Instalaciones notables

* En febrero de 2009, Userful anunció el despliegue de virtualización de escritorio más grande del mundo, con 356.800 puestos de escritorio en escuelas por todo Brasil. Este proyecto es una implementación comercial de multiseat basada Linux.
* NComputing proporcionó 180.000 puestos para los estudiantes de educación primaria en Macedonia del Norte.

### MAX Madrid Linux. Institutos de Innovación Tecnológica de la Comunidad de Madrid

Desde comienzo del curso 2010-2011, la Comunidad de Madrid pone a disposición de los alumnos los nuevos Institutos de Innovación Tecnológica. En este caso, se pretende llegar al ratio de un ordenador por alumno, con ordenadores de sobremesa, pantallas de 19 pulgadas y mobiliario específico para convertir un aula convencional en una tecnológica polivalente. Para ello se ha utilizado el Sistema Operativo MAX Madrid Linux 6.0 con un paquete especialmente diseñado para hacer funcionar ZeroClients en Multiseat.
Al utilizar hardware específico tipo ZeroClients, se desarrolla también la funcionalidad de sonido y usb privado para cada estación, de tal forma que el alumno tiene la sensación de disponer de un equipo completo con todas sus funcionalidades.