¿Qué es Wayland en Linux y en qué se diferencia de X?

Hannah Stryker / Friki práctico

Wayland es un sistema de ventanas alternativo para las distribuciones de Linux. Reemplaza el antiguo estándar X11. Debido a que requiere que las aplicaciones se modifiquen para que funcionen con él, la adopción ha sido lenta hasta ahora. Al escribir estas líneas, la mayor seguridad es la principal ventaja sobre X11.

X11, o el sistema de ventanas X, permite que su entorno de escritorio gráfico muestre y controle ventanas. Wayland reemplaza a X11. Está diseñado para ser más rápido y más seguro. Esto es lo que necesita saber sobre ellos.

Wayland es un reemplazo moderno para X11, que ha sido el sistema de ventanas predeterminado en Linux durante décadas. Wayland es un protocolo de comunicación que define la mensajería entre un servidor de visualización de X Window y las aplicaciones cliente. El proyecto Wayland proporciona bibliotecas de cliente y servidor que permiten que las aplicaciones utilicen el protocolo.

El proyecto Wayland fue iniciado por un sombrero rojo desarrollador en 2008.

El sistema X Window es un sistema de ventanas, lanzado por primera vez para Unix que se ejecuta en el Instituto de Tecnología de Massachusetts en 1984. Las aplicaciones pueden confiar en la funcionalidad que ofrece el sistema de ventanas para generar interfaces de usuario.

Para 1987, el sistema X Window había alcanzado la versión 11 y se conocía como X11. Ahora es administrado por el Fundación X.Org. Todavía está en la versión 11, aunque ha habido muchos lanzamientos más pequeños desde 1987. En el momento de escribir este artículo, el lanzamiento estable actual es X11R7.7.

La "X" en el nombre no significa diez en números romanos, ni implica "Xtra", "Xtended" ni nada por el estilo. Un sistema de ventanas anterior se llamaba "W", por "ventanas", y simplemente pasaron a la siguiente letra del alfabeto cuando comenzaron el nuevo proyecto.

Escuchará que se hace referencia al sistema X Window como "X", "X11", "Xorg", "X Windows" y "X Window System".

Cómo funciona X11

El sistema X Window maneja eventos y primitivos de bajo nivel, como la interacción con el ratón y dibujar y mover ventanas. Las aplicaciones administran las imágenes y el diseño de la interfaz. La apariencia de las ventanas, los botones que tienen y la ubicación de esos botones son elecciones realizadas por el programador de la aplicación. El sistema X Window dibuja el dibujo resultante en la pantalla.

X11 proporciona una definición de la comunicación que debe pasar entre los diversos componentes de un sistema X Window en funcionamiento. Esta comunicación es necesaria porque el código que utiliza una aplicación compatible con X para dibujar sus ventanas y elementos de la interfaz no está dentro de la aplicación. Este trabajo se comparte entre un servidor X y el administrador de ventanas.

Las aplicaciones son clientes del servidor X. El administrador de ventanas es un tipo especial de cliente. El servidor X es responsable de administrar los recursos, ejecutar solicitudes de dibujo y recopilar eventos, como presionar teclas y hacer clic con el mouse en las aplicaciones adecuadas.

También actúa como intermediario en la comunicación entre el gestor de ventanas y las aplicaciones, pasando mensajes entre ellas. El administrador de ventanas mantiene una lista de ventanas que las aplicaciones tienen abiertas, su ubicación en la pantalla, su tamaño, si se superponen, etc.

Un administrador de ventanas de composición mantiene un búfer fuera de pantalla para cada ventana. Compone estos búferes en una sola imagen que representa la ventana superior, que representa todo el escritorio, que se escribe en la pantalla.

Todos los entornos de escritorio gráficos modernos, incluidos GNOME y KDE, utilizan administradores de ventanas de composición.

Cómo funciona Wayland

Wayland está destinado a resolver los problemas de X11. La arquitectura X11 requiere muchos mensajes. El servidor X se encuentra entre los clientes y el administrador de ventanas. Está también entre todo y –a través de la kernel: el hardware de gráficos. El volumen de mensajes puede causar latencia y una experiencia de visualización lenta y entrecortada.

También hay una gran base de código. Existe la aplicación de servidor, la aplicación Window Manager y la biblioteca X11 que usan los clientes. Cuanto más grande (y más antigua) sea su base de código, más difícil será mantenerla y más luchará con el código heredado.

Al cambiar la arquitectura, Wayland ha modernizado y simplificado la base de código, brindando beneficios de rendimiento y seguridad mejorada.

De hecho, fusionaron el servidor y el administrador de ventanas en una sola aplicación. Quitaron cualquier código que realizara funciones que ahora realiza el kernel. En lugar de replicar el esfuerzo, aprovecharon la funcionalidad central.

Con Wayland, el compositor y la aplicación cliente se comunican directamente. El compositor mantiene su mapeo interno mostrando la ubicación de las ventanas en el escritorio, su tamaño y su estado. Negocia los eventos de cambio de teclado, mouse y ventana y los envía a las aplicaciones que poseen esas ventanas.

Las aplicaciones actualizan la interfaz de usuario en consecuencia. Una gran diferencia es que el renderizado se realiza dentro de las propias aplicaciones, utilizando las bibliotecas de Wayland vinculadas.

La aplicación actualiza el búfer utilizado para contener la ventana o crea uno nuevo y elimina el antiguo. La aplicación cliente luego envía una notificación al compositor, diciéndole que actualice su asignación de ventanas y use el búfer de video nuevo o actualizado.

Esta arquitectura simplificada y el diseño de código moderno brindan mejoras de rendimiento, con el cambio de tamaño y el arrastre de ventanas en particular, que parecen suaves y fluidos.

Adopción lenta de Wayland por parte de las aplicaciones

Wayland es el sistema de ventanas predeterminado en Debian 10 y posteriores, Fedora 34 o posterior, Ubuntu 18.04 o posterior y otras distribuciones como Arch Linux. A pesar de esto, la mayoría de las veces, Wayland ejecuta aplicaciones X11.

Hay una capa de compatibilidad llamada XWayland que permite que las aplicaciones X11 se ejecuten bajo Wayland. Esto fue necesario porque la mayoría de las aplicaciones X11 no se modificaron ni se trasladaron a Wayland.

En entornos de escritorio que proporcionan compositores de Wayland, como GNOME, las aplicaciones oficiales como GNOME Text Editor y Maps, Files y Calendar son todas aplicaciones nativas de Wayland. Pero la gran mayoría de las aplicaciones X11 siguen siendo aplicaciones X11 nativas intactas.

El middleware XWayland generalmente funciona bien, pero puede haber problemas con algunas aplicaciones X11 que realizan funciones relacionadas con la pantalla de bajo nivel, como la grabación de pantalla. Usar Wayland con NVIDIA puede ser tan doloroso como usar X11, aunque no tuve problemas con mi controlador diario al usarlo con una GPU NVIDIA GeForce GT 1030.

Algunos autores de aplicaciones X11 probablemente esperan que su aplicación funcione bien con XWayland, y pueden evitar tener que volver a trabajar en las aplicaciones de Wayland. No se sorprenda si la adopción y la migración a Wayland son largas y lentas, con nuevas aplicaciones que lo adoptan, pero la mayoría de las aplicaciones X11 existentes permanecen como están, depositando sus esperanzas en XWayland.

¿Estás usando Wayland o X11?

Si está utilizando alguna de las principales distribuciones de Linux, es probable que ya esté utilizando Wayland. Puede verificar ejecutando el siguiente comando.

echo $XDG_SESSION_TYPE

En un sistema que usa Wayland, la salida será:

Y en un sistema que ejecuta el sistema X Window, verá:

En raras ocasiones, el XDG_SESSION_TYPE la variable de entorno no está configurada. En ese caso, puede usar este comando en su lugar:

loginctl show-session $(loginctl show-user $(whoami) -p Display --value) -p Type --value

Adentro, escondido loginctl El comando utiliza el show-user comando para mostrar las propiedades del usuario nombrado. EL whoami el comando nos da el nombre del usuario actual. EL -p (propiedad) limita la salida de loginctl información sobre la configuración de "Pantalla", y usamos el --value opción para devolver solo el valor. No queremos tener la cadena "Display=" en la respuesta de loginctl . Todo esto nos da un ID de sesión.

Pasamos ID de sesión afuera loginctl y usa el show-session comando para mostrar los atributos de la sesión. usamos el -p (propiedad) para limitar la salida a la información del tipo de sesión y usar la opción --value opción para mostrar el valor sin la etiqueta "Type=".

En una computadora que use Wayland, verás:

Si está utilizando el sistema X Window, verá:

A menos que tenga problemas, es mejor que se quede con lo que ya está usando. Pero si nota inestabilidades o actualizaciones de pantalla entrecortadas, puede intentar cambiar a la que no está usando.

En GNOME, si desea cambiar y probar el otro sistema, en la pantalla de inicio de sesión, haga clic en su nombre de usuario, luego haga clic en el ícono de ajustes en la esquina inferior derecha de la pantalla.

Un menú le ofrecerá diferentes versiones de GNOME. Las opciones que mencionan "Xorg" usan el sistema X Window y las que no usan Wayland.

Índice
  1. Cómo funciona X11
  2. Cómo funciona Wayland
  3. Adopción lenta de Wayland por parte de las aplicaciones
  4. ¿Estás usando Wayland o X11?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir