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...

4 comentarios:

Gerson dijo...

Al parecer hay una tendencia a confundir el servidor X con el entorno de escritorio y con el gestor de ventanas de un sistema operativo.

Al principio no sabía exactamente en qué consistía el servidor X, pero luego de investigar sobre el tema (a mí también me tocó el mismo jejeje), y complementando con tu post, conocí bien su funcionamiento, sobre todo cuando dices de que es como "un programa que dibuja ventanas".

Me pareció interesante que esté basado en una arquitectura cliente-servidor, que permite, como también dijiste, tener "clientes X" a veces en el mismo equipo y a veces no.

¡Saludos!

Unknown dijo...

es cierto eso de confundirlo con el gestor de ventanas, es mas yo tenia la misma opinión pero al leer me di cuenta que estaba equivocado.
S&S.
#chentex

Wendy dijo...

Si es muy cierto, como les comentaba en mi post, Microsoft maneja su interfaz gráfica como como parte de su kernel, así como otros sistemas operativos, a diferencia de Linux que su infraestructura GUI no se incluye en el kernel sino que es un programa aparte "el gestor de ventanas".

Es bien importante entender esta diferencia porque como ustedes dicen tiende mucho a confundir.

- dijo...

Me pareció muy interesante la información, aunque un poco general, tus ejemplos me confundieron al principio, los tuve que volver a leer :D.

Mi pregunta es, se pueden comunicar los clientes?, si es afirmativo, como lo hacen?