Qu’est-ce que Wayland sous Linux et en quoi est-il différent de X ?

Hannah Stryker / Geek pratique

Wayland est un système de fenêtrage de remplacement pour les distributions Linux. Il remplace la norme vieillissante X11. Parce qu’il nécessite que les applications soient modifiées pour fonctionner avec, l’adoption a été lente jusqu’à présent. Au moment d’écrire ces lignes, une sécurité accrue est le principal avantage par rapport à X11.

X11, ou le système X Window, permet à votre environnement de bureau graphique d’afficher et de contrôler les fenêtres. Wayland remplace X11. Il est conçu pour être plus rapide et plus sûr. Voici ce que vous devez savoir à leur sujet.

Qu’est-ce que Wayland ?

Wayland est un remplacement moderne de X11, qui est le système de fenêtrage par défaut sous Linux depuis des décennies. Wayland est un protocole de communication qui définit la messagerie entre un serveur d’affichage X Window et des applications clientes. Le projet Wayland fournit des bibliothèques client et serveur qui permettent aux applications d’utiliser le protocole.

Le projet Wayland a été lancé par un développeur Red Hat en 2008.

Les nombreux noms de X

Le système X Window est un système de fenêtrage, lancé pour la première fois pour Unix par le Massachusetts Institute of Technology en 1984. Les applications peuvent s’appuyer sur les fonctionnalités offertes par le système de fenêtrage pour générer des interfaces utilisateur.

En 1987, le système X Window avait atteint la version 11 et était devenu connu sous le nom de X11. Il est maintenant géré par la Fondation X.Org. Il en est toujours à la version 11, bien qu’il y ait eu de nombreuses versions plus petites depuis 1987. Au moment de la rédaction, la version stable actuelle est X11R7.7.

Le « X » dans le nom ne signifie pas dix en chiffres romains, ni n’implique « Xtra », « Xtended » ou quelque chose comme ça. Un système de fenêtrage précédent s’appelait « W », pour « windows », et ils passaient simplement à la lettre suivante de l’alphabet lorsqu’ils démarraient le nouveau projet.

Vous entendrez le système X Window appelé « X », « X11 », « Xorg », « X Windows » et le « système X Window ».

Comment fonctionne X11

Le système X Window gère les événements de bas niveau et les primitives, telles que l’interaction avec la souris, le dessin et le déplacement des fenêtres. Les applications gèrent les visuels et la conception de l’interface. L’apparence des fenêtres, les boutons dont elles disposent et l’emplacement de ces boutons sont des choix effectués par le programmeur de l’application. Le système X Window dessine le dessin résultant à l’écran.

X11 fournit une définition de la communication qui doit passer entre les différents composants d’un système X Window fonctionnel. Cette communication est nécessaire car le code qu’une application compatible X utilise pour dessiner ses fenêtres et ses éléments d’interface n’est pas à l’intérieur de l’application. Ce travail est partagé entre un serveur X et le gestionnaire de fenêtres.

Les applications sont clientes du serveur X. Le gestionnaire de fenêtres est un type particulier de client. Le serveur X est chargé de gérer les ressources, d’exécuter les demandes de dessin et de rassembler les événements tels que les pressions sur les touches et les clics de souris vers les applications appropriées.

Il agit également comme intermédiaire dans la communication entre le gestionnaire de fenêtres et les applications, faisant passer les messages entre eux. Le gestionnaire de fenêtres maintient une liste des fenêtres que les applications ont ouvertes, leur emplacement à l’écran, leur taille, si elles se chevauchent, etc.

Un gestionnaire de fenêtres de composition maintient un tampon hors écran pour chaque fenêtre. Il compose ces tampons en une seule image qui représente la fenêtre la plus haute, qui représente l’ensemble du bureau, qui est écrite à l’écran.

Tous les environnements de bureau graphiques modernes, y compris GNOME et KDE, utilisent des gestionnaires de fenêtres de composition.

Comment fonctionne Wayland

Wayland est destiné à résoudre les problèmes de X11. L’architecture X11 nécessite beaucoup de messagerie. Le serveur X se situe entre les clients et le gestionnaire de fenêtres. Il se situe également entre tout et, via le noyau, le matériel graphique. Le volume de messagerie peut entraîner une latence et une expérience visuelle lente et saccadée.

Il y a aussi une grande base de code. Il y a l’application serveur, l’application Window Manager et la bibliothèque X11 que les clients utilisent. Plus votre base de code est grande (et ancienne), plus il est difficile de la maintenir et plus vous aurez du mal avec le code hérité.

En modifiant l’architecture, Wayland a modernisé et rationalisé la base de code, offrant des avantages en termes de performances et une sécurité améliorée.

En effet, ils ont fusionné le serveur et le gestionnaire de fenêtres en une seule application. Ils ont supprimé tout code qui exécutait des fonctions qui sont maintenant exécutées par le noyau. Au lieu de répliquer l’effort, ils ont tiré parti des fonctionnalités du noyau.

Avec Wayland, le compositeur et l’application cliente communiquent directement. Le compositeur conserve son mappage interne indiquant l’emplacement des fenêtres sur le bureau, leur taille et leur état. Il négocie les événements de changement de clavier, de souris et de fenêtre et les envoie aux applications qui possèdent ces fenêtres.

Les applications mettent à jour l’interface utilisateur en conséquence. Une différence majeure est que le rendu est effectué à l’intérieur des applications elles-mêmes, en utilisant les bibliothèques Wayland liées.

L’application met à jour le tampon utilisé pour contenir la fenêtre ou en crée un nouveau et supprime l’ancien. L’application cliente envoie alors une notification au compositeur, lui disant de mettre à jour son mappage de fenêtre et d’utiliser le tampon vidéo nouveau ou mis à jour.

Cette architecture simplifiée et la conception de code moderne offrent des améliorations de performances, avec des redimensionnements de fenêtre et des glissements en particulier, apparaissant lisses et fluides.

Adoption lente de Wayland par les applications

Wayland est le système de fenêtrage par défaut dans Debian 10 et plus récent, Fedora 34 ou plus récent, Ubuntu 18.04 ou plus récent et d’autres distributions telles que Arch Linux. Malgré cela, le plus souvent, Wayland exécute des applications X11.

Il existe une couche de compatibilité appelée XWayland qui permet aux applications X11 de s’exécuter sous Wayland. Cela était nécessaire car la majorité des applications X11 n’ont pas été modifiées et portées sur Wayland.

Sur les environnements de bureau qui fournissent des compositeurs Wayland, comme GNOME, les applications officielles telles que l’éditeur de texte GNOME et les cartes, fichiers et calendrier sont toutes des applications natives Wayland. Mais la grande majorité des applications X11 sont encore des applications X11 natives intactes.

Le middleware XWayland fonctionne généralement très bien, mais il peut y avoir des problèmes avec certaines applications X11 qui exécutent des fonctions de bas niveau liées à l’écran telles que l’enregistrement d’écran. Utiliser Wayland avec NVIDIA peut être tout aussi pénible qu’avec X11, bien que je n’aie eu aucun problème avec mon pilote quotidien qui l’utilise avec un GPU NVIDIA GeForce GT 1030.

Certains auteurs d’applications X11 espèrent probablement que leur application fonctionnera bien avec XWayland, et ils peuvent éviter d’avoir à les retravailler dans les applications Wayland. Ne soyez pas surpris si l’adoption et la migration vers Wayland sont longues et lentes, avec de nouvelles applications qui l’adoptent, mais la majorité des applications X11 existantes restent telles quelles, plaçant leurs espoirs sur XWayland.

EN RAPPORT: Quoi de neuf dans Ubuntu 21.04 ‘Hirsute Hippo’

Utilisez-vous Wayland ou X11 ?

Si vous utilisez l’une des principales distributions Linux, il est probable que vous utilisiez déjà Wayland. Vous pouvez vérifier en exécutant la commande suivante.

echo $XDG_SESSION_TYPE

Sur un système utilisant Wayland, la sortie sera :

Et sur un système exécutant le système X Window, vous verrez :

Rarement, le XDG_SESSION_TYPE la variable d’environnement n’est pas définie. Dans ce cas, vous pouvez utiliser cette commande à la place :

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

L’intérieur, niché loginctl commande utilise le show-user commande pour afficher les propriétés de l’utilisateur nommé. Le whoami La commande nous donne le nom de l’utilisateur actuel. Le -p (propriété) limite la sortie de loginctl aux informations sur le paramètre « Affichage », et nous utilisons le --value option pour ne renvoyer que la valeur. Nous ne voulons pas avoir la chaîne « Display= » dans la réponse de loginctl . Tout cela nous donne un ID de session.

Nous transmettons l’ID de session à l’extérieur loginctl et utilisez le show-session commande pour afficher les attributs de la session. Nous utilisons le -p (propriété) pour limiter la sortie aux informations sur le type de session et utiliser l’option --value option pour afficher la valeur sans l’étiquette « Type= ».

Sur un ordinateur utilisant Wayland, vous verrez :

Utilisation de la commande loginctl sur Fedora Linux, pour déterminer si Wayland ou X11 est utilisé

Si vous utilisez le système X Window, vous verrez :

Utilisation de la commande loginctl sur Manjaro inux, pour déterminer si Wayland ou X11 est utilisé

Devriez-vous utiliser Wayland ou X11 ?

Sauf si vous rencontrez des problèmes, vous pouvez tout aussi bien vous en tenir à ce que vous utilisez déjà. Mais si vous remarquez des instabilités ou des mises à jour saccadées de l’écran, vous pouvez essayer de passer à celui que vous n’utilisez pas.

Sur GNOME, si vous souhaitez basculer et essayer l’autre système, sur l’écran de connexion, cliquez sur votre nom d’utilisateur, puis cliquez sur l’icône de la roue dentée dans le coin inférieur droit de l’écran.

Le menu déroulant dans GNOME qui vous permet de choisir une expérience de bureau basée sur Wayland ou X11

Un menu vous proposera différentes versions de GNOME. Les options qui mentionnent « Xorg » utilisent le système X Window et celles qui n’utilisent pas Wayland.

EN RAPPORT: Comment lister les variables d’environnement sous Linux

Source-135