X Windows

XWindow permite utilizar un ambiente gráfico bajo Unix (Linux), a diferencia de la clásica Terminal ASCII que es conocida para todos los sistemas operativos *nix. El detalle técnico más importante que hay que reconocer de X es que utiliza una metodología cliente-servidor , esto es, existe un servidor X que es el encargado de generar y procesar gráficas, requisiciones, seguridad,etc; y un cliente X que solicita y recibe todas las requisiciones del servidor X.

Esto permite que cualquier Cliente X sea capaz de comunicarse a través de Red (TCP/IP) con un servidor X , el hecho que se de este tipo de comunicación no implica que este proceso no pueda ser llevado acabo en el mismo "Host" (computadora física) , inclusive casi todos los ambientes gráficos son llevados acabos en un mismo "Host" , esto es, el Cliente X y Servidor X operan en la misma computadora física, pero es de extrema importancia conocer que existe una división Cliente | Servidor aunque se este trabajando en el mismo "Host".

Configuración del Servidor X

Una vez que haya instalado todas las librerías o RPM's relacionados con X debe configurar la instalación del Servidor X , la utileria más común y fácil de utilizar es Xconfigurator , esta utileria genera el archivo de configuración XF86Config ubicado en el directorio /usr/X11R6/lib/X11 (XF86 es el servidor X que es distribuido con Linux), que contiene el tipo de tarjeta de vídeo, resolución de monitor,tipo de "mouse" y otras configuraciones de su ambiente gráfico; el archivo XF86Config contiene TODOS los valores que serán utilizados por el servidor X , sus detalles de configuración son extremadamente extensos, por lo tanto si desea realizar algún cambio manual se recomienda leer el manual de configuración ejecutando # man XF86Config , cabe señalarse que los cambios manuales son utilizados muy poco , ya que la utileria XConfigurator casi siempre genera un archivo XF86Config razonable.

Otra alternativa para Servidores X es : Accelerted-X for Linux desarrollado por Xi Graphics.

Ejecución Servidor X

Para ejecutar el Servidor X se utiliza el comando xinit , xinit inicia el servidor X (ambiente gráfico) bajo la terminal virtual (tty) F7, por lo tanto es posible alternar entre esta terminal gráfica y las otras 6 tty's ASCII (F1-F6) utilizando Ctrl-Alt-(F1-F7).

Al ejecutarse xinit también se lee un archivo llamado .xinitrc , este archivo contiene los clientes x que deben ser ejecutados bajo la terminal (tty(F7)), este archivo (.xinitrc) es buscado en el "Home Directory" (definido en /etc/passwd ) del usuario que esta ejecutando xinit , en dado caso de no encontrarse en este directorio se lee el xinitrc "default" que se encuentra en el directorio /usr/X11R6/lib/X11/ , este archivo "default" contiene únicamente un cliente X que es una ventana muy similar a un shell .

Ambientes de Ventana ("Window Managers")

Si ejecutó el comando xinit sin modificar el archivo .xinitrc habrá observado que el ambiente gráfico es casi NULO. Los clientes X que puede ejecutar en su ambiente son extensos, solo que para que sean activados debe definirlos dentro del archivo .xinitrc , con la intención de evitar definir una gran cantidad de clientes dentro de este archivo .xinitrc , se han desarrollado Ambientes de Ventanas ("Window Managers"), estos Ambientes de Ventanas agrupan cientos o miles de clientes X para otorgar un ambiente gráfico integral. Algunos de estos Ambientes de Ventanas son: fvwm2, afterstep, twm, wmaker, wmx y algunos otros.

Genere un archivo .xinitrc bajo su "Home Directory" que contenga lo siguiente:

 
#!/bin/sh
exec fvwm2

Ahora si ejecuta xinit observará un ambiente gráfico un poco más dinámico, estos ambientes de ventanas están localizados en el directorio /usr/X11R6/bin ; dentro del archivo .xinitrc es posible definir un sin numero de posibilidades desde colores de fondo hasta clientes x que deben ser ejecutados automáticamente (como Netscape Navigator), no solo esto , sino como cada usuario puede definir su archivo .xinitrc , es posible definir un ambiente de trabajo en base a especificaciones de cada usuario del sistema.

Ambientes de Trabajo: más allá del Ambiente de Ventana ("Window Managers")

Si bien son benéficos los ambientes de ventana, son tediosos en la manera que deben ser definidos los clientes X , para ofrecer una solución más integral han surgido ambientes de Trabajo, algunos de estos ambientes de Trabajo son: GNOME y KDE, cabe señalar que estos ambientes de trabajo no son ambientes de ventana , inclusive requieren de un ambiente de ventanas ("Window Manager"); es posible ejecutar un ambiente de trabajo (GNOME o KDE) bajo cualquier ambiente de ventanas, aunque KDE posee su propio ambiente de ventanas llamado kwm , no es obligatorio ejecutarlo bajo este esquema.

De la misma manera en que xinit utiliza .xinitrc para buscar detalles específicos de arranque, estos ambientes de trabajo también utilizan archivos como .kde o .gnome que permiten a cada usuario definir el comportamiento (color de fondo,tipo de letra..) que observará en pantalla.

startx

Para facilitar la ejecución tanto del servidor X , clientes X y ambientes de trabajo se utiliza el comando startx

startx es un script que contiene las secuencias que deben ser utilizadas al invocar un ambiente gráfico, esto es, se encarga de ejecutar xinit , el ambiente de ventanas (fvwm2,afterstep,twm), buscar los archivos .xinit o .kde bajo el "Home Directory" del usuario que invoque startx e invocar un Ambiente de Trabajo si este ha sido definido.

xhost

Debido a la estructura cliente-servidor de Xwindow, al servidor X pueden establecerse varias sesiones; cuando solo se esta utilizando un "Host" esto no suele ser problema, ya que la ejecución de startx inicia tanto el servidor X como el (los) cliente X , sin embargo cuando se opera en un ambiente de Red es posible que existan 10 o 20 usuarios que deseen utilizar este servidor X y debido a esto es necesario establecer un esquema de seguridad.

xhost permite definir este acceso de seguridad, el comando xhost define que tipo de usuarios tendrán acceso al servidor X , como se menciono anteriormente, cuando solo se utiliza startx se asume que ese usuario esta permitido conectarse al servidor X , esto es debido a que se ejecuta el servidor X y cliente X por el mismo usuario, sin embargo si el servidor X ya se encuentra activo, xhost determina si el usuario esta permitido acceso.

Debido a que xhost ofrece extensas configuraciones se recomienda observar el manual de xhost ;NOTA: Si desea permitir acceso a su Servidor X para cualquier usuario ejecute (como raíz): xhost + , esto elimina la revisión de usuarios.

Links: