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 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 intuitiva, la combinación de pantallas de alta resolución, dio nacimiento a interfaces de usuario impulsadas por imágenes. 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 más plana. 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 ambiente 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.
Ambientes de escritorio
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 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. .Gnome Shell Activities image::./images/gnome-debian-10.1.0.png[pdfwidth="75%"]
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 aplicaciones de línea de comandos pueden ejecutarse en el entorno de escritorio a través de cualquier emulador de terminal, pero sería demasiado confuso hacer que todas ellas estuvieran disponibles en el lanzador de aplicaciones. 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 de pantalla puede controlar más de una sesión de escritorio gráfico al mismo tiempo. En esencia, una pantalla es análoga para 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 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 X instancias 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, el servidor VNC pondrá 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.
Guided Exercises
-
¿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?
Explorational Exercises
-
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.