El blog de Gabriel Viso

Un blog, por Gabriel Viso

Servidor X para Windows

dejar un comentario »

Emigrado desde mi antigua página, pero re-escrito.

Cada vez más gente trabaja bajo distintos sisitemas operativos, dependiendo de qué trabajo haga. Es muy frecuente, además, cuando se trabaja con servidores y clientes o con simuladores instalados en servidores de proceso, tener que acceder remotamente a sistemas Unix. Al mismo tiempo, cada vez se programa más en lenguajes multiplataforma, y casi con tanta frecuencia el entorno de trabajo es heterogéneo.

Este artículo es de interés para aquellos que tengan en casa (o en un portátil corporativo) un Windows instalado, pero tengan que hacer tareas en máquinas Unix de forma remota. Por poner un ejemplo, un administrador de sistemas o de red, que tenga que acceder a un servidor. O un usuario de una red Windows que tenga que dejar algo funcionando en una máquina Unix (típicamente simulaciones, procesos de compilación, pruebas o cosas con bases de datos). Se trata de instalar o hacer funcionar un servidor X de ventanas en Windows, de modo que podamos ejecutar remotamente aplicaciones Unix pero disfrutando de su ventana en nuestro PC Windows. Por ejemplo (para los de Teleco de Vigo), podemos trabajar en el laboratorio de “Clave” desde casa, ejecutar un Emacs en modo gráfico y recibir la ventana en el escritorio de Windows.

Recordatorio

En Unix/Linux podemos identificarnos en una máquina mediante protocolos de sesión remota como rlogin, telnet, rsh y ssh. Éste último es, de los que proporcionan un canal seguro de trabajo, el más popular. Como sabemos, el sistema de ventanas “X” es realmente un servidor. Su nombre no es casual. Cuando programamos con ventanas y el sistema proporciona acceso a la pantalla y el sistema gráfico, de modo transparente lo realiza mediante un esquema cliente-servidor. Las aplicaciones se conectan a la pantalla gestionada por X. Evidentemente, este papel se desempeña del mismo modo por la red TCP/IP que tan bien se integra en la arquitectura Unix. Cuando trabajamos dentro de un entorno Unix y nos conectamos a otra máquina, ejecutando los siguientes comandos

local$ xhost +
access control disabled, clients can connect from any host
local$ ssh remoto -l gabriel
remoto password for user gabriel: ******


remoto$ export DISPLAY=local:0
remoto$ emacs &

tendremos una sesión abierta en la máquina remoto de manera que las aplicaciones se conectan a la pantalla (al servidor X) local, en la máquina local. El cuadro superior asume que el intérprete de comandos es bash. Si fuese chs o algún derivado, como tcsh, habría que poner como penúltima línea

remoto$ setenv DISPLAY local:0

para poder exportar correctamente la variable DISPLAY. Bueno, evidentemente, podemos elaborar un poco más el comando que abre el puerto local de las X (xhost +) o los ficheros de configuración del servidor X para que sólo acepte conexiones desde una determinada máquina o dominio. Pero éso no lo explico, ved la documentación y listos.

En Windows

El sistema X-Window es un producto comercial, que nadie se engañe. Nosotros usamos en Linux un servidor libre, una reinterpretación libre, de código abierto, del sistema, llamado XFree86. Este sistema no existe de forma directa (binaria, lista para usar) para Windows, así que como tal habrá que buscar alguna otra cosa que lo sustituya. Si buscamos en Google por “windows X server” nos remite en primer lugar a una página de un producto llamado CygWin/X.

¡Bingo!

CygWin es un producto de Red Hat que consiste en un entorno de ejecución Unix para Windows. Ésto quiere decir que, si instalamos CygWin, tenemos un conjunto de librerías en el sistema que nos permiten ejecutar aplicaciones para Unix y compilarlas. Sí, caballeros, podemos usar el gcc en Windows, al igual que servirnos de la mayoría de librerías que usamos en Unix, y compilar programas desde el código fuente. Además, CygWin consiste en una distribución de aplicaciones, servidores y shells de Unix, de modo que nos puede servir para trabajar y “salir del paso”. Lo que tiene CygWin/X es que es un CygWin que se distribuye con un servidor X.

Podéis ver una captura de pantalla de un Windows XP ejecutando las X con CygWin en este enlace. En él hay un Emacs, alguna Xterm y la consola raíz del servidor, desde el cual podemos lanzar las aplicaciones que hayamos instalado en CygWin.

¿El truco? Pues hacer una instalación a medida de CygWin, con el servidor X “pelado” (con algún paquete de fuentes tipográficas si no queremos ver glifos extraños en las aplicaciones), un cliente de SSH, las herramientas de red de que queramos disponer, y una Xterm con el shell que prefiramos. Con éso, en total unos 100 MB, y abriendo el puerto de servidor de las X y el puerto de salida de SSH en nuestro firewall, podremos conectarnos a cualquier máquina con el puerto SSH abierto. El programa de instalación de CygWin es bien sencillo, y, además, la instalación está cubierta en el manual.

¡Disfrutadlo! A mí me fue muy útil en su día.

Advertisement

Escrito por Gabriel Viso Carrera

03/01/2005 a 15:54

Deja un comentario

Fill in your details below or click an icon to log in:

Gravatar
Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.

Únete a otros 170 seguidores