Introducción al sistema X window
El X window system es el GUI estandar para todas las plataformas UNIX, incluyendo Linux. Diferente a Windows y MacOS , en Linux y Unix el GUI está separado del Kernel del sistema operativo principal. Esto le otorga estabilidad al sistema, lo que significa que si el GUI falla , no cuelga a el sistema entero.
Slackware 9.0 introduce un modo de configurar X utilizando los drivers del framebuffer. Esto significa que usted no tiene que pasar por los procedimientos descritos en la sección llamada xf86config(1) y la sección llamada xf86cfg(1) para tener un sistema X window aceptable. El framebuffer trabaja también en cualquier tarjeta compatible VESA 2.0. Esto significa que cualquier tarjeta de video moderna trabajará bajo X. Sin embargo , el framebuffer es notoriamente más lento que utilizar una configuración adecuada para su sistema.
Si usted decide usar los framebuffer, debe instalar el paquete xfree86-xvfb-4.3.0-i386-1.tgz de la serie de software X. Usted tiene que escoger una resolución de consola durante el proceso de instalación. La opción recomendada para X es probablemente la mejor para la mayoría de las personas.
Si usted escoge configurar X para su sistema, usted necesitará seguir las instrucciones en la sección xf86config o la seccion llamada xf86cfg. La primera sección explica como usar el xf86config(1), un programa basado en líneas de comando para configurar X. La segunda sección describe xf86cfg(1), una versión gráfica del programa de la configuración.
xf86config es uno de los dos programas que pueden usarse para configurar
X en su sistema. La idea básica es simple: usted se encontrara con
una serie de preguntas y respuestas de opción múltiple. Escoja
la respuesta que mejor se adapte a su sistema. Después de proceder
a través del programa entero, se escribirá el archivo /etc/X11/XF86Config(5)
y usted estará listo usar X. Si usted se equivoca en algún
punto, usted tendrá que matar el programa ( con control+c) y volver
a empezar desde el principio.
Antes de comenzar a configurar su sistema X window con la ayuda del programa
xf86config(1) trate de saber lo más que pueda sobre su tarjeta de
video y monitor.
Una vez que ejecuta xf86config, se
le presentara un modo de pantalla completa que le dice lo que va a hacer.
Recuerde, no hay ninguna manera de regresar a la pantalla anterior si usted
comete un error, así que escoja cuidadosamente. Por otra parte, usted
podría tener que hacer esto varias veces. Presione enter, como se
le indica.
Ejecutamos el programa
# xf86config
Lo que nos genera la siguiente pantalla:
La otra manera de configurar X es usar xf86cfg, un programa de configuración
gráfico que viene como parte del paquete xfree86-4.3.0-i386-2.tgz
el cual se encuentra en la serie X. Este puede ser usado para escribir cualquier
archivo inicial de configuracion o crear uno personalizado a la actual configuración.
Cuando la variable del entorno DYSPLAY no es seteada, xf86cfg ejecuta el
comando XFree86 -configure para permitir al xserver detectar el hardware
de la máquina, y así escribir un archivo inicial de configuración
en el directorio home del usuario. Entonces, se iniciará XFree86 permitiendo
personalizar la configuracion.
SI la variable del entonrno DYSPLAY está seteada, xf86cfg leerá
el archivo por defecto ( XF86Config ), ese no puede ser el mismo inicio usado
con el actual server permitiendo que la configuración sea personalizada.
Para ejecutar xf86cfg debemos entrar como root y escribir:
# xf86cfg
Figura 6-1. La pantalla inicial del xf86cfg
xinitrc y ~/.xinitrc
xinit(1) es el programa que realmente arranca a X; es llamado por startx(1),
por lo que usted no lo pudo haber notado (y probablemente no necesita saberlo).
Este archivo de configuración, sin embargo , determina que programa
se ejecuta(incluyendo sobre todo el gestor de ventana) cuando inicia X.xinit
chequea primero su directorio home en busca del archivo .xinitrc Si el archivo
se encuentra, se ejecuta, si no utiliza el archivo predeterminado ubicado
en /var/X11R6/lib/xinit/xinitrc Este es un ejemplo simple de un archivo .xinit:
#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22
11:41:34 rws Exp $
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f $userresources ]; then
xrdb -merge $userresources
fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
# Start the window manager:
exec gnome-session&
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login
Todos esos "if" están allí para unir varios tipos de configuración
desde otros archivos. Bien nosotros explicaremos .Xresources Ahora, pero
.Xmodmap nosotros vamos a dejarlo así. La parte interesante del archivo
es el fin, en donde se ejecutan una serie de programas. Esta sesión
de X empezara con el gestor de ventanas Gnome, un reloj, y tres terminales.
Fíjese en exec antes del ultimo xterm, ;o que esto hace es reemplazar
la shell que esta corriendo actualmente(la que esta ejecutando el script
xinitrc con el comando xterm(1) ) Cuando el usuario cierre ese xterm, la
sesión X terminara.
Para personalizar su inicio de X, copie el valor predeterminado desde /var/X11R6/lib/xinit/xinitrc~/.xinitrc
y editelo, reemplazando todas aquellas líneas del programa con las
líneas que usted quiera. El fin de mío simplemente es:
# Start the window manager:
exec sgnome-session
Note que hay varios archivos xinitrc.* en el directorio /var/X11R6/lib/xinit
los que corresponden a varios window managers y GUIs. Tu puedes usar cualquiera
de estos, si gustas claro esta .
.Xresources y .Xdefaults
Muchos programas en X utilizan un sistema llamado X Resource Database (Recursos
de Base de Datos) para encontrar las preferencias del usuario (fuentes ,
colores ,etc.) Esta base de datos se mantiene a travez del programa xrdb(1)
que usted tal vez no necesite ejecutar nunca. En Slackware se ejecuta desde
el xinitrc. El Archivo xinitrc le dice a xrdb que tambien cargara a ~/.Xresources.
xrdb y ~/.Xdefaults, por lo tanto cualquiera de los nombres funcionara. Aunque
esos archivos son optativos, puede que esten como que no. Pro ejemplo el
archivo ~/.profile si lo tienes tiene mas importancia que el /etc/profile,
pero si no esta, estos estan actuara el archivo /etc/profile. Un archivo .Xresources
pequeño se parece a esto:
xterm*background: black
xterm*foreground: gray
xterm*scrollBar: true
xterm*font: -*-lucidatypewriter-*-r-*-*-15-*-*-*-*-*-*-*
Estas cuatro líneas especifican la información de configuración
para el programa xterm Un recurso de X se lista de esta forma:
program*option: setting/value
Asi que la muestra de .Xresources anterior debe ser autoexplicativa. No se
enrede por el contenido de la linea "font" las fuentes siempre se nombran
de esta forma en X.
El sistema X Window fue diseñado originalmente para trabajar
a través de una Red. Un servidor grande seria realmente el que correría
el programa X, pero se desplegaría en las otras maquinas clientes
en cualquier otro lugar de la red. La habilidad de desplegar los programas
remotamente puede ser una gran ventaja. La desventaja principal de este concepto
de la gestión a través de redes es ;que es menos seguro que
ejecutar la aplicación desde la maquina local , y tomaría un
ancho de banda muy grande para hacerlo. Esto se discute después en
la seccion llamada Exportando Pantallas.
Incluso cuando usted esta ejecutando X en su propia máquina, usted
todavía está basándose en el modelo cliente-servidor.
El servidor es la tarjeta de video en la porción especifica. Cuando
usted configuró X y le dijo qué tipo de tarjeta de video usted
tenía, estaba diciéndole qué programa servidor usar.
La porción del cliente es todos los otros programas que usted ejecuta
bajo X. Un cliente especial, llamado gestor de ventanas, es responsable de
la apariencia de su sesión X . Los gestores de Ventanas se explican
con detalle mas adelante.
El trabajo de un gestor de ventanas es dibujar ventanas con programas dentro
de la pantalla, así como ocuparse del ratón y del teclado.
Los primeros gestores de ventanas hicieron simplemente esto y nada mas. Los
gestores de ventanas actuales son programas mucho más complicados
y son personalizables de casi cualquier manera imaginable. Ellos tienen toda
clase de opciones que permiten a su escritorio lucir diferente al de nadie
más.
Contar con varios gestores de ventanas realmente separa a Linux de Windows
en el escritorio. Bajo Windows, usted solo tiene un sistema de ventanas básico.
Bajo Linux, usted puede ejecutar uno de muchos gestores de ventanas diferentes,
cada uno con un look diferente y rasgos diferentes. Algunas personas llaman
a esto una debilidad, porque no hay ningún look consistente. Sin embargo,
la mayoría de los usuarios de Linux llaman a esto una ventaja porque
usted puede configurar su sistema de la forma que usted quiera.
Durante años, Unix se usó casi exclusivamente como sistema
operativo para servidores, con la excepción de puestos de trabajo
profesionales de alta potencia. Era probable que sólo los técnicamente
inclinados usáramos un Unix como sistema operativo, y la interfaz
de usuario es reflejo de este hecho. El GUIs (Interfaz grafica de usuario)
tendía a ser solo esqueletos, diseñados para ejecutar aplicaciones
necesariamente graficas como los programas CAD y simuladores de imágenes.
La mayoría de los archivos y el manejo del sistema se dirigían
en la línea de comando. Varios vendedores(Sun Microsystems ,Silicon
Graphics , etc) estaban vendiendo instalaciones de workstations en un intento
por unificar el look , pero la variedad de herramientas GUI usadas por los
diseñadores llevo a la disolución de la uniformidad de escritorios.
La barra de desplazamiento podía no lucir igual en dos programas diferentes.
Los menús podían aparecer en lugares diferentes. Programas
que tenían botones y checkboxs distintas. Los colores eran codificados
de forma diferente en cada barra de herramientas. Mientras los usuarios fueran
principalmente profesionales técnicos, a ninguno de estos les importaba
mucho.
Con la salida de free Unix como sistema operativo y el creciente numero de
aplicaciones graficas, X ha ganado una gran cantidad de usuarios. La mayoría
de los usuarios, claro, está acostumbrado al look proporcionado por
Windows de Microsoft o el MacOS de Apple; la falta de tal consistencia en
las aplicaciones basadas en X se volvió una barrera para lograr una
mayor aceptación. Como respuesta a esto, se han emprendido dos proyectos
Open Source: The K Desktop Enviroment(El ambiente de escritorio K) o KDE,
y el GNU Network Object Model Enviroment, conocido como GNOME. Cada uno tiene
una variedad ancha de aplicaciones, desde taskbars y administradores de archivos
hasta juegos y aplicaciones de Oficina ,escrito con las mismas herramientas
GUI y herméticamente integrado para proporcionar un escritorio consistente
y uniforme.
Las diferencias en KDE y GNOME son generalmente bastante sutiles. Ellos lucen
diferentes el uno del otro, porque cada uno utiliza un juego de herramientas
GUI diferente. KDE se basa en la tecnología QT de Troll Tech AS, mientras
que GNOME usa GTK, un kit de herramientas diseñado originalmente para
el GNU Image Manipulation Program (o GIMP). Como proyectos separados, KDE
y GNOME tienen cada uno sus propios diseñadores y programadores ,
con diferentes filosofías y etilos de programación. Sin embargo
, el resultado en cada caso, es un ambiente de escritorio herméticamente
integrado y una colección de aplicaciones. La funcionalidad, utilidad,
y hermosura pura tanto de KDE y su rival GNOME es algo que no esta disponible
en ningún otro sistema operativo.
La mejor parte, sin embargo , es que estos escritorios son gratis. Esto significa
usted puede tener cualquiera o ambos (sí, al mismo tiempo). La opción
es suya.
Además de GNOME y KDE, Slackware incluye una colección grande
de gestores de ventana. Algunos están diseñados para emular
otros sistemas operativos, otros para la personalización , otros para
la velocidad. Hay una gran variedad realmente. Claro usted puede instalar
tantos como usted quiera, juegue con todos ellos, y decida cual es el que
mas le gusta.
Para hacer la selección del escritorio fácil, Slackware incluye
también un programa llamado xwmconfig que puede usarse para seleccionar
un escritorio o gestor de ventana. Se ejecuta de esta forma:
$ xwmconfig
Figure 6-2. El programa xwmconfig en Slackware.
Como mencionamos anteriormente , es posible ejecutar X en una computadora
y exporta la pantalla a otra. Esto requiere de un ancho de banda intenso
, por lo que usted no querrá hacer esto mediante una conexión
por modem o entre distancias muy largas. Adicionalmente hay consideraciones
de seguridad: exportar una pantalla no es algo muy seguro de hacer, ya que
usted estará permitiendo a toda la red mirar lo que usted esta haciendo.
Todavía puede ser muy útil en una red local.
Una cosa importante para notar aquí es el uso de las palabras "cliente"
y "servidor". Cuando exporta una pantalla , usted puede confundirse acerca
de lo que es un cliente y lo que es un servidor. Nosotros nos referimos a
la máquina que realmente ejecuta el programa X y envía la información
de la pantalla como "servidor". La máquina que usted usa para mostrar
el programa remoto se llama " cliente." Cuando planeamos el diseño
de X , esto se utiliza. El programa que muestra las cosas se llama "servidor",
mientras que donde se ejecutan los programas se llama "cliente". No es muy
terrible confundirse , pero téngalo en cuenta.
Para este ejemplo, nosotros estaremos haciendo uso de dos computadoras: golf
que es un servidor bastante poderoso que esta debajo de un escritorio en
un cuarto atestado de cosas. Tiene mucha RAM y un buen procesador. Además
tiene muchos programas X , pero ningún monitor. En el otro lado del
cuarto se encuentra couch, una maquina vieja con poco RAM y un disco pequeño.
Es demasiado débil para ejecutar programas de recursos intensos como
el Netsacpe. couch tiene dos ventajas, a pesar de todo: tiene monitor , y
esta justo al lado de la cama por lo que usted no tiene que levantarse para
usarla ni siquiera. Con suerte, usted podría usar Netsacpe sin bajarse
de la cama. Exportar es la respuesta.
Primero, entre en couch y ejecute X. Luego ejecute su terminal preferido
(xterm , rxvt ,eterm, o cualquier otro.) El primer paso para mostrar programas
X de forma remota es configurar la maquina cliente para que permita que otra
maquinas se muestren. Esta usa el programa xhost para controlar el acceso,
Si usted esta dentro de una red interna segura, probablemente no le importe
quien puede mostrar programas en su computadora. En este caso, usted permitirá
simplemente que cualquier maquina de red se muestre:
couch$ xhost +
access control disabled, clients can connect from any host
Por otro lado, usted podría querer hacer esto usando máquinas
que están en una red insegura (Internet, una red de la universidad,
o cualquiera que no sea controlada por usted). Usted no quiere conectar a
nadie simplemente. xhost le permite ser selectivo sobre quién puede
desplegar:
couch$ xhost + golf.foc
golf.foc being added to access control list
Ahora, sólo golf.foc (el servidor mencionado antes) puede desplegar
programas en couch. Usted puede ver quién tiene acceso para desplegar
los programas ejecutando xhost sin los argumentos:
couch$ xhost
access control enabled, only authorized clients can connect
INET:golf.foc
INET:localhost
INET:couch.foc
LOCAL:
Esto es todo lo que tiene que hacer para terminar de configurar el cliente:
El siguiente paso es levantar el servidor, entonces sabra mostrar programas
de algun otro lugar en el monitor. Desde que el servidor no tiene monitor
(y por consiguiente no puede ejecutar X),necesitará saber dónde
mostrarse.
Prepara el servidor no es muy difícil. Después de conectarse,
usted necesita modificar la variable $DISPLAY Por defecto, probablemente
no esta configurara a nadie. Usted necesita configurar la variable $DISPLAY
con el valor del host remoto, mas el numero que representa la sesión
X que quiere mostrar. Usted casi siempre tendrá una sola sesión
de X ejecutándose , por lo que tratar con esa variable no le traerá
problemas.
Así es como se debe configurar la variable $DISPLAY que en nuestro
ejemplo usa Bash como shell. Otras shells usaran sintaxis diferentes, pero
el valor debe ser el mismo.
golf$ export DISPLAY=couch.foc:0.0
Esto es todo lo que tiene que preparar en la parte del servidor. Ahora usted
solo necesita estar conectado en el servidor y ejecutar los programas X desde
allí. Todo lo que sale por pantalla en el programa se enviara por
red a la maquina del cliente aun cuando se esta ejecutando el programa en
otra computadora en la otra habitación.
golf$ netscape &
>Esto ejecutaria netscape en el servidor, pero desde que la variable DISPLAY
fue configurada para couch todo es mostrado allí. Usted no tiene que
levantarse para ejecutar esos grandes programas X en su equipo viejo. Una
nota importante sobre esto: la máquina servidor tendrá que
tener todas las bibliotecas de X y otros archivos de apoyo necesitados para
ejecutar el programa. Sin embargo, usted no necesitará un X server
o un archivo /etc/XF86Config después de que nada se este mostrando
en el servidor.
Mas adelante , usted podría querer desactivar la exportación
quitando al servidor de la lista de control de acceso:
couch$ xhost - golf.foc
golf.foc being removed from access control list
couch$
Usted puede ver que esta es una gran manera de compartir recursos informaticos.
Pero tenga cuidado, usted puede ser el host de muchos programas X para muchas
computadoras remotas sin siquiera saberlo.
En este capítulo, usted aprendió a configurar el X Window
System utilizando xf86config y xf86cfg. Usted también debe saber lo
que es un ambiente de escritorio y un gestor de ventanas, y cómo cambiar
entre las varias opciones. Usted debe poder exportar su sesión de
X a otro computador. A estas alturas, usted debe poner en marcha un ambiente
gráfico.
Configuración de Red | Indice | Booteando |