sábado, 12 de febrero de 2011

INTRODUCCIÓN Y ANTECEDENTES: (TERMINALES GRAFICAS )


En los sistemas Unix esto ha existido prácticamente desde siempre ya que los usuarios se conectaban al servidor mediante telnet y lanzaban procesos de forma remota. El telnet es una aplicación cliente de terminal que permite desde cualquier PC de la red conectarse a un servidor. Para que la conexión remota sea posible, el servidor deberá tener instalado el software de servidor de telnet que en Debian es el paquete telnetd. Al comenzar la conexión el usuario debía identificarse con nombre (login) y contraseña (password) para poder utilizar el sistema, de la misma forma que lo haría si se sienta en la consola principal del servidor. El telnet está prácticamente en desuso ya que la información que se envía desde el cliente al servidor y viceversa está sin encriptar y cualquier usuario que pinche la red podrá averigurar el nombre del usuario y su contraseña fácilmente.
El sustituto del telnet es el ssh (Secure SHell) que permite conectarse a un servidor remoto pero de forma segura ya que las comunicaciones en todo momento van encriptadas con algoritmos muy seguros de forma que es prácticamente imposible descifrar la información. Para más información sobre ssh, haga clic aquí.
En todo momento estamos hablando de accesos remotos en modo texto, es decir, mediante un símbolo del sistema introduciendo comandos como si se tratara de una ventana de ms-dos o un terminal en modo texto de unix. En los años 80-90 era impensable que múltiples usuarios pudieran conectarse a un sistema remoto con terminales gráficos ya que requieren de una gran cantidad de memoria.
En la actualidad, debido al abaratamiento de la memoria RAM, esto se ha convertido en una realidad que ha llegado a los centros educativos y a las pequeñas y medianas empresas.
Servidor de terminales en Linux
Servidor de terminales mediante X-Window
Linux por sí solo es un servidor de terminales ya que es un sistema operativo multiusuario (varios usuarios pueden ejecutar aplicaciones simultaneamente en el servidor) y utiliza para las aplicaciones gráficas el sistema X-Windows.
El sistema X-Window es un sistema gráfico cliente-servidor orientado a red que se compone de servidor gráfico X (que es quien dibuja las ventanas) y clientes X (que son las aplicaciones gráficas), con lo cual resulta ideal si se quiere utilizar de forma remota. Cuando ejecutamos aplicaciones gráficas directamente sentados en la consola principal del servidor, las aplicaciones dirigen su salida hacia el servidor grafico local cuya dirección IP es 127.0.0.1, pero cuando ejecutamos aplicaciones gráficas desde un terminal, la salida se dirigirá hacia el servidor gráfico del terminal.
Para disfrutar de un terminal remoto en modo gráfico con X-Window, debemos disponer en nuestro terminal remoto de un servidor grafico X. Los clientes de nuestro servidor gráfico X serán las aplicaciones que lancemos en el servidor y que redigirán la salida hacia nuestro servidor gráfico para que podamos visualizar en nuestro terminal las ventanas generadas por las aplicaciones. Las aplicaciones se ejecutan en el servidor pero las ventanas se visualizan en el terminal.



Para realizar esto de forma sencilla y segura, podemos utilizar ssh. Si en el servidor disponemos de un servidor ssh con la opción de 'redirección X' activada, desde el cliente podemos conectarnos al servidor con un cliente ssh y ejecutar aplicaciones gráficas ya que el servidor ssh se encarga de redireccionar la salida gráfica de las aplicaciones que ejecutemos, hacia nuestro terminal, y además las comunicaciones irán encriptadas. También es posible conectarse por telnet y redirigir la salida gráfica hacia el servidor X de nuestro terminal pero en este caso las comunicaciones viajarán sin encriptar.
Servidor de terminales freenx server
El sistema freenx server utiliza el sistema X-Window pero añadiendo algunas mejoras como la compresión de los datos. Para su funcionamiento es necesario ejecutar en el servidor un componente (nxserver) y en el terminal un cliente de nx (nxclient). El servidor y el cliente para linux se puede descargar de http://freenx.berlios.de
Ventajas de la utilización de un servidor de terminales en centros educativos
En centros educativos, disponer de algún aula con un sistema de terminales nos ofrece algunas ventajas:
  • Aula de bajo coste: Con un PC moderno para el servidor con suficiente memoria RAM (por ejemplo 4 GB) y 12 PCs obsoletos (Pentium I, Pentium II), podemos tener un aula de informática de 12 PCs por poco más que el precio de uno. El puesto de trabajo del profesor podría ser el propio servidor.
  • Aula de bajo mantenimiento a nivel software: Como todos los PCs se conectan al servidor y ejecutan sus aplicaciones, solo es necesario instalar y configurar aplicaciones en el servidor. Lo mismo ocurre con las impresoras y el acceso a Internet, solo hay que configurarlo en el servidor. Solamente hay que mantener un PC para que funcionen los 12.
  • Aula de bajo coste de actualización: A medida que pasa el tiempo, los PCs se van quedando obsoletos y es necesario ir ampliando el disco duro, la memoria, y cuando se quedan pequeños, hay que cambiar el PC completo. En éste caso solo será necesario aumentar las prestaciones del servidor.
  • Datos más seguros: Al quedar todos los documentos de los usuarios almacenados en el servidor, el acceso no autorizado a datos de otros usuarios es más dificil ya que requiere el acceso físico al servidor. La realización de copias de seguridad es más sencilla ya que todos los documentos de los usuarios se encuentran en el servidor.
También tiene algún inconveniente, por ejemplo la utilización de los medios de almacenamiento locales (disquetera, discos usb) es compleja, de hecho se desaconseja. Como las aplicaciones se ejecutan en el servidor, si introducimos un disquete en el terminal, el servidor no va a poder acceder a su contenido. Lo mismo ocurre con los pendrives, además los pentium I no disponen de puerto USB.
La solución que se suele adoptar en un sistema de éste tipo para el acceso físico a los documentos, es utilizar una herramienta web tipo blog, wiki o portal, de forma que los usuarios tienen acceso a sus documentos vía web. Con una herramienta web adecuada, los usuarios podrán subir y bajar archivos, así como crear o eliminar carpetas de una forma sencilla. Para almacenar sus documentos en un pendrive, los usuarios deberán ir a un terminal con puerto USB y descargar sus documentos desde la web.
Hay quienes piensan que esta forma de trabajo es ventajosa ya que podremos acceder a nuestros documentos desde cualquier PC de la intranet, y si el servidor web es accesible desde fuera, desde cualquier PC de Internet.
Si el servidor de terminales es un potente servidor con una gran cantidad de memoria, podrá satisfacer las necesidades de un gran número de usuarios de forma simultánea. En algunos centros educativos están proliferando este tipo de sistemas ya que con un servidor que disponga de 8 GB de memoria RAM y discos duros rápidos, se pueden conectar unos 30 usuarios simultáneos desde terminales (que pueden ser PCs obsoletos como Pentium I) y disfrutar de las prestaciones de un PC actual y ejecutar cualquier aplicación que haya instalada en el servidor, además el único equipo que hay que mantener es el servidor con lo cual ahorramos costes de mantenimiento. El proyecto LTSP ( http://www.ltsp.org en inglés) están enfocados a implantar este tipo de sistemas en centros educativos.
El único requisito que deben cumplir los PCs que hacen de terminales es disponer de tarjeta de red y disponer de servidor gráfico X. Todos los Linux disponen de servidor gráfico X. Una distribución de Linux ligera apta para ser usada en los terminales es Damn Small Linux ( http://www.damnsmalllinux.org ). También existen servidores gráficos X para sistemas operativos Microsoft Windows, algunos de pago como X-win32 y libres como Xming o como cygwin ( http://www.cygwin.com ) que mas que un servidor X para Windows es casi un Unix para Windows.
            SERVIDOR DE TERMINALES
Un servidor de terminales es un equipo utilizado para conectar múltiples dispositivos de entrada-salida, posiblemente telecontrolados, a una unidad central de proceso.
Interfaz gráfica de usuario de GNOME

Entorno de escritorio KDE 4.
Interfaz gráfica de usuario de Xfce.

X es primariamente una definición de primitivas de protocolo y gráficas, y deliberadamente no contiene especificaciones de diseño de interfaz de usuario, como estilos de botón, menú, barra de título para las ventanas. En vez de eso, un software de aplicación (tal como los manejadores de ventana, Widget toolkits de GUI y ambientes de escritorio, o las interfaces gráficas de usuario específicas de una aplicación) definen y proporcionan tales detalles. Como resultado, no hay interfaz X típica y varios ambientes de escritorio han sido populares entre los usuarios.
Un manejador de ventana controla la colocación y la apariencia de las ventanas de aplicación. Esto puede resultar en interfaces semejantes a las de Microsoft Windows o Macintosh (los ejemplos incluyen Metacity en GNOME, KWin en KDE, Xfwm en Xfce, o Compiz) o tener controles radicalmente diferentes (tales como tiling window manager, como wmii o Ratpoison). Los manejadores de ventana abarcan en sofisticación y complejidad desde los más simples (ej., twm, el manejador de ventana básico suministrado con X, o evilwm, un manejador de ventana extremadamente liviano) hasta los ambientes de escritorio más completos tales como Enlightenment.
Muchos usuarios usan X con un ambiente de escritorio, que, independientemente del manejador de ventana, incluyen varias aplicaciones usando una interfaz de usuario consistente. GNOME, KDE y Xfce son los ambientes de escritorio más populares. El ambiente estándar de Unix es Common Desktop Environment (CDE). La iniciativa freedesktop.org se dirige a la interoperabilidad entre el escritorio y los componentes necesarios para un escritorio X competitivo.
Puesto que el X es responsable de la interacción entre el teclado y el ratón con el escritorio gráfico, ciertos atajos de teclado han llegado a estar asociados con X. Control-Alt-Backspace típicamente termina la sesión actualmente corriendo en X, mientras que el Control-Alt conjuntamente con una tecla de función cambia a la consola virtual asociada. Sin embargo, esto es un detalle dejado al diseño de una implementación de servidor X y no es universal; por ejemplo, las implementaciones de servidor X para Windows y Macintosh típicamente no proporcionan estos atajos de teclado.

X-SERVER
El sistema gráfico utilizado en Linux es X-Window, este sistema asume que las aplicaciones actúan como un cliente (x-client) de un servidor X-Window (x-server). El x-server se encarga de lograr la interacción entre el usuario y la aplicación, el rol del servidor es desplegar la imagen en pantalla, y recibir los eventos de teclado, mouse y otros dispositivos. Hay distintas implementaciones de x-servers, los hay para Linux, MacOSX y también para Windows.
Mientras mejor sea el x-server, mejor es la representación de la aplicación. Para ir mejorando un servidor x-server se van proponiendo extensiones (x extensions) y con el tiempo estas extensiones se van implementando en los distintos x-server y drivers. Ejemplos de x-server son XFree86 y Xorg.
Aunque normalmente tanto los x-client y el x-server se ejecutan en un mismo computador, la separación entre x-client y x-server también permite que una aplicación que se ejecuta en un computador, pueda utilizarse desde otro computador en forma remota con un x-server corriendo en el computador local al usuario en forma independiente del sistema operativo.




No hay comentarios:

Publicar un comentario