106.2 Lección 1
Certificación: |
LPIC-1 |
---|---|
Versión: |
5.0 |
Tema: |
106 Interfaces de usuario y escritorios |
Objetivo: |
106.2 Escritorios gráficos |
Lección: |
1 de 1 |
Introducción
Los sistemas operativos basados en GNU/Linux son conocidos por su avanzada interfaz de línea de comandos, pero puede ser intimidante para los usuarios no técnicos. Con la intención de hacer la computadora más amigable e intuitiva y aprovechando la aparición de pantallas de alta resolución se creó lo que conocemos como interface gráfica de usuario. Mientras que la interfaz de línea de comandos requiere un conocimiento previo de los nombres de los programas y sus opciones de configuración, con una interfaz gráfica de usuario "Graphical User Interface" (GUI) la funcionalidad del programa puede activarse apuntando a elementos visuales, haciendo que la curva de aprendizaje sea menos empinada. Además, la interfaz gráfica es más adecuada para actividades multimedia y otras actividades de orientación visual.
De hecho, la interfaz gráfica de usuario es casi un sinónimo de interfaz de escritorio y la mayoría de las distribuciones de Linux vienen con una instalada por defecto. Sin embargo, no hay un solo programa monolítico responsable de los escritorios gráficos completos disponibles en los sistemas Linux. En su lugar, cada escritorio gráfico es de hecho una gran colección de programas y sus dependencias, que varían desde las elecciones de la distribución hasta el gusto personal de cada usuario.
Sistema X Window
En Linux y otros sistemas operativos similares a Unix en los que se emplea, el sistema X Window (conocido como X11 o simplemente X) proporciona los recursos de bajo nivel relacionados con la representación de la interfaz gráfica y la interacción del usuario con ella. Por ejemplo:
-
El manejo de los eventos de entrada, como los movimientos del mouse o las pulsaciones de teclas.
-
La capacidad de cortar, copiar y pegar el contenido del texto entre aplicaciones separadas.
-
La interfaz de programación que otros programas utilizan para dibujar los elementos gráficos.
Aunque el sistema X Windows se encarga de controlar la pantalla gráfica (el controlador de vídeo en sí es parte de X), no pretende dibujar elementos visuales complejos. Las formas, los colores, los matices y cualquier otro efecto visual son generados por la aplicación que se ejecuta sobre X. Este enfoque da a las aplicaciones mucho espacio para crear interfaces personalizadas, pero también puede dar lugar a sobreusos de desarrollo que están fuera del alcance de la aplicación y a incoherencias en el aspecto y comportamiento cuando se comparan con las interfaces de otros programas.
Desde el punto de vista del desarrollador, la introducción del entorno de escritorio facilita la programación de la interfaz gráfica de usuario vinculada al desarrollo de la aplicación subyacente, mientras que desde el punto de vista del usuario proporciona una experiencia coherente entre las distintas aplicaciones. Los entornos de escritorio reunen interfaces de programación, bibliotecas y programas de apoyo que cooperan para ofrecer conceptos de diseño tradicionales pero aún en evolución.
Entornos de
escritorio (Desktop Environment)
La tradicional interfaz gráfica de la computadora de escritorio consiste en varias ventanas — el término ventana se usa aquí para referirse a cualquier área de la pantalla autónoma — asociada con procesos en ejecución. Como el sistema X Window por sí solo ofrece sólo características interactivas básicas, la experiencia completa del usuario depende de los componentes proporcionados por el entorno de escritorio. Probablemente el componente más importante de un entorno de escritorio, es el administrador/gestor de ventanas (windows manager) que controla la colocación y decoración de las ventanas. Es el gestor de ventanas que añade la barra de título a la ventana, los botones de control — generalmente asociados con las acciones de minimizar, maximizar y cerrar — y gestiona el cambio entre las ventanas abiertas.
Note
|
Los conceptos básicos que se encuentran en las interfaces gráficas de las computadoras de escritorio provienen de ideas tomadas de los espacios de trabajo reales de oficinas. Hablando metafóricamente, la pantalla de la computadora es el escritorio, donde se colocan objetos como documentos y carpetas. Una ventana de aplicación con el contenido de un documento imita los actos físicos como rellenar un formulario o pintar un cuadro. Como verdaderos escritorios, los escritorios de las computadoras también tienen accesorios de software como bloc de notas, relojes, calendarios, etc., la mayoría de ellos basados en sus contrapartes "reales". |
Todos los entornos de escritorio proporcionan un gestor de ventanas que se ajusta al aspecto y a la sensación de su kit de herramientas de widgets. Los widgets son elementos visuales informativos o interactivos, como botones o campos de entrada de texto, distribuidos dentro de la ventana de la aplicación. Los componentes estándares del escritorio, — como el lanzador de aplicaciones, la barra de tareas, etc. — y el propio gestor de ventanas dependen de tales kits de herramientas de widgets para ensamblar sus interfaces.
Las bibliotecas de software, como GTK+ y Qt, proporcionan widgets que los programadores pueden usar para construir elaboradas interfaces gráficas para sus aplicaciones. Históricamente, las aplicaciones desarrolladas con GTK+ no se parecían a las aplicaciones hechas con Qt y viceversa, pero el mejor soporte de temas de los entornos de escritorio de hoy en día hacen que la distinción sea menos obvia.
En general, GTK+ y Qt ofrecen las mismas características en cuanto a los widgets. Los elementos interactivos simples pueden ser indistinguibles, mientras que los widgets compuestos, como la ventana de diálogo que utilizan las aplicaciones para abrir o guardar archivos, sin embargo, pueden tener un aspecto bastante diferente. No obstante, las aplicaciones construidas con conjuntos de herramientas distintos pueden ejecutarse simultáneamente, independientemente del conjunto de herramientas de widgets utilizado por los demás componentes del escritorio.
Además de los componentes básicos del escritorio, que podrían considerarse programas individuales por sí mismos, los entornos de escritorio persiguen la metáfora del escritorio proporcionando un conjunto mínimo de accesorios desarrollados bajo las mismas pautas de diseño. Las variaciones de las siguientes aplicaciones son comúnmente proporcionadas por todos los principales entornos de escritorio:
- Aplicaciones relacionadas con el sistema
-
Emulador de terminales, gestor de archivos, gestor de instalación de paquetes, herramientas de configuración del sistema.
- Comunicación e Internet
-
Administrador de contactos, cliente de correo electrónico, navegador web.
- Aplicaciones de oficina
-
Calendario, calculadora, editor de texto.
Los entornos de escritorio pueden incluir muchos otros servicios y aplicaciones: el saludo de la pantalla de inicio de sesión, el gestor de sesiones, la comunicación entre procesos, el agente de credenciales, etc. También incorporan características proporcionadas por servicios de sistemas de terceros, como PulseAudio para el sonido y CUPS para la impresión. Estas características no necesitan el entorno gráfico para funcionar, pero el entorno de escritorio proporciona gráficos frontend para facilitar la configuración y el funcionamiento de esos recursos.
Entornos de escritorio populares
Muchos sistemas operativos patentados sólo admiten un único entorno oficial de escritorio que está vinculado a su lanzamiento particular y que se supone que no debe ser modificado. A diferencia de ellos, los sistemas operativos basados en Linux soportan diferentes opciones de entornos de escritorio que pueden utilizarse en conjunto con X. Cada entorno de escritorio tiene sus propias características, pero normalmente comparten algunos conceptos de diseño comunes:
-
Un lanzador (launcher) de aplicaciones que lista las aplicaciones integradas y de terceros disponibles en el sistema.
-
Reglas que definen las aplicaciones predeterminadas asociadas a los tipos de archivos y protocolos.
-
Herramientas de configuración para personalizar la apariencia y el comportamiento del entorno de escritorio.
Gnome es uno de los entornos de escritorio más populares, siendo la primera opción en distribuciones como Fedora, Debian, Ubuntu, SUSE Linux Enterprise, Red Hat Enterprise Linux, CentOS, etc. En su versión 3, Gnome trajo grandes cambios en su aspecto y estructura, alejándose de la metáfora del escritorio e introduciendo el Gnome Shell como su nueva interfaz.

El lanzador (launcher) de pantalla
completa Gnome Shell Activities
reemplazó al tradicional lanzador de
aplicaciones y a la barra de tareas. Sin
embargo, todavía es posible usar Gnome 3
con el aspecto antiguo eligiendo la
opción Gnome Classic en la
pantalla de inicio de sesión.
KDE es un gran ecosistema de aplicaciones y plataforma de desarrollo. Su última versión de entorno de escritorio, KDE Plasma, se utiliza por defecto en openSUSE, Mageia, Kubuntu, etc. El empleo de la biblioteca Qt es la característica más destacada de KDE, que le da su aspecto inconfundible y una plétora de aplicaciones originales. KDE incluso proporciona una herramienta de configuración para asegurar la cohesión visual con las aplicaciones GTK+.

Xfce
es un entorno de escritorio que pretende
ser estéticamente agradable sin consumir
muchos recursos de la máquina. Su
estructura está altamente modularizada,
permitiendo al usuario activar y
desactivar componentes según sus
necesidades y preferencias.

Hay muchos otros entornos de escritorio
para Linux, normalmente proporcionados
por bifurcaciones de distribuciones
alternativas. La distribución Linux
Mint, por ejemplo, proporciona dos
entornos de escritorio originales: Cinnamon
(un bifurcación de Gnome 3) y MATE
(un bifurcación de Gnome 2). LXDE
es un entorno de escritorio adaptado al
bajo consumo de recursos, lo que lo
convierte en una buena opción para su
instalación en equipos antiguos o en
ordenadores monoplaca. Aunque no ofrece
todas las características de los
entornos de escritorio más pesados, LXDE
ofrece todas las características básicas
que se esperan de una moderna interfaz
gráfica de usuario.
Tip
|
Los atajos o shortcuts de teclado juegan un papel importante en la interacción con el entorno del escritorio. Algunos atajos de teclado, como Alt+Tab para cambiar entre ventanas o Ctrl+c para copiar texto, son universales en todos los entornos de escritorio, pero cada entorno de escritorio también tiene sus propios shortcuts. Los atajos de teclado se encuentran en la herramienta de configuración de teclado que proporciona el entorno de escritorio, donde se pueden añadir o modificar los shortcuts. |
Interoperabilidad de escritorio
La diversidad de entornos de escritorio en los sistemas operativos basados en Linux impone un reto: ¿Cómo hacer que funcionen correctamente con aplicaciones gráficas o servicios de sistema de terceros sin tener que implementar un soporte específico para cada uno de ellos? Los métodos y especificaciones compartidos entre entornos de escritorio mejoran en gran medida la experiencia del usuario y resuelven muchos problemas de desarrollo, ya que las aplicaciones gráficas deben interactuar con el entorno de escritorio actual, independientemente del entorno de escritorio para el que fueron diseñadas originalmente. Además, es importante mantener la configuración general del escritorio si el usuario acaba cambiando su elección de entorno de escritorio.
La organización freedesktop.org mantiene un gran cuerpo de especificaciones para la interoperabilidad de los ordenadores de sobremesa. La adopción de la especificación completa no es obligatoria, pero muchas de ellas se utilizan ampliamente:
- Ubicaciones de directorios
-
Donde se encuentran los ajustes personales y otros archivos específicos del usuario.
- Entradas en el escritorio
-
Las entradas de escritorio son archivos de texto que terminan en
.desktop
que son utilizados por el entorno de escritorio para recopilar información sobre las aplicaciones de escritorio disponibles y cómo utilizarlas. - Aplicación de arranque automático
-
Entradas del escritorio que indican la aplicación que debe iniciarse automáticamente después de que el usuario haya iniciado la sesión.
- Arrastrar y soltar
-
Cómo las aplicaciones deben manejar los eventos de arrastrar y soltar.
- Papelera (trash can)
-
La ubicación común de los archivos eliminados por el administrador de archivos, así como los métodos para almacenar y eliminar archivos de allí.
- Temas de iconos
-
El formato común de las bibliotecas de iconos intercambiables.
La facilidad de uso que ofrecen los
entornos de escritorio tiene un
inconveniente en comparación con las
interfaces de texto como shell: la
capacidad de proporcionar acceso remoto.
Mientras que un entorno de shell de
línea de comandos de un equipo remoto
puede ser fácilmente accesible con
herramientas como ssh
, el
acceso remoto a entornos gráficos
requiere métodos diferentes y puede no
lograr un rendimiento satisfactorio en
conexiones más lentas.
Acceso no local
El Sistema X Window adopta un diseño basado en pantallas autónomas, donde el mismo administrador/gestor de pantalla (Desktop Manager) puede controlar más de una sesión de escritorio gráfico al mismo tiempo. En esencia, la pantalla presentada por el gestor de pantalla es análoga a la de un terminal de texto: ambos se refieren a una máquina o aplicación de software utilizada como punto de entrada para establecer una sesión de sistema operativo independiente. Aunque la configuración más común implica una sesión gráfica singular que se ejecuta en la máquina local, también son posibles otras configuraciones menos convencionales:
-
Cambiar entre sesiones de escritorio gráfico activas en la misma máquina.
-
Más de un conjunto de dispositivos de visualización (por ejemplo, pantalla, teclado, mouse) conectados a la misma máquina, cada uno controlando su propia sesión de escritorio gráfico.
-
Sesiones remotas de escritorio gráfico, donde la interfaz gráfica se envía a través de la red a una pantalla remota.
Las sesiones de escritorio remoto son soportadas nativamente por X, que emplea el X Display Manager Control Protocol (XDMCP) para comunicarse con las pantallas remotas. Debido a su alto uso de ancho de banda, el XDMCP se utiliza raramente a través de Internet o en redes LAN de baja velocidad. Los problemas de seguridad también son una preocupación con XDMCP: la pantalla local se comunica con un administrador/gestor de pantalla X remoto con privilegios para ejecutar procedimientos remotos, por lo que una eventual vulnerabilidad podría favorecer la ejecución de comandos arbitrarios con privilegios en el equipo remoto.
Además, el XDMCP requiere que se ejecuten instancias de X en ambos extremos de la conexión, lo que puede hacerla inviable si el Sistema X Window no está disponible para todas las máquinas involucradas. En la práctica, se utilizan otros métodos más eficientes y menos invasivos para establecer sesiones de escritorio gráfico a distancia.
Virtual Network Computing (VNC)
es una herramienta de plataforma
independiente para ver y controlar
entornos de escritorio remotos usando el
protocolo Remote Frame Buffer
(RFB). A través de este, los eventos
producidos por el teclado y el mouse, se
transmiten al escritorio remoto, que a
su vez devuelven cualquier actualización
de la pantalla para ser mostrada
localmente. Es posible ejecutar muchos
servidores VNC en la misma máquina, pero
cada servidor VNC necesita un puerto TCP
exclusivo en la interfaz de red que
acepte las solicitudes de sesión
entrantes. Por convención, el primer
servidor de VNC debe usar el puerto TCP
5900, el segundo debe usar el 5901, y
así sucesivamente.
El servidor VNC no necesita privilegios
especiales para funcionar. Por ejemplo,
un usuario ordinario puede iniciar
sesión en su cuenta remota e iniciar su
propio servidor VNC desde allí. Luego,
en la máquina local puede utilizar
cualquier aplicación cliente de VNC para
acceder al escritorio remoto (suponiendo
que se pueda acceder a los puertos de
red correspondientes). El archivo ~/.vnc/xstartup
es un script de shell ejecutado por el
servidor VNC cuando se inicia y puede
ser utilizado para definir qué entorno
de escritorio ponfrá el servidor VNC a
disposición del cliente VNC. Es
importante señalar que VNC no
proporciona métodos modernos de cifrado
y autenticación de forma nativa, por lo
que debe utilizarse junto con una
aplicación de terceros que proporcione
esas características. Los métodos que
implican túneles de VPN y SSH se
utilizan a menudo para asegurar las
conexiones de VNC.
Remote Desktop Protocol (RDP) se
utiliza principalmente para acceder de
forma remota al escritorio de un sistema
operativo Microsoft Windows a
través del puerto de red TCP 3389.
Aunque utiliza el protocolo RDP de
Microsoft, la implementación cliente
utilizada en los sistemas Linux son
programas de código abierto licenciados
bajo GNU General Public License
(GPL) y no tienen restricciones legales
de uso.
Simple Protocol for Independent
Computing Environments (Spice)
comprende un conjunto de herramientas
destinadas para acceder al entorno de
escritorio de los sistemas virtualizados,
ya sea en la máquina local o en una
ubicación remota. Además, el protocolo
Spice ofrece características nativas
para integrar los sistemas locales y
remotos como la posibilidad de acceder a
los dispositivos locales (por ejemplo,
los altavoces de sonido y los
dispositivos USB conectados) desde la
máquina remota y el intercambio de
archivos entre los dos sistemas.
Hay comandos específicos del cliente
para conectarse a cada uno de estos
protocolos de escritorio remoto, pero el
cliente de escritorio remoto Remmina
proporciona una interfaz gráfica
integrada que facilita el proceso de
conexión, almacenando opcionalmente la
configuración de la conexión para su uso
posterior. Remmina tiene plugins
para cada protocolo individual y hay
plugins para XDMCP, VNC, RDP y Spice. La
elección de la herramienta adecuada
depende de los sistemas operativos
implicados, la calidad de la conexión de
red y las características del entorno de
escritorio remoto que deben estar
disponibles.
El protocolo SSH también pertime tunelizar protocolo X11 para crear sesiones cliente/servidor entre una aplicación gráfica ejecutada en una estación remota (cliente) y el servidor X que mantenemos en ejecución en la estación local (desde donde invocamos el comando ssh). Es una forma simplificada se visualizar en nuestro monitor la ventana que muestra una aplicación remota sin necesidad de montar ninguno de los entramados vistos en los párrafos de arriba. Para hacer funcionar este esquema hay que instalar, configurar y seguir los pasos que se indican a continuación:
- Instalar en ambos extremos el comando xauth.
- Establecer la configuración adecuada
en el cliente ssh
y el servidor sshd
de las dos máquinas implicadas de esta
forma:
EXTREMO | FICHERO | PARAMETRO | VALOR |
Servidor X; Donde se posiciona el usuario. | ssh_config | ForwardX11 | yes |
ssh_config | ForwardX11Trusted | yes | |
Cliente X; Donde se invocan los programas previa conexión ssh. | sshd_config | X11Forwarding | yes |
- Conectar a la máquina que hace la función de cliente desde la máquina que hace la función de servidor (ssh -X <user>@<client_host>) y una vez allí, invocar el cliente gráfico (xclock, xmessage, firefox, etc...) visualizaremos la ventana de dicho cliente en la máquina servidor, NO dónde se invoca.
Ejercicios guiados
-
¿Qué tipo de aplicación proporciona sesiones de shell con ventanas en el entorno de escritorio?
-
Debido a la variedad de entornos de escritorio de Linux, la misma aplicación puede tener más de una versión, cada una de ellas más adecuada para un conjunto de herramientas de widgets en particular. Por ejemplo, el cliente bittorrent Transmission tiene dos versiones: transmission-gtk y transmission-qt. ¿Cuál de las dos debe ser instalada para asegurar la máxima integración con KDE?
-
¿Qué entornos de escritorio Linux se recomiendan para equipos monoplaca de bajo costo con poca potencia de procesamiento?
Ejercicios de exploración
-
Hay dos maneras de copiar y pegar texto en el sistema X WIndow: usando las tradicionales teclas Ctrl+c y Ctrl+v (también disponibles en el menú de la ventana) o usar el clic del botón central del ratón para pegar el texto actualmente seleccionado. ¿Cuál es la manera apropiada de copiar y pegar texto de un emulador de terminal?
-
La mayoría de los entornos de escritorio asignan el "atajo" en la combinación Alt+F2 a la ventana Ejecutar programa, donde los programas pueden ser ejecutados en forma de línea de comandos. En KDE, ¿Qué comando ejecutaría el emulador de terminal por defecto?
-
¿Qué protocolo es el más adecuado para acceder a un escritorio remoto de Windows desde un entorno de escritorio de Linux?
Resumen
Esta lección es una visión general de los escritorios gráficos disponibles para los sistemas Linux. El sistema X Window por sí solo proporciona sólo características de interfaz simples, por lo que los entornos de escritorio extienden la experiencia del usuario en la interfaz gráfica con ventanas. La lección abarca los siguientes temas:
-
Interfaz gráfica y conceptos del Sistema X Window.
-
Entornos de escritorio disponibles para Linux.
-
Similitudes y diferencias entre los entornos de escritorio.
-
¿Cómo acceder a un entorno de escritorio remoto?
Los conceptos y programas abordados fueron:
-
SIstema X Window
-
Entornos de escritorio populares: KDE, Gnome, Xfce.
-
Protocolos de acceso remoto: XDMCP, VNC, RDP, Spice.
Respuesta a los ejercicios guiados
-
¿Qué tipo de aplicación proporciona sesiones de shell con ventanas en el entorno de escritorio?
Cualquier emulador de terminal como Konsole, terminal Gnome, xterm, etc., dará acceso a una sesión de shell interactiva local.
-
Debido a la variedad de entornos de escritorio de Linux, la misma aplicación puede tener más de una versión, cada una de ellas más adecuada para un conjunto de herramientas de widgets en particular. Por ejemplo, el cliente bittorrent Transmission tiene dos versiones: transmission-gtk y transmission-qt. ¿Cuál de las dos debe ser instalada para asegurar la máxima integración con KDE?
KDE está construido sobre la biblioteca Qt, así que la versión Qt — transmission-qt — debe ser instalada.
-
¿Qué entornos de escritorio Linux se recomiendan para equipos monoplaca de bajo costo con poca potencia de procesamiento?
Entornos de escritorio básicos que no usan demasiados efectos visuales, como Xfce y LXDE.
Respuestas a los ejercicios de exploración
-
Hay dos maneras de copiar y pegar texto en el sistema X WIndow: usando las tradicionales teclas Ctrl+c y Ctrl+v (también disponibles en el menú de la ventana) o usar el clic del botón central del ratón para pegar el texto actualmente seleccionado. ¿Cuál es la manera apropiada de copiar y pegar texto de un emulador de terminal?
Las sesiones de shell interactivas asignan la tecla Ctrl+c para detener la ejecución del programa, por lo que se recomienda el método del botón medio.
-
La mayoría de los entornos de escritorio asignan el "atajo" en la combinación Alt+F2 a la ventana Ejecutar programa, donde los programas pueden ser ejecutados en forma de línea de comandos. En KDE, ¿Qué comando ejecutaría el emulador de terminal por defecto?
El comando
konsole
ejecuta el emulador de terminales de KDE, pero los términos genéricos como terminal también funcionan. -
¿Qué protocolo es el más adecuado para acceder a un escritorio remoto de Windows desde un entorno de escritorio de Linux?
El Protocolo de Escritorio Remoto (RDP), tal y como lo soportan nativamente tanto Windows como Linux.