yabrembre

23 marzo, 2006

Las X Windows (II)

Continuación de Las X Windows (I)



¿Qué es un display?

Te habrás fijado en los argumentos "-display :0" de los comandos para abrir ventanas en un servidor X. Un "display" es una pantalla en concreto a la que conectarse. Por defecto, cuando se arranca X se crea un display llamado ":0", ese es el display cero en la máquina local. Sin embargo, GNU/Linux y Cygwin bajo MS-Windows pueden ejecutar más de un servidor X.

Algunos ordenadores pueden correr más de un servidor X simultáneamente

Para demostrarlo, asegúrate de que no está corriendo ningún servidor X en la máquina y teclea en la consola (CTRL-ALT-F1 en GNU/Linux, o en la ventana de Cygwin en MS-Windows):

X :0 &

para arrancar el primer servidor X. Luego vuelve a la consola y teclea:

X :1 &

Esto arrancará el segundo. Otra vez en la consola:

xauth add :0 . `mcookie`

Si no lo has hecho ya, también...

xauth add :1 . `mcookie`

para garantizarte los permisos para conectarte a los servidores. Después introduce los comandos:

xterm -display :0 -bg yellow
xterm -display :1 -bg purple

Si vas al primer servidor X (CTRL-ALT-F7 en GNU/Linux, o selecciona la ventana correspondiente en MS-Windows) deberías ver una xterm con el fondo amarillo, y en el segundo servidor X (CTRL-ALT-F8 en GNU/Linux) deberías ver una con el fondo morado. Es posible ejecutar un gestor de ventanas en un servidor X y otro gestor en otro servidor. También es posible ejecutar servidores X con resoluciones diferentes, y logarse con usuarios diferentes - aunque no lo describamos aquí. Esto es como tener dos conjuntos de dispositivos de entrada / salida (teclado, ratón y monitor) conectados a la misma máquina.

Sin embargo, esto no es todo. El display ":0" es en realidad una abreviatura de "0:0". Se asume el "punto 0" a ser que se defina otro número. Éste es el número de la pantalla del display. Un display en X consiste en un teclado, un ratón y una o más pantallas. Imagina varios monitores. El display “:0.0” es el primer monitor, “:0.1” es el segundo y así. Casi nunca se usa esto ya que la mayoría de los PCs y estaciones de trabajo sólo tienen una pantalla. Sin embargo, X te permite más – la capacidad multi-pantalla de las X puede comprobarse utilizando el programa “Xnest”, el cual es a la vez cliente y servidor; ejecuta un servidor X virtual en una ventana X. Para comprobar esto, desde una xterm (en una sesión con un gestor de ventanas arrancado) ejecuta:

Xnest :3 -scrns 2 &

(Fíjate en la X mayúscula). Esto ejecuta un cliente “Xnest” emulando un servidor X con dos pantallas utilizando el número 3. Cada pantalla está representada en una ventana X diferente. Ahora desde la xterm:

xauth add :3 . `mcookie`

para obtener permisos:

xterm -display :3.0 -bg red
xterm -display :3.1 -bg blue

para obtener dos xterms en estas pantallas (virtuales). Si ejecutas “mwm” o “wmaker” en una de ellas y “twm” en la otra verás la versatilidad de las X. Para salir simplemente cierra la ventana de Xnest.

x1xscreens
Una sesión Xnest con emulando un servidor X con dos pantallas

Un display en X consiste en un teclado, un ratón y una o más pantallas, como varios monitores.

Para ahorrarte introducir en el argumento "-display" cada vez que tecleas un comando, los clientes X usarán el display especificado en la variable de entorno DISPLAY. Por tanto...

xterm -display :0 &

es lo mismo que...

DISPLAY=:0
export DISPLAY
xterm &

Cuando arrancamos una sesión X, o varios clientes X en realidad, automáticamente asigna el display que está conectado a la variable DISPLAY y así evitar que el usuario tenga que especificarlo. Una pequeña advertencia: si cambias la variable DISPLAY puedes interferir en los comandos que introduzcas después.

Si no se definen argumentos "-display" ni la variable DISPLAY, los cliente X usarán el display :0.0 por defecto.




Continuará...

Etiquetas:

0 comentarios:

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]



<< Inicio