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