[LinuxFocus-icon]
Hogar  |  Mapa  |  Indice  |  Busqueda

Noticias | Arca | Enlaces | Sobre LF
[an error occurred while processing this directive]
convert to palmConvert to GutenPalm
or to PalmDoc

[Photo of the Author]
por Guido Socher (homepage)

Sobre el autor:

A Guido le gusta Linux no sólo por lo interesante que resulta para comprender cómo funcionan los sistemas operativos sino también por la gente involucrada en su diseño.



Taducido al español por:
Roberto Hernando Velasco (homepage)

Contenidos:

 

Ejecutando aplicaciones remotas con X11

[Illustration]

Resumen:

La mayoría de los que utilizan Linux por primera vez piensan que el entorno gráfico en Linux es simplemente otro sistema "Windows" donde se pueden iniciar aplicaciones y éstas aparecen en ventanas separadas. Algunos llegan a darse cuenta de que pueden tener varios escritorios, pero piensan que eso es todo. ¡El Sistema X Window de Linux (X11) es mucho más que eso! Es un sistema de ventanas en red. Veremos qué novedosas y grandes posibilidades ofrece.



 

El concepto de "display"

Cada aplicación gráfica en X Window lee al iniciarse la variable de entorno DISPLAY para averiguar a qué pantalla debe enviar sus gráficos. Esto junto con la capacidad de red del Sistema X Window hace posible ejecutar aplicaciones gráficas remotamente. Es decir, se utiliza la capacidad de CPU de una máquina mientras se utiliza la aplicación desde otra máquina distinta. Todo el GUI (graphical user interface, interfaz gráfica de usuario) aparece en la máquina desde la que se opera. No se nota que se utilizan dos ordenadores.
Por supuesto la velocidad de la red es importante, pero una conexión de LAN normal de 10Mbit/s es más que suficiente.


[ejecutando una aplicación remota]

¿Por qué es esto interesante?
Hay muchas aplicaciones de estas "redes gráficas". Las empresas las utilizan para operar remotamente con equipos que pueden estar a miles de kilómetros de distancia y pudiendo usar la misma aplicación para controlarlos que la que se utilizaría si se estuviese en el mismo lugar en el que se encuentran los equipos.
Usted podría tener 2 ordenadores: una máquina rápida a 1GHZ y un viejo Pentium 133MHz. Puede aprovechar la velocidad de la nueva máquina aunque no se esté sentado frente a ella. A lo mejor su hermana suele estar sentada enfrente de la máquina rápida utilizándola. No hay ningún problema para que usted siga beneficiándose de su máquina rápida.
[display] ¿Cómo funciona?
Todas las aplicaciones X Window, se llamen gimp, xterm, konqueror, netscape, ... realmente son clientes de red que se conectan a un servidor, el servidor X. La función de este servidor X es comunicarse con el hardware gráfico, dibujar las imágenes en la pantalla, leer las entradas del ratón y del teclado. Los clientes (sus programas como gimp, netscape ...) envían al servidor instrucciones sobre cómo pintar cuadros y botones. A cambio reciben del servidor los eventos de ratón y teclado. Obviamente se necesita algún tipo de autentificación, de otra forma cualquiera podría estropear la pantalla de cualquier otro. Existen dos programas para controlar el acceso:
- xhost: usando este programa puede dar permiso a cualquier usuario en una máquina dada a escribir gráficos en su pantalla. Ejemplo: usted está sentado frente a una máquina llamada philosophus. Para permitir el acceso a cualquier programa en el host movietux a su pantalla en philosophus debería escribir el comando:

xhost +movietux
Esto habría que escribirlo en un shell en philosophus

- xauth: es una autentificación basada en cookies y mucho más sofisticada. Con xauth se puede dar acceso a los usuarios de forma individual. Es mucho más seguro que xhost. La autentificación usa una cookie alojada en el fichero .Xauthority en el directorio personal de los usuarios. Si la máquina remota tiene una cookie válida en este fichero entonces se garantizará el acceso. Para copiar la cookie desde la máquina frente a la que está sentado (philosophus) al host desde donde quiere lanzar el programa (movietux) puede usar uno de los siguientes métodos:

xauth extract - philosophus:0.0 | ssh movietux /usr/X11R6/bin/xauth merge
o
scp ~/.Xauthority movietux:


Al lanzar un programa (cliente) ocurre lo siguiente:
  1. El cliente busca en la variable de entorno DISPLAY el servidor, si no intenta conectarse al servidor en este host.
  2. El servidor comprueba si el cliente tiene permiso para enviarle "imágenes". Si el cliente está autorizado entonces el servidor dibujará la imagen en la pantalla.
La variable de entorno DISPLAY tiene la siguiente sintaxis:

bash:export DISPLAY=nombre_host:número_display.número_pantalla
tcsh:setenv DISPLAY nombre_host:número_display.número_pantalla

No voy a hablar de número_display ni de número_pantalla aquí. Normalmente es 0:0. Un ejemplo para bash podría ser:

export DISPLAY=philosophus:0.0

 

Lanzando una aplicación remota

Después de toda la teoría veamos ahora un ejemplo práctico. Simplemente pruébelo. Estamos otra vez sentados frente al ordenador llamado philosophus y queremos ejecutar algo remotamente desde movietux.
  1. Dígale a su servidor X qué clientes desde movietux tienen permiso para dibujar imágenes en su pantalla:
    xhost +movietux
  2. haga login al host remoto movietux:
    slogin -l nombre_usuario movietux
  3. ahora ha hecho login a movietux y cada comando que usted lance será ejecutado en movietux
  4. export DISPLAY=philosophus:0.0
  5. inicie el programa. P.ej:
    netscape &
Si movietux es una máquina potente habrá notado que la renderización de páginas html en netscape es algo más rápida que cuando lo ejecuta localmente en su máquina. Y a un tiempo usted no nota realmente que netscape no se está ejecutando localmente, ya que opera de la misma forma con el ratón y el teclado.
Estupendo, ¿no es verdad?  

Llevando el "display" consigo

Aunque es sencillo ejecutar una aplicación remotamente también está ese pequeño tecleo extra necesitado para definir el DISPLAY. Esto se puede automatizar así:  

Formulario de "talkback" para este artículo

Cada artículo tiene su propia página de "talkback". A través de esa página puedes enviar un comentario o consultar los comentarios de otros lectores
 Ir a la página de "talkback" 

Contactar con el equipo de LinuFocus
© Guido Socher, FDL
LinuxFocus.org

Pinchar aquí para informar de algún problema o enviar comentarios a LinuxFocus
Información sobre la traducción:
en --> -- : Guido Socher (homepage)
en --> es: Roberto Hernando Velasco (homepage)

2002-01-20, generated by lfparser version 2.21