El protocolo X-windows fue desarrollado a mediados de los a�os 80 como respuesta a la necesidad de un interfaz grafico transparente sobre todo para sistemas Unix.
X-windows es el encargado de visualizar la informacion de manera grafica y es totalmente independiente del sistema operativo (los sistemas Unix/Linux no necesitan de X-windows para funcionar, pudiendo trabajar en modo texto). La gran diferencia entre X-windows y la interfaz grafica de otros sistemas operativos es que X-windows distribuye el procesamiento de aplicaciones, especificando un enlace cliente-servidor. El cliente X especificara "Que hacer" al servidor X, que se encargara de "Como hacerlo".
Pero dejemonos de teoria y pasemos a un ejemplo practico. La gran ventaja de X-windows es que el servidor X de una aplicacion y el cliente X donde trabajamos no tienen porque estar en la misma maquina. Podemos estar utilizando X-windows en nuestra maquina, conectarnos a otra remota, ejecutar un programa en esta maquina remota y utilizar/ver este programa en nuestra maquina local. Todo esto independientemente de la plataforma/sistema operativo que el ordenanor remoto utilice. Como veis las posibilidades son muchas y potentes.
Cliente X
|
|
Xlib
|
|
Servidor X
|
|
Sistema operativo
Para utilizar el sistema en modo grafico es necesario instalar X-windows en tu sistema. Existen servidores comerciales y bajo licencia GNU, en estos apartados nos basaremos en el X-windows bajo licencia GNU, XFree, ya que es el que se incluye en todas las distribuciones de Linux.
Una
vez instaladas las X-windows tendremos que configurarlas para que funcionen
en nuestro sistema. El fichero de configuracion del las X-windows se llama XF86Config
y generalmente se encuentra en el directorio /etc/X11/.
Unos datos que teneis que saber antes de configurar X-windows son:
/usr/X11R6/bin/SuperProbe os puede ayudar
a obtener informacion sobre vuestra tarjeta.Antes de lanzar X-windows mediante el comando startx debemos asegurarnos de la correcta configuraci�n de los diferentes par�metros del mismo (teclado, rat�n, tarjeta de v�deo, etc.). Hay diferentes m�todos para hacer esto.
En primer lugar tenemos los programas de configuraci�n semi-autom�tica. Seg�n la distribuci�n de Linux que utilicemos tendremos a nuestra disposici�n una serie de programas que nos permitir�n realizar la configuraci�n de XWindow de una manera m�s o menos sencilla:
Estos programas nos preguntar�n cosas b�sicas sobre el teclado, el monitor, la videomemoria o la tarjeta de v�deo instalada (lo har�n cuando no sean capaces de detectarlas por s� mismos). Debemos responder siempre la opci�n m�s acertada y en cuanto a monitores, nunca especificar caracter�sticas superiores de las que disponemos. Un caso muy habitual en tarjetas muy nuevas es no encontrar un soporte exacto para los �ltimos chipsets, problema que se suele corregir acudiendo al soporte de framebuffer del kernel o esperando a que quienes trabajan en XFree86 obtengan por parte de los fabricantes (poco colaboradores) la informaci�n sobre c�mo programar sus tarjetas.
En ciertos casos tambi�n se nos puede preguntar si deseamos que el sistema arranque directamente en XWindow o incluso testear los diferentes modos de v�deo para ver que si son correctamente soportados.
Adem�s para que estos programas realicen una correcta configuraci�n el sistema debe estar ya correctamente configurado en cuanto a modo texto se refiere. Por ejemplo, Xconfigurator no activar� el teclado en castellano para XWindow si no hemos especificado que el idioma en que queremos usar nuestro Linux es este mismo, mediante la orden
export LANG=es_ESbien en la l�nea de comandos, o en el fichero
/etc/profile. Cuando Xconfigurator
detecta esta variable de entorno ya sabe qu� lenguaje utiliza el usuario y por
tanto configurar� XWindow para el correcto uso del teclado en este lenguaje. Otras
variables indican el tipo de rat�n, etc. y suelen ser correctamente especificadas
por el programa de instalaci�n. En el caso de XF86Setup la configuraci�n
permite una mayor participaci�n por parte del usuario, ya que en lugar de realizar
una configuraci�n autom�tica proporciona una lista de opciones para cada apartado,
de modo que si conocemos nuestro hardware es la mejor manera de configurar el
sistema. Adem�s, a la hora de elegir resoluciones de v�deo, este programa permite
especificar cual es la resoluci�n por defecto deseada mientras que Xconfigurator
deja marcada la menor de ellas como "por defecto" (o la primera que seleccionemos).
El programa de
configuraci�n xf86config es el m�s antiguo de todos, y realiza
la configuraci�n mediante preguntas que se responder�n con teclado. Nos preguntar�
la tarjeta de v�deo, monitor, rango de frecuencias del monitor, videomemoria
y resoluciones de trabajo deseadas, as� como el mapa del teclado a utilizar
(es 102 = Espa�a 102 teclas).
Como siempre, el
m�todo m�s eficaz de configurar XWindow es directamente editando los ficheros
de configuraci�n.Y es que otro m�todo de configuraci�n b�sico es sencillamente
editar el fichero /etc/X11/XF86Config, que es en realidad lo que
hacen todos los programas comentados anteriormente. En este fichero la configuraci�n
est� dividida en secciones y mediante cualquier editor de texto llano es posible
cambiar cualquier par�metro de XWindow.
Este fichero se divide en varias categor�as o secciones (todas ellas con m�s subopciones muy bien comentadas en dicho fichero de configuraci�n):
RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled" (etc.)
Protocol "Standard" LeftAlt Meta RightAlt Meta ScrollLock Compose RightCtl Control XkbKeycodes "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc101)" XkbGeometry "pc" XkbRules "xfree86" XkbModel "pc101" XkbLayout "es"
# Para un rat�n microsoft mouse o un genius: Protocol "Microsoft" Device "/dev/mouse"
Section "Device"
Identifier "Mach64 GB"
VendorName "ATI"
BoardName "ATI 3d Rage II"
VideoRam 8192
EndSection
Section "Screen"
Driver "accel"
Device "Mach64 GB"
Monitor "My Monitor"
DefaultColorDepth 16
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480" "320x200"
ViewPort 0 0
Virtual 1024 768
EndSubsection
Subsection "Display"
Depth 8
Modes "1024x768" "800x600" "640x480" "320x200"
ViewPort 0 0
Virtual 1024 768
EndSubsection
EndSection
Del entorno XWindow
se puede salir en cualquier momento mediante la combinaci�n de teclas Ctrl+Alt+Borrar,
o bien seleccionando LOGOUT en el men� del gestor de ventanas que utilicemos.
Para volver a las
consolas de texto bastar� con utilizar la combinaci�n de teclas Ctrl+Alt+F1,
+F2, etc (hasta F6 en las instalaciones por defecto). Para volver al terminal
gr�fico se utiliza de F7 en adelante (Ctrl+Alt+F7, +F8, etc.).
Si durante la instalaci�n
(o en la l�nea apropiada del fichero XF86Config) seleccionamos
varias resoluciones de v�deo, es posible cambiar entre ellas mediante las teclas
Ctrl+Alt+'+' y Ctrl+Alt+'-' (los signos del teclado
num�rico).
Adem�s, si por defecto marcamos 8bpp (o 16 bpp) en las opciones, nada nos impide lanzar posteriormente XWindow en la profundidad de color deseada:
[sromero@localhost]# startx -- -bpp 8 [sromero@localhost]# startx -- -bpp 16 etc.Tambi�n es posible establecer la profundidad de color por defecto mediante una l�nea DefaultColorDepth = 16 en el fichero de configuraci�n XF86Config, secci�n Screen.
Por �ltimo, saber
que podemos lanzar m�s de una sesi�n de XWindow simult�neamente (en las consolas
accesibles desde Ctrl+Alt+F8, +F9, etc.), mediante:
[sromero@localhost]# startx -- :1 [sromero@localhost]# startx -- :2 etc.
En
el fichero /etc/X11/XF86Config en la secci�n screen correspondiente
al servidor que se est� utilizando actualmente, en la subsecci�n Display correspondiente
a la Depth en que estemos trabajando, buscamos la linea:
Modes "resoluci�n_1" "resoluci�n_2"...Un ejemplo:
Modes "1024x768" "800x600" "640x480" "320x200"Entonces ponemos la resoluci�n que queramos que sea por defecto de primera. Estas resoluciones puestas aqu� son entre las que podremos cambiar si queremos al pulsar
Ctrl+
Alt+ '+' � Ctrl+Alt+'-', una vez arrancado X-windows..
En
el fichero /etc/X11/XF86Config, en la secci�n screen correspondiente
al servidor que se est� utilizando actualmente, en la subsection Display correspondiente
a la Depth en que estemos trabajando, a�adimos la l�nea:
Virtual tama�o_x tama�o_y #en p�xelesUn ejemplo:
Virtual 1024 768Hay que puntualizar que si existe una resolucion definida de
Modes mayor que el escritorio
virtual, esta no se podra utilizar. Resumiendo, no se puede tener una resolucion
de trabajo mayor que el escritorio virtual.
Hay dos maneras:
Mediante la l�nea de comandos:
[user@localhost]# startx --bpp resoluci�n (d�nde resoluci�n es 8, 16,24 � 32)Mediante el fichero de configuraci�n:
En el fichero /etc/X11/XF86Config,
en la secci�n screen correspondiente al servidor que se est� utilizando actualmente,
a�adimos la l�nea:
DefaultColorDepth depth_que_queramos_utilizarUn ejemplo:
DefaultColorDepth 16Un Depth con valor 8 significa que trabajaremos a 256 colores, uno con valor 32 truecolor. No todas las tarjetas graficas podran utilizar todos los Depth disponibles en todas las resoluciones, todo dependera de la tarjeta grafica y de la memoria que esta tenga.
En Linux es perfectamente posible pedir que el arranque del sistema se haga en modo gr�fico, y que el login y password se introduzcan directamente en una ventana XWindow para la posterior carga del gestor de ventanas habitual que use dicho usuario.
Es
decir, podremos identificarnos y aparecer directamente bajo X sin necesidad
de ejecutar startx.
Para arrancar directamente en X Window (o no hacerlo) todo el proceso de configuraci�n gira en torno a cambiar el runlevel (o nivel de ejecuci�n en que arranca Linux).
El runlevel es, dicho de una manera sencilla, el modo en que arranca Linux. Por defecto el runlevel suele ser el 2 � el 3, es decir, arranque en modo texto o consola. Para cada distribuci�n suele haber una lista de runleves y sus significados, aunque casi se puede decir que son similares para todas ellas. Para Redhat, por ejemplo, la lista es la siguiente:
# Porci�n del fichero /etc/inittab # Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this)Como puede verse, el arranque normal por defecto para que puedan acceder usuarios a Linux es 2 (si no tenemos red) o 3 si queremos usar servicios de red, siendo normalmente este el runlevel por defecto. Como puede verse, X11 tiene asignado el runlevel al 5. Si cambiamos el runlevel por defecto para que arranque en el 5, nos aparecer�n directamente X Window.
Para cambiar este
runlevel por defecto hay que editar el fichero /etc/inittab, y
acudir a la siguiente l�nea:
id:3:initdefault:El valor numerico antes de initdefault indica el runlevel de arranque por defecto. Si lo cambiamos de 3 a 5, la pr�xima vez que arranquemos Linux arrancar� en X Window:
id:5:initdefault:Para que el proceso se ejecute correctamente debe tener instalado un gestor de arranque en runlevel 5, que es el programa encargado de pedir el login+passwd y arrancar el gestor de ventanas adecuado. Puede elegir entre xdm (el que viene por defecto con XWindow), kdm (version de kde del mismo) y gdm (versi�n aportada por gnome). Cada una de ellas dispone de ciertos ficheros de configuraci�n o ejecutables para cambiar el fondo del login, el lenguaje, gestor de ventanas, etc. Consulte los ficheros en los paquetes relacionados.
Haga "man runlevel" para mas informaci�n sobre runlevels.
En las �ltimas versiones de Redhat, el programa Xconfigurator
le permite elegir si desea o no arrancar directamente en XWindow (�l mismo modifica
el runlevel por defecto) mediante una simple pregunta a la que usted debe responder
SI (Si desea arrancar en runlevel 5) o no (si desea arrancar en runlevel 3).
Esta pregunta se le suele realizar al finalizar la selecci�n de resoluciones
y antes de salir de Xconfigurator.
Una vez arranque en XWindow, puede volver a cualquier consola
de texto mediante las teclas Ctrl+Alt+F1, Ctrl+Alt+F2, etc. (por
defecto entre F1 y F6 tendr�s 6 consolas de texto), y volver a XWindow en cualquier
momento mediante Ctrl+Alt+F7 en adelante.
En algunas distribuciones puede ser necesario indicarle a inittab d�nde est� el gestor de runlevel 5 que debe arrancar:
Para xdm:
#Run xdm in runlevel 5 x:5:respawn:/usr/X11R6/bin/wdm -nodaemonPara gdm:
x:5:respawn:/etc/X11/prefdm -nodaemonEstas l�neas suelen ser autom�ticamente incluidas en el fichero por los rpm/deb instaladores de xdm, kdm y gdm. Consulte en la ayuda de dichos programas para m�s informaci�n.
Un gestor de ventanas no es otra cosa que el conjunto de programas, ventanas, funcionalidades, .... que hacen posible que el usuario pueda interactuar con el sistema de forma grafica y no en modo texto.
Para usar un gestor de ventanas, hay que tener configurado un servidor X. Tambien hay que decir que el gestor de ventanas utilizado es totalmente independiente del servidor X utilizado.
Gestor de ventanas
|
|
Cliente X
|
|
Xlib
|
|
Servidor X
|
|
Sistema operativo
Al
contrario que en otros sistemas operativos, en Linux no es necesario utilizar
un servidor X - gestor de ventanas para usar el sistema. El
sistema operativo y el conjunto servidor X - gestor de ventanas
usado, son cosas totalmente diferentes, independientes entre si. Es mas, existen
usuarios que trabajan en modo texto sin ningun problema y sin usar un interfaz
grafico.
Existen numerosos y variados gestores de ventanas para Linux, unos mejores y otros mas desarrollados y estables. Es el usuario el que tiene que decidir que gestor satisface mejor sus necesidades, pudiendo incluso tener mas de uno instalado. Para aclarar un poco las cosas, podriamos decir que, si un ordenador es usado por varios usuarios, todos utilizaran el mismo servidor X pero no necesariamente el mismo gestor de ventanas.
Una vez configurado X se hace necesario decirle a XWindow qu� gestor de ventanas debe arrancar. Dicho de una manera sencilla, XWindow es la conjunci�n de 3 componentes:
/usr/X11R6/bin/X que
apunte al servidor que usemos:
Ej: ln -s /usr/X11R6/bin/XF86-S3 /usr/X11R6/bin/X (le dir�a que utilice el servidor de las S3).Este enlace es creado por el programa de configuraci�n cuando seleccionamos la tarjeta en la lista que nos presenta.
Gestores de ventanas hay muchos: kde, afterstep, gnome, WindowMaker, icewm, etc, y todos tienen sus respectivos ejecutables: startkde, afterstep, gnome-session, wmaker, icewm, etc. Toda esta explicaci�n se ha dado por un motivo muy sencillo: la posibilidad de elegir el Gestor de Ventanas deseado es parte de la configuraci�n activa de XWindow, y vamos a ver la manera de decirle a XWindow qu� gestor deseamos utilizar.
Para ello, simplemente
debemos ir al directorio HOME del usuario en cuestion (/home/usuario)
o de root (/root) y editar (cre�ndolo si no existe) el fichero
de texto .xinitrc . En este fichero pondremos una l�nea que indicar� el Gestor
de Ventanas que deseamos utilizar, en el formato:
exec ejecutable_del_gestor_de_ventanasAdem�s podemos utilizar l�neas de comentarios que comiencen por el car�cter '#' y que XWindow ignorar�:
Ejemplos de ficheros
.xinitrc:
# utilizar afterstep exec afterstepotro ejemplo podr�a ser lanzar kde:
# utilizar KDE exec startkdeAs�, dependiendo del ejecutable que lancemos (startkde, gnome-session, icewm, wmaker, ctwm, fvwm2, wmaker, blackbox, etc.) podremos arrancar el WM deseado.
Muchas distribuciones incluyen en sus CDes una serie de gestores de ventanas. Tambien os lo podeis bajar de sus respectivos servidores web: