martes, 17 de febrero de 2009

Servidores X

Antes que nada, ¿Qué es X?


La interfaz Gráfica de Usuario (GUI-Grafical User Interface) o "Funcionalidad de Ventanas" se ha convertido en una parte de la máquina que todo el mundo utiliza y conoce.

Cualquier proveedor de software de sistemas de cliente, ya sea libre o no, que quiera ser tomado en serio debe proporcionar una interfaz gráfica de usuario (GUI) como primer método de interacción con el usuario. Microsoft incluye el suyo como parte del sistem
a principal, o kernel, al igual que muchos otros. La mayoría de las distribuciones GNU/Linux la incluyen en la instalación por defecto.

Sin embargo, en GNU/Linux, la infraestructura GUI no se incluye en el kernel sino que es un programa aparte con el nombre de “El Sistema de Ventanas X”.

X no es en realidad un GUI. Los GUIs que GNU/Linux suele tener son GNOME, KDE. La mayoría de las distribuciones GNU/Linux son liberadas con una GUI configurada como interfaz por defecto, que puede ser comparada con las GUI de cualquier otro sistema operativo. Y el usuario final, que utiliza el editor de textos, la hoja de cálculo, el cliente de correo y el navegador web no necesita conocer todos los detalles técnicos.



Entonces, ¿qué es exactamente X si no es una GUI?

X es la infraestructura que un GUI utiliza para hacer su trabajo. Por ejemplo, un GUI maneja los botones, las listas desplegables, ventanas, etc., mientras que X maneja el dibujo a bajo nivel de las fuentes, líneas e imágenes en la pantalla y lee las entradas por teclado y ratón así como la comunicación entre programas de éstos. También puede manejar la distribución de la red de usuarios y sesiones remotas.


X fue diseñado desde el principio pensando en redes y adoptó un modelo "cliente-servidor".

En el modelo de X el Servidor X se ejecuta en la máquina que tiene el teclado, monitor y ratón. El servidor es responsable de manejar la pantalla, la entrada de datos a través del teclado, el ratón, etc.

Cada aplicación X (como una XTerm o Netscape) es un cliente. Un cliente manda mensajes al servidor como por ejemplo, "Por favor dibuja una ventana en estas coordenadas" y el servidor devuelve mensajes como "El usuario ha pulsado el botón OK".

Sí solo hay un ordenador involucrado, como en una casa o una pequeña oficina, el servidor X y los clientes X seguramente se ejecutarán en el mismo sistema.

Para resumir el concepto podemos decir que un servidor X es la pantalla y el teclado, lo que mucha gente acostumbrada a MS Windows pensaría que es el cliente, y un cliente X es un programa que abre y usa ventanas, como puede ser un navegador web, un cliente de correo, un procesador de textos y demás.

Viéndolo desde otro punto de vista, un servidor X es una máquina en una red donde existe un programa de “hacer ventanas” y otras máquinas, o clientes X, se conectan a ella para crear ventanas, escribir o mostrar texto, imágenes o lo que sea, en la ventana y puede leer cualquier entrada que el usuario haga sobre esa ventana. Los clientes X a menudo corren en la misma máquina, pero a veces no.




Bueno, espero que se haya entendido bien cómo funciona todo esto de los servidores X. Traté de describir con ejemplos claros y dibujos el funcionamiento de este tipo de infraestructura.

Si quieren consultar más información al respecto, les dejos los siguientes links:

http://www.freebsd.org/doc/es_ES.ISO8859-1/books/handbook/x-understanding.html

http://www.tu-chemnitz.de/docs/lindocs/RH73/RH-DOCS/rhl-rg-es-7.3/ch-x.html


Espero sus comentarios...