Vous êtes-vous déjà demandé à quoi servent les serveurs X, Xorg, X11, Wayland et des trucs comme ça ? Wayland contre Xorg, quoi de mieux ? Ce guide est pour vous !
Vous tombez toujours sur ces termes et savez qu'ils sont liés aux graphismes, mais vous aimeriez en savoir plus.
Qu'est-ce qu'un serveur d'affichage sous Linux ?
Un serveur d'affichage est un programme dont la tâche principale est de coordonner l'entrée et la sortie de ses clients vers et depuis le reste du système d'exploitation, le matériel et entre eux. Le serveur d'affichage communique avec ses clients via le protocole du serveur d'affichage.
Le serveur d'affichage est crucial dans toute interface utilisateur graphique, en particulier le système de fenêtrage. Le composant de base de l'interface utilisateur graphique (GUI) se situe entre l'interface graphique et le noyau.
Ainsi, grâce à un serveur d'affichage, vous pouvez utiliser votre ordinateur avec une interface graphique. Sans cela, vous ne seriez limité qu'à une interface de ligne de commande.
Il est essentiel de ne pas confondre le serveur d'affichage avec un environnement de bureau. Les environnements de bureau (Gnome, KDE, Xfce, MATE, etc.) utilisent des serveurs d'affichage.
Le serveur d'affichage communique avec ses clients via le protocole du serveur d'affichage. Il existe trois protocoles de serveur d'affichage disponibles sous Linux. X11 et Wayland en sont deux. Le troisième, Mir, dépasse le cadre de ce didacticiel.
Système X Window, Xorg, X11, expliqué
Système X Window
Le système X Window, souvent simplement appelé X, est ancien. Originaire de 1984, c'était le système de fenêtrage par défaut pour la plupart des systèmes d'exploitation de type UNIX, y compris Linux.
X.Org
Le serveur X.Org est l'implémentation libre et open-source du serveur d'affichage X Window System géré par la Fondation X.Org. Il s'agit d'une application qui interagit avec les applications clientes via le protocole X11 pour dessiner des éléments à l'écran et envoyer des événements d'entrée tels que des mouvements de souris, des clics et des frappes au clavier.
En règle générale, on démarre un serveur X qui attend que les applications du client s'y connectent. Cependant, Xorg est basé sur un modèle client/serveur et permet ainsi aux clients de s'exécuter localement ou à distance sur une autre machine.
Si ce n'est pas évident, il est implicite dans la conception de X11 que l'application et l'affichage ne doivent pas nécessairement être sur le même ordinateur. Lorsque X a été développé, il était courant que le serveur X s'exécute sur un poste de travail et que les utilisateurs exécutent des applications sur un ordinateur distant avec plus de puissance de traitement.
X11
X11 est un protocole réseau. Il décrit comment les messages sont échangés entre un client (application) et l'affichage (serveur). Ces messages contiennent généralement des commandes de dessin primitives telles que "dessiner une boîte", "écrire ces caractères à cette position", "le bouton gauche de la souris a été cliqué", etc.
Mais X11 est vieux, et c'était encore une pile de hacks assis sur un protocole non révisé depuis plus de 30 ans. La plupart des fonctionnalités du protocole X Server n'étaient plus utilisées.
Tout le travail effectué par X11 a été redélégué aux applications individuelles et au gestionnaire de fenêtres. Et pourtant, toutes ces anciennes fonctionnalités sont toujours là, pesant sur toutes ces applications, nuisant aux performances et à la sécurité.
Wayland, le serveur d'affichage de nouvelle génération
Wayland a été lancé par Kristian Hogsberg, un développeur X.Org, en tant que projet personnel en 2008. Il s'agit d'un protocole de communication qui spécifie la communication entre un serveur d'affichage et ses clients.
Wayland est développé comme un projet communautaire gratuit et open source pour remplacer le système X Window (également connu sous le nom de X11 ou Xorg) par un système de fenêtrage moderne, sécurisé et plus simple.
Dans Wayland, le compositeur est le serveur d'affichage. Le compositeur est un gestionnaire de fenêtres qui fournit aux applications un tampon hors écran pour chaque fenêtre. Le gestionnaire de fenêtres compose les tampons de fenêtre en une image représentant l'écran et écrit le résultat dans la mémoire d'affichage.
Le protocole Wayland permet au compositeur d'envoyer les événements d'entrée directement aux clients et permet au client d'envoyer l'événement de dommage directement au compositeur.
Comme dans le cas X, lorsque le client reçoit l'événement, il met à jour l'interface utilisateur (UI). Mais dans le rendu Wayland se produit dans le client, donc le client envoie une requête au compositeur pour indiquer la région qui a été mise à jour.
Le principal avantage de Wayland sur X est qu'il part de zéro. L'une des principales raisons de la complexité de X est qu'au fil des ans, son rôle a changé. En conséquence, aujourd'hui, X11 agit en grande partie comme un protocole de communication "vraiment terrible" entre le client et le gestionnaire de fenêtres.
Wayland est également supérieur en matière de sécurité. Avec X11, il est possible de faire quelque chose appelé "keylogging" en permettant à n'importe quel programme d'exister en arrière-plan et de lire ce qui se passe avec d'autres fenêtres ouvertes dans la zone X11.
Cela n'arrivera tout simplement pas avec Wayland, car chaque programme fonctionne indépendamment.
Conclusion
Cependant, le système X Window présente encore de nombreux avantages par rapport à Wayland. Même si Wayland élimine la plupart des défauts de conception du Xorg, il a ses problèmes. Même si le projet Wayland existe depuis plus de dix ans, les choses ne sont pas stables à 100 %.
À partir de 2022, la plupart des jeux vidéo et des applications gourmandes en ressources graphiques pour Linux sont toujours écrits pour X11. De plus, de nombreux pilotes graphiques à source fermée, tels que ceux des GPU NVIDIA, n'offrent pas encore une prise en charge complète de Wayland.
X ne peut pas durer et Wayland, à bien des égards, est une amélioration. Mais pour l'instant, la grande majorité des applications natives ont été écrites pour Xorg. Jusqu'à ce que ces applications soient toutes portées, Xorg doit être maintenu. Wayland n'est pas encore très stable par rapport à Xorg.