yabrembre

22 marzo, 2006

Las X Windows (I)

La mayoría de los mortales, si le preguntamos qué son las X, nos pondría cara de póquer. Si sabes algo de informática, sabrás que es "lo que hace que se vea el escritorio de Linux y sus ventanitas". Pero poca gente, entre las que no me incluyo, sabe qué son realmente. Hace poco, encontré un artículo vía Digg que me encantó así que me he decidido a traducirlo ya que tiene una estupenda licencia FDL :)

Ten en cuenta que ni soy traductor, ni mi inglés es todo lo bueno que yo desearía. He hecho lo que he podido. Todas las sugerencias, correcciónes y críticas son bienvenidas.

¡F1! ¡F1! ¿Cómo coño traducimos "look and feel"?



¿Qué es X?
Descubre la versatilidad y el poder del sistema de ventanas X

A todo el mundo le gustan las fotos bonitas. El quiosco está lleno de fulgurantes revistas, las vallas publicitarias te deslumbran mientras conduces por la autopista, puedes ver maravillosos mosaicos en los envoltorios en cualquier supermercado. Hace tiempo que la televisión sustituyó a la radio como entretenimiento doméstico estándar y el hecho de que no puedas juzgar un libro por la portada no previene a la mayoría de hacerlo. Esto mismo se aplica hoy a los ordenadores. La GUI (Grafical User Interface – interfaz gráfica de usuario) o “la funcionalidad de ventanas” se ha convertido en una parte de la máquina que todo el mundo da por sentada.

x1shelf
Para vender algo al público necesita parecer bueno

Cualquier casa o proveedor de software de sistemas de cliente, libre o no, que quiera ser tomado en serio debe proporcionar una interfaz gráfica de usuario (GUI) como primer método de interacción con el usuario. Microsoft incluye el suyo como parte del sistema principal, o kernel, al igual que muchos otros. La mayoría de las distribuciones GNU/Linux la incluyen en la instalación por defecto. Sin embargo, en GNU/Linux y otros sistemas operativos POSIX, la infraestructura GUI no se incluye en el kernel sino que es un programa a parte con el místico nombre de “El Sistema de Ventanas X”. Él se llama así mismo “X11 Release 6” (X11 Versión 6) y todo el mundo la conoce simplemente como “X”(1). Hay mucho más de estas X de lo que vemos, tiene atributos y funcionalidades poco conocidos y pueden hacer cosas que otros sistemas con ventanas no pueden. ¿Qué es X? ¿Qué funcionalidades tiene? Este artículo intenta quitarle la máscara y revelarlas.

¿Qué es X?

Una pregunta más apropiada sería “¿Qué no es X?”. X no es en realidad un GUI. Los GUIs que GNU/Linux suele tener son GNOME, KDE o incluso MOTIF. La mayoría de las distribuciones GNU/Linux son liberadas con una GUI configurada como interfaz por defecto, que puede ser comparada con las GUI de cualquier otro sistema informático. Y el usuario final, que utiliza el editor de textos, la hoja de cálculo, el cliente de correo y el navegador web no necesita conocer de cabo a rabo los detalles técnicos. Sin embargo, se puede hacer mucho más con una pequeña cantidad de conocimiento y unos pocos comandos...

Entonces, ¿qué es exactamente X si no es una GUI? X es la infraestructura que un GUI utiliza para hacer su trabajo. Por ejemplo, un GUI maneja los botones, las listas desplegables, ventanas, etc., mientras que X maneja el dibujo a bajo nivel de las fuentes, líneas e imágenes en la pantalla y lee las entradas por teclado y ratón así como la comunicación entre programas de éstos. También puede manejar la distribución de la red de usuarios y sesiones remotas.

X no es un GUI - es una infraestructura que GUI utiliza

Uno de los aspectos mas confusos de las X es la denominación de las partes, en la que los términos “servidor” y “cliente” son lo contrario de lo que muchos esperarían. Un servidor X es la pantalla y el teclado, lo que mucha gente acostumbrada a MS Windows pensaría que es el cliente. Un cliente X es un programa que abre y usa ventanas, como puede ser un navegador web, un cliente de correo, un procesador de textos y demás. Para comprender esto voy a compara un servidor X con un servidor de archivos...

Un servidor de archivos es una máquina de una red donde existen ficheros u otras máquinas, o clientes, pueden conectarse a ella y abrir, leer, escribir o manipular archivos. A menudo, por supuesto, el servidor de archivos y el cliente es la misma máquina, pero a veces no. Lo que el servidor de archivos está sirviendo es información en archivos.

x1fserver
El concepto de servidor de archivos suele entenderse bien

Un servidor X es una máquina en una red donde existe un programa de “hacer ventanas” y otras máquinas, o clientes X, se conectan a ella para crear ventanas, escribir o mostrar texto, imágenes o lo que sea, en la ventana y puede leer cualquier entrada que el usuario haga sobre esa ventana. Los clientes X a menudo corren en la misma máquina, pero a veces no. Lo que un servidor X sirve es ventanas y tu entrada.

x1xserver
El concepto de un servidor X en realidad no se diferencia de un servidor de archivos

Voy a poner un ejemplo detallado de lo que quiero decir. Sin embargo, antes de comenzar merece la pena comentar que lo que sigue no es como X corre normalmente. Sólo estoy mostrando algunos componentes individuales para ver como la infraestructura se conecta. Lo primero, instalar X...

Si tienes un sistema GNU/Linux casi seguro que ya lo tienes instalado. Para los ejemplos de más abajo lo mejor es parar el GUI inicialmente si está arrancado. Para hacer esto vete a la consola pulsando CTRL+ALT+F1, lógate como root, ejecuta “init 3”, salte y vuelve a logarte con tu usuario.

Si tiene un sistema Windows puedes instalar versión Cygwin de las X. Ve a www.cygwin.com, pulsa en el icono “install now” y sigue con la instalación por defecto. Cuando aparece la lista de paquetes asegúrate de que “X11” está marcado como “Default”. Una vez instalado haz doble click en el icono de Cygwin para conseguir el prompt “$”.

Puedes arrancar el servidor X manualmente desde la linea de comando; puede hacerse si X no está corriendo ya tecleando simplemente:

X &

(X en mayúsculas y luego ampersand) en el prompt. Esto arrancará un servidor X en background. En GNU/Linux será en una “ventana virtual”, en Windows será en su propio MS-Windows. Una pantalla negra o gris aparecerá con una X en el centro que se puede moverse con el ratón. Esto así es totalmente inútil, una pérdida de tiempo. Aunque puedes mover esa X con el ratón, presionando las teclas o haciendo click en los botones del ratón no hace nada y ni siquiera es bonito. Esto es como un servidor de archivos formateado, sin ficheros. Interesante desde un punto de vista geek, tiene un enorme potencial pero actualmente no hay mucho que ver.

x1xblank
Un servidor X corriendo tal y como es – bastante aburrido

Nota: en MS-Windows y Cygwin, si prefieres usar toda la pantalla para obtener una experiencia X “apropiada” añade la opción “-fullscreen” al comando “X”. Pulsando la tecla de Windows volverás a MS-Windows.

Después de arrancar el servidor X volvamos a la consola donde introdujiste el comando (CTRL-ALT-F1 para GNU/Linux, o selecciona la ventana de Cygwin en MS-Windows), e introduce los nuevos comandos:

xauth add :0 . `mcookie`

Por favor, fíjate en las comillas, signos de puntuación y espacios en el comando. Esto te da permiso para abrir ventanas en el servidor X y usarlas. Más tarde hablaremos de esto. Después , introduce:

xterm -display :0 &

Esto abre una terminal en el servidor X. Para verla vete a la “pantalla del X-server” (pulsando CTRL-ALT-F7 para GNU/Linux, o seleciona la ventana de Cygwin en MS-Windows) y allí debe haber una terminal en la esquina superior izquierda. Moviendo el puntero sobre ella puedes escribir comandos (como “ls”) y ver los resultados:

x1xterm
Un servidor X con un cliente X xterm conectado

Arriba, el comando "X" arranca un servidor X, el cual simplemente coloca su poco atractiva apariencia esperando a que un cliente se conecte. Xterm es un cliente X que se conecta al servidor, abre una ventana y ejecuta una shell.

Un servidor X es un programa que simplemente coloca su poco atractiva apariencia esperando a que un cliente se conecte

Hay opciones de comando para abrir ventanas con diferentes tamaños y posiciones, pero todo el mundo con el que he hablado está de acuerdo en que ésta es una manera muy poco amigable de hacerlo. Lo que necesitamos es un cliente X llamado gestor de ventanas. Éste nos permite manipular ventanas interactuando de la manera a la que estamos acostumbrados. Cygwin normalmente viene con un WindowMaker ("constructor de ventanas") instalado, y se arranca introduciendo wmaker & en la ventana de xterm o introduciendo wmaker -display :0 & en la consola de Cygwin. Algunas distribuciones GNU/Linux tienen también un WindowMaker, pero no se suele instalar por defecto; sin embargo "mwm" o "fvwm" a menudo si se instalan y pueden ser arrancados introduciendo mwm & o fvwm & en la ventana xterm o mvw -display :0 & o fvwm -display :0 & en la consola. Si ninguno de estos funciona está el viejo y un tanto anticuado "twm" (parte del paquete base X) que casi seguro está instalado. Una vez que tenemos un gestor de ventanas cargado mover y cambiar el tamaño de las ventanas es interactivo. Y lanzar nuevas aplicaciones es más fácil. Prueba introduciendo xclock & in la ventana xterm para ver la hora actual, o incluso xeyes & para que parezca que el jefe te vigila.

x1xbegin
Un servidor X corriendo el gestor de ventanas WindowMaker y otros clientes X - las cosas empiezan a ponerse interesantes.

Aunque el aspecto y la sensación mostrada arriba no es muy impresionante, tipifica la
filosofía de X - te provee de una infraestructura dándote a elegir el mejor aspecto que necesites para correr cualquier programa. Por supuesto, se pueden ejecutar, y se ejecutan, aspectos y sensaciones mucho mejores. Sin embargo, en vez de forzarte a usar un determinado gestor de ventanas como en MS-Windows, puedes elegir entre los muchos disponibles para los sistemas X.

La forma más fácil de salir de un servidor X es pulsando CTRL+ALT+BACKSPACE.

x1xdia
Diagrama sistemático de algunos programas X conectándose a un servidor X



(1) He dudado si hablar de "las X" o simplemente "X" y al final he utilizado ambas formas indistintamente.

Continuará...

Etiquetas:

1 comentarios:

  • Me ha parecido una introducción a las X, muy simple y fácil de entender.
    Gracias por la traducción.
    Pelicano

    De Anonymous Anónimo, A las 12:29 a. m.  

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]



<< Inicio