La Gaceta de Linux ...¡ haciendo a Linux un poco más divertido !

Usando una GUI que no es Por Defecto (en RHEL y kin)

Por Brian Bilbrey

Traducción al español por Gustavo Conturzo
el día 29 de Abril de 2005, para La Gaceta de Linux

GUI es un acrónimo para Interfaz Gráfica de Usuario. Puedes elegir tu GUI en Linux. El título de trabajo para este tópico era Escritorios de GUI No Estándares, pero dos cosas son ciertas: Primero, la elección a veces es buena. Segundo, muchas personas tienen en cuenta que, "No Estándar" a menudo implica subestándar. Nada puede estar más lejos de la verdad.

En la mayoría de los otros populares sistemas operativos, la GUI es obligatoria y relativamente fija. En Microsoft Windows®, tienes... bien, Windows. Puedes aplicar temas y estilos, y hacer algunos cambios de apariencia, pero el sistema está diseñado para correr sólo en la interfaz gráfica provista. En realidad no puedes sustituir la interfaz de Windows por otra de terceros. Apple Computer es, hasta donde sé, mucho del mismo modo, con su nueva GUI de escritorio Aqua® a la cabeza del OS X® (admitiré completa ignorancia del modo Apple. Es totalmente posible que Aqua sea solamente un administrador de ventanas que corre a la cabeza del servidor X corriendo como una aplicación derivada de Mach, pero no sé a primera hora sobre esto).

Rick Moen comenta: Aqua es en realidad el nombre del efecto de apariencia y ambiente, resultante de correr un "PDF de Visualización" propietario -motor de visualización orientado a 2D llamado Quartz (además de las extensiones 3D apodadas "Quartz Extreme") — un descendiente directo del motor de Visualización PostScript de NeXTStep. Sólo hay un número limitado de terceros retoques que uno puede hacerle a la estructura de Quartz. Por ejemplo, una amigo ha adaptado uno para restaurar la capacidad que él goza en Linux de tener escritorios virtuales. Lo más importante para recordar es que Quartz no es X11 en absoluto, aunque versiones recientes hayan agregado la capacidad  para aplicaciones X11 de imagen continua usando una copia integrada de XFree86 para PPC. (Creo que esta incorporación inicia algo llamado "quartz-wm" como administrador de visualización por defecto, pero que puedes cambiarlo.) No estoy 100% claro sobre los detalles, porque ejecuto mi iBook casi completamente en Ubuntu Linux, en su lugar. Nota: Puesto que el término "X" es un término tan sobrecargado en el contexto de Mac OS X, el Sistema Estándar de Ventanas X de Unix muy a menudo se hace referencia a X11 para eliminar la ambigüedad, a pesar de la cantidad extremadamente pequeña de inexactitud supuesta.

Cuando se suministra la GUI, Linux realmente es diferente. Los servidores de visualización proveen la interfaz entre la GUI y el hardware (tarjeta de video). Entonces hay administradores de ventanas y entornos de escritorios que son la capa de presentación gráfica dentro de las cuales corren las aplicaciones. Hay muchas opciones para cada una de estas categorías. Permíteme guiarte a través de estas opciones, antes hablamos sobre cambiar el modo en que trabajas en la GUI.

Servidores de Visualización

Un servidor de visualización lleva a cabo las funciones básicas de trabajo con el hardware de visualización de video, aparte de señalar los dispositivos (ratones, pantallas sensibles al tacto, tableros, etc.) y teclados. Abarca la interfaz del sistema operativo y los dispositivos necesarios para negociar con el hardware de video específico. Los servidores de visualización de Linux son variantes del Sistema de Ventanas X (X), el cual se originó en MIT en 1984, mucho antes que Linux mismo. X ha generado muchos hijos, algunos de código abierto y algunos propietarios. El software servidor X más popular para Linux, durante el primer trimestre de 2004, fue el servidor XFree86 (http://www.xfree86.org/). Debido a un cambio de licencia y conflictos de desarrolladores, la mayoría de las distribuciones Linux (incluyendo Fedora Core 2) al momento de este escrito están migrando al servidor X.org (http://www.x.org/), una bifurcación de código abierto para el código base de XFree86. Te recomiendo firmemente que permanezcas con el software servidor X recomendado por el vendedor para tu distribución: Migrar a un nuevo servidor de visualización no es para el débil de corazón.

Atrás en el camino a fines de los años 90, se tomó por sentado que Linux no debería hacer funcionar las últimas, más rápidas y recién salidas tarjetas de video. Tomaría de 6 a 12 meses a algún alma dedicada construir un controlador para usar las funciones específicas de una nueva tarjeta de video, por lo genera sin ninguna ayuda en absoluto del fabricante de la tarjeta. Como la Ley de Moore se triplicó en el ámbito de la tarjeta de video, dos cosas cambiaron: Primero, los chips de video aumentaron las capacidades tan rápidamente que los desarrolladores de código abierto no podían seguir el ritmo. Segundo, el terreno de los fabricantes se redujo dramáticamente. Saltando a estos días hay dos jugadores principales: Nvidia y ATI. Ambos proveen tarjetas de video competentes, y, más maravillosamente, ambos proveen controladores que funcionan con los actuales kernels y servidores de visualización para la interfaz de Linux para casi todas las nuevas tarjetas de video más recientes. Estos controladores binarios tienen compiladas interfaces que permiten que los controladores sean usados con los actuales kernels y servidores X. Además, ambos fabricantes parecen estar trabajando con codificadores de código abierto para proveer soporte para las tarjetas que no están más en línea (así se evita la desventaja competitiva percibida).

Administradores de Ventanas

Un administrador de ventanas (WM o AV) provee los servicios básicos para aplicaciones de la GUI que corren en una pantalla. Una ventana de aplicación está enmarcada y por lo general tiene una barra de título con símbolos para abrir, cerrar, minimizar y cosas por el estilo. Las ventanas también tienen foco (para escribir dentro de ellas) y otros atributos. Finalmente, un AV provee menús de aplicaciones del mismo tipo, y configuración para tales cosas como temas, estilos y fondos. Algunos administradores de ventanas manejan más capacidades, como ventanas etiquetadas, o personalización extrema, iconos de escritorios, barra de tareas e incluso capacidades de script. En las "características mínimas" hay un administrador de ventanas minimalista, que se dice proveer un lugar para visualizar múltiples xterms, y usar el ratón para apuntar en ellas a fin de escribir adentro. Blackbox, Fluxbox, y OpenBox todos encajan en este extremo de servicios comunes, como TWM, el primer administrador de ventanas X. El WM (Administrador de Ventanas) más liviano que conozco se llama RatPoison, y está diseñado para ser usado sólo con el teclado. La mejor ventaja de los administradores de ventanas livianos es que agregan muy poca carga al sistema para los servicios que éstos proveen, en términos de CPU y uso de memoria. La velocidad es buena.

En la pequeña mitad de los servicios comunes están los administradores de ventana tales como IceWM, AfterStep, y WindowMaker. Estos son diversamente similares a las interfaces provistas en los otros sistemas operativos, y son más personalizables, mientras que permanecen livianos y ordenados en lo que respecta a los recursos del sistema. El Administrador de Ventanas simple más poderos que he experimentado es FVWM2. Es ágil, mutable, se puede utilizar scripts, y sobre todo una verdadera satisfacción para trabajar en él, una vez que me acostumbré a él adecuadamente. Pero cuando no estoy experimentando con otras opciones, vuelvo a casa con Fluxbox.

Entornos de Escritorio

También conocidos como Entornos de Escritorio Integrado (IDE o EEI), estos son los espacios de trabajo de clase Galaxy para la GUI de Linux. No ágiles, y deseosos de tanta procesador y memoria como puedes tirarles, los IDEs proveen capacidades similares a las de los últimos entornos operativos de Windows y Apple. Hay dos jugadores en este espacio: KDE y Gnome. ¡De acuerdo, Gnome y KDE! Lo dije con AMBOS primero, a fin de mantener la llama a mínimo. Preguntar "¿Gnome o KDE?" en la lista de correo equivocadamente es un poco como preguntar "¿vi o Emacs?", y nada en absoluto como preguntar "¿pastel o helado?"

La respuesta correcta a esa última pregunta es, por supuesto, "¡AMBOS!"

KDE fue el primero de los proyectos IDE. Basado en un amplio conjunto de herramientas llamado Qt, KDE 1.0 fue el primero en mirar la futuro de los escritorios Linux, y a muchas personas les gustó lo que veían. Pero algunos vieron una nube oscura alrededor de ese revestimiento plateado: En ese momento, las bibliotecas Qt no eran "libres" en el sentido del código abierto (alias Free Speech). Este problema llevó a la creación y rápida ascendencia del Proyecto GNOME, un  IDE alternativo construido sobre el apuntalamiento del conjunto de herramientas GTK+, libre y poderoso. Después de algunas fuertes competencias sobre capacidades e igualmente fuertes guerras de anulaciones sobre un número de listas de correo, blogs, y otros frentes, ocurrió un evento importante: TrollTech, los creadores de Qt, hicieron disponible Qt bajo la licencia QPL certificada por OSI. Si esto no hubiese ocurrido, GNOME nunca habría estado. Pero la carrera entre ellos ha beneficiado a ambos, por muchas medidas (aunque algunos comentaristas han observado que la energía absoluta del esfuerzo duplicado se podría haber empleado mejor en otra parte). Hoy, con algunas excepciones estrepitosas, hay considerable trabajo que va a integrar los fines profundos de ambos entornos, de modo que las aplicaciones creadas para uno puedan tomar parte más fácilmente en el otro.

KDE y GNOME proveen muchas características. Estas comienzan en la superficie, con mucho atractivo visual como menús traslúcidos, sugerencias, administradores de archivos de escritorio, y personalización profundamente extrema. Balo la superficie, ambos, GNOME y KDE ofrecen variaciones sobre las capacidades tipo CORBA/DCOM. Esto permite las comunicaciones y control entre aplicaciones, incorporación de aplicación y documento, y muchas otras características. Si tu objetivo es alcanzar velocidad tan rápido como sea posible en Linux, cuando ya hayas tenido el tiempo suficiente en frente de máquinas Windows, entonces cualquiera KDE o GNOME te vendrá bastante bien, con posiblemente el más bajo aprendizaje de curvas.

Por supuesto, casi todas las distribuciones han "decidido de qué lado están", y preferentemente carga uno u otro IDE por defecto. Red Hat, en las versiones comercial y abierta, ofrece GNOME por defecto, provisto con un paquete llamado Blue Curve. Opcionalmente, puedes instalar KDE y seleccionarlo como tu escritorio por defecto. Blue Curve también es el tema por defecto ahí. Debian está a favor de GNOME, también, mientras que SUSE, Mandrake, y otros eligen KDE como principal. En algunos casos, lo que hace que una distribución especial sea codificada explícitamente para un entorno particular: Esto es genuino de Xandros y su personalización de KDE.

Haciendo Cambios

Ahora te mostraré las opciones que tienes para seleccionar escritorios GUI aparte de GNOME, y cómo instalarlos en Fedora Core, el Linux ejemplo para este parecer. Brevemente, al final de esta sección, discutiré las formas de instalar administradores de ventanas y escritorios alternativos en algunas otras distribuciones. Para propósitos de esta discusión, estoy usando una instalación limpia de Fedora Core 2, configuración de Estación de Trabajo. Te concederé el deseo de una GUI en un servidor, pero no la necesidad de emplear tiempo jugueteando con alternativas: Usa el RH GNOME y las herramientas asociadas. Están diseñadas para trabajar mejor en ese entorno, y emula mejor la experiencia que tendrás si usas la familia de productos RHEL.

KDE

La instalación de KDE en Fedora es instantánea, en un par de diferentes formas. Primero, por supuesto, fácilmente puedes seleccionarlo durante la instalación. Luego continúa con el cuadro de diálogo de Selección del Grupo de Paquetes, como se muestra en la ilustración 1.

Fedora GUI Selection
Ilustración 1
Selección de KDE durante la instalación de Fedora

Luego, una vez que la instalación esté completa, KDE es una de las opciones de la pantalla de conexión inicial (en la lista de sesiones disponibles). Más que nada eso es asumir que estás haciendo una instalación limpia de Fedora Core. ¿Qué hay si ya lo has instalado, y ahora quieres agregar KDE?

Conéctate a Fedora como usuario normal. Has clic en el icono de menú en la barra de tareas (por defecto, ese distintivo rojo de Fedora), luego elige Configuración de Sistema, luego Agregar/Quitar Aplicaciones. Después de rellenar el cuadro de contraseña para obtener acceso administrativo, aparece el cuadro de diálogo Agregar/Quitar Aplicaciones, viéndose virtualmente idéntico al cuadro de diálogo Selección del Grupo de Paquetes mostrado arriba. Desde ahí, marca el cuadro KDE, y busca el enlace Detalles para ver si quieres agregar las Herramientas Administrativas de KDE. Están omitidas por defecto, pero las recomiendo. Continua con la instalación, y se instalan un conjunto de paquetes para KDE y soporte. Mi única queja fue tener que cambiar dos veces: Primero disco 2, luego disco 1, luego volver al disco 2. Cuando todo está dicho y hecho, desconéctate, luego, luego entra otra vez. Esta vez, antes de poner la contraseña, mira las opciones reveladas al hacer clic en el enlace Sesiones debajo de la pantalla de conexión. Ahí está KDE, lista para ser seleccionado. Hazlo, luego conéctate. Emplea algo de tiempo explorando la interfaz y a través de los árboles de menús. Observa las diferencias y las similitudes. De todas las distribuciones de Linux, Red Hat pone el mayor esfuerzo en hacer a KDE y GNOME casi tan iguales como sea posible, en lo externo, de todos modos. Ahora vamos a ver algo del lado amigable del menú Atkins....

Xfce4

Puedo escucharlo ahora. "¡Ese no es uno de los administradores de ventanas sobre los que escribí un par de páginas atrás!" Sip, tienes razón. Pero es el único que está incluido con Fedora Core 2, además de GNOME y KDE. Así que en lugar de usar el administrador de Aplicaciones para intentar encontrarlo e instalarlo, soltaré la línea de comandos y usaré las herramientas que apuntalan las actualización de red y la administración de paquetes de aplicación para Fedora Core: yum.

Nota: Yum es la abreviatura de Yellow Dog Updater, Modified, originalmente de la distribución Linux Yellow Dog PowerPC. Yum agrega una capa de comprobación de dependencia y una cantidad de otras prácticas herramientas encima de la capa de paquetes RPM. Escribe  man yum en la línea de comandos para aprender más.

[root@gael root]# yum install xffm\* xfwm4\* xfce\* xfdesktop
Gathering header information file(s) from server(s)
. . .
.Dependencies resolved
I will do the following:
. . .
Is this ok [y/N]: Y

Luego los paquetes adecuados son descargados de los sitios espejos oficiales de Fedora, verificados, e instalados sin  más actividad. Una nota de agradecimiento: Levanté el texto de yum para esta instalación particular de un artículo en FedoraNews.org. Se necesita crear dos archivos, para la conexión del administrador de sesión para levantar XFCE. Usa tu editor de textos favorito.

En /etc/X11/dm/Sessions/xfce.desktop:

[Desktop Entry]
Encoding=UTF-8
Name=XFCE4
Comment=This session logs you into XFCE4
Exec=startxfce4
Icon=
Type=Application

En /etc/X11/gdm/Sessions/XFCE:

#!/bin/bash
exec /etc/X11/xdm/Xsession XFCE4

Ambos archivos necesitan tener sus permisos establecidos adecuadamente:

[root@gael /]# chmod 755 /etc/X11/gdm/Sessions/XFCE
[root@gael /]# chmod 755 /etc/X11/dm/Sessions/xfce.desktop

Esto establece lectura/escritura/ejecución para el dueño de los archivos (root), y lectura/ejecución para cualquier otro. Luego puedes desconectarte, y seleccionar XFCE desde el administrador de Sesión durante la conexión. Se carga mucho más rápido que los dos entornos de escritorio, así que ¿qué falta? Bien, todos los menús específicos de Fedora, para uno. Para usar esto en una base diaria, necesitaré personalizar profundamente el sistema de menús para combinar lo que necesito de las utilidades administrativas instaladas de Red Hat. ¡Pero hay más buenas noticias!

¡Qué WM más ligero! Sencillamente después de reiniciar y conectar cada vez, con una ventana de terminal y una sesión SSH ejecutándose, aquí van los usos de memoria respectivo para los tres opciones que tenemos:

WM vs. Memoria Gnome KDE Xfce4
Memoria Total 257072 kB 257072 kB 257072 kB
Memoria Libre
2284 kB 3852 kB 56480 kB
Búfer 21316 kB 22404 kB 20804 kB

En un entorno de 256 MB, KDE y GNOME llenan de cosas enseguida. Esos no son todos los datos disponibles, por supuesto: No habría lugar para escribir un párrafo más en el tópico si duplicara la memoria y los datos de la CPU para demostrar las características de carga completa. Pero claramente, Xfce4 usa menos memoria para el escritorio, dejando más espacio para ejecutar aplicaciones antes de recurrir al intercambio. En una máquina de memoria severamente forzada, seriamente consideraría no ejecutar X en absoluto (en el archivo /etc/inittab, en esta línea: "id:5:initdefault:", cambia el '5' por un '3', y reinicia) para conservar recursos. Cuando probé esto, me encontré con 181 MB de RAM libre. Por supuesto, la mejor opción que hay es tener una máquina más poderosa, o al menos más RAM. ¿Cómo valoras tu tiempo?

IceWM

¿Por qué un administrador de ventanas más? La mejor razón es que éste se compila desde los fuentes externos, se construye localmente, e instala usando el administrador de paquetes para facilitar la futura actualización. Primero, ve a la página de IceWM (http://www.icewm.org/) y sigue los enlaces bajar el último archivo fuente estable para el producto. Al memento de escribir esto, la versión estable es 1.2.14. Pon el archivo dentro de  /tmp, abre una ventana de terminal, escribe su - y la contraseña correcta para volverte usuario root. Luego usa estos comandos:

[root@gael root]# cd /tmp
[root@gael tmp]# rpmbuild -ta icewm-1.2.14.tar.gz
. . .

Aparenta una conducta despreocupada, mientras los avisos y aparentes errores de compilación vuelan por tus ojos. Sólo importa que el trabajo se complete — la mayoría de las advertencias son puestas ahí por el autor del programa para recordarle de lugares en el código que aún necesitan funcionar. Este paso puede tomar varios minutos, dependiendo del procesador y de la RAM disponible. Cuando está terminado, las últimas líneas del trabajo te dicen dónde fueron escritos los archivos ROM. Eso es donde vas ahora, para instalar los RPMS recién construidos.

[root@gael tmp]# cd /usr/src/redhat/RPMS/i386/
[root@gael i386]# rpm -ivh icewm*

¿Cómo sabía que iba a funcionar...? Por lo general hay problemas de dependencia, ¿no? Yo sabía que los paquetes se construyeron al termina, de modo que se deben haber construido en el contexto del otro software requerido estando presente. De otro modo, la compilación habría fallado con un mensaje esperanzadamente útil diciéndome lo que faltaba. No hubo problemas esta vez. Después, otra vez, tenemos que crear y establecer permisos para los siguientes archivos:

En /etc/X11/dm/Sessions/icewm.desktop:

[Desktop Entry]
Encoding=UTF-8
Name=IceWM
Comment=This session logs you into IceWM
Exec=/usr/bin/icewm
Icon=
Type=Application

En /etc/X11/gdm/Sessions/ICEWM:

#!/bin/bash
exec /etc/X11/xdm/Xsession IceWM

Los resultados que veo después de reiniciar y conectar son una clara mejora incluso sobre Xfce4, casi 20 MB más. Pero el mismo resultado existe con la integración del menú de Red Hat.

Pros y Contras

Lo positivo para muchas personas en instalar una GUI que no es por defecto en sus máquinas es el control. Se ha dicho muchas veces que Linux es la opción, y las personas corren y viven en Linux como haciendo propias esas opciones. Adicionalmente, un gran número de usuarios no quieren todo visual y otras "características" que parecen puestas entre ellos y lograr el trabajo terminado. Si la CPU está haciendo rebotar un pequeño icono deformado hacia arriba y hacia abajo, entonces no es difícil en el trabajo iniciar tu aplicación, ¿lo es? Eso plantea otra gran ventaja de los administradores de ventanas livianos: la velocidad de carga. Si entras y sales de la máquina todo el día, el tiempo empleado esperando que los entornos GNOME y/o KDE se inicialicen completamente puede ser atormentador. Liviano == Rápido == Bueno.

Lo negativo es que la mayoría de las distribuciones, y en particular Red Hat / Fedora, pesadamente personalizan los entornos preferidos para corresponder y soportar las herramientas de administración de la GUI que tienen implementadas. Un ejemplo perfecto de esto yace en la implementación de Xfce4. Si, se envía en los discos con el resto de Fedora Core 2. Pero no tiene ninguna de las personalizaciones de menú que dan fácil acceso a las herramientas administrativas. No son difíciles de hallar independientemente, al mirar dentro de los menús para KDE o GNOME, pero estás en tu derecho.

Otras distribuciones como Debian y Gentoo son mucho más agnósticas al escritorio que las grandes distribuciones comerciales. Ahí, es fácil instalar muchos escritorios, administradores de ventanas, IDEs y cosas para trabajar con ellas, que es difícil de lograr en absoluto si no eres cuidadoso. Aunque es relativamente fácil y divertido experimentar agregando escritorios y utilidades asociadas, es importante recordar que estás trabajando con una herramienta para lograr un trabajo terminado. No importa que el trabajo de pintura en la furgoneta se parezca cada día. Si cuatro horas al día se emplean repartiendo parte de la furgoneta, entonces no se impide hacer dinero o cualquier cosa productiva durante ese tiempo. El balance es importante. Experimenta tú mismo, toma una decisión, y llega a la meta... por un momento, al menos!

 


pictureBrian es Administrador de Sistemas y Autor, ocasionalmente humano, y un reciente convertido a la Iglesia de TAG.

Brian Bilbrey es ampliamente Californiano, siendo la tercera generación nacida en ese estado de irrealidad en 1961. Los rumores del asesinato de Kennedy no son ciertos - no hubo un changuito en la herbosa colina ese desafortunado día, y además, él estuvo en una zona horaria completamente diferente. Creciendo en el Área de la Bahía de San Fransisco, Brian se volvió un lector voraz, así como también un fanático de Star Trek y Monty Python. Él primero llegó a programar con una antigua calculadora TI. Su primera computadora "real" fue una IMSAI 8080, aunque nunca pudo contactar WOPR en Cheyenne Mountain con ella.

Después de una carrera matizada en la universidad (principalmente en la amada aún peligrosa ciudad universitaria UC de Santa Cruz), Brian comenzó trabajando en diversas áreas técnicas, y gravitó naturalmente en Administración de Sistemas y otras áreas asistidas por computadoras tales como CAD y CAE. Él y su condimento, Marcia, comisionaron un movimiento de derecha en el 2002, desembarcando en Bowie, Maryland, a las afueras de la carretera de Washington DC. Su actual empleo es en (nfr)(securidad) como Administrador de Sistema para una colección de computadoras Linux, OpenBSD y Windows.

Brian ha estado usando Linux desde los primeros días de Yggdrasil. Actualmente usa Gentoo Linux en su computadora hogareña principal, Xandros Linux en la portátil, Debian Linux en el servidor de archivos hogareño, White Box Enterprise Linux en el servidor de resguardo, y OpenBSD en el hardware de prueba. ¿Eso es obsesivo, no?


Copyright © 2004, Brian Bilbrey. Publicado bajo los términos de la Open Publication license

Publicado en el Número 108 de Linux Gazette, Noviembre de 2004