Wayland ist ein Ersatz-Fenstersystem für Linux-Distributionen. Es ersetzt den veralteten X11-Standard. Da die Anwendungen angepasst werden müssen, um damit zu funktionieren, verlief die Einführung bisher langsam. Zum Zeitpunkt des Verfassens dieses Artikels ist die erhöhte Sicherheit der Hauptvorteil gegenüber X11.
X11 oder das X Window System ermöglicht die Anzeige und Steuerung von Fenstern in Ihrer grafischen Desktop-Umgebung. Wayland ist ein Ersatz für X11. Es ist darauf ausgelegt, schneller und sicherer zu sein. Hier erfahren Sie, was Sie über sie wissen müssen.
Was ist Wayland?
Wayland ist ein moderner Ersatz für X11, das seit Jahrzehnten das Standard-Fenstersystem unter Linux ist. Wayland ist ein Kommunikationsprotokoll, das die Nachrichtenübermittlung zwischen einem X Window-Anzeigeserver und Clientanwendungen definiert. Das Wayland-Projekt stellt Client- und Serverbibliotheken bereit, die es Anwendungen ermöglichen, das Protokoll zu verwenden.
Das Wayland-Projekt wurde von a ins Leben gerufen roter Hut Entwickler im Jahr 2008.
Die vielen Namen von X
Das X-Window-System ist ein Fenstersystem, das erstmals für den Unix-Betriebssystem von veröffentlicht wurde Massachusetts Institute of Technology im Jahr 1984. Anwendungen können auf der Funktionalität des Fenstersystems aufbauen, um Benutzeroberflächen zu generieren.
1987 hatte das X-Window-System Version 11 erreicht und wurde als X11 bekannt. Es wird jetzt von der verwaltet X.Org-Stiftung. Es handelt sich immer noch um Version 11, obwohl es seit 1987 viele kleinere Versionen gab. Zum Zeitpunkt des Verfassens dieses Artikels handelt es sich um die aktuelle stabile Version X11R7.7.
Das „X“ im Namen bedeutet weder zehn in römischen Ziffern noch impliziert es „Xtra“, „Xtended“ oder ähnliches. Ein früheres Fenstersystem hieß „W“ für „Fenster“, und beim Start des neuen Projekts wechselten sie einfach zum nächsten Buchstaben im Alphabet.
Sie werden das X-Window-System als „X“, „X11“, „Xorg“, „X Windows“ und „X-Window-System“ bezeichnen.
Wie X11 funktioniert
Das X-Window-System verarbeitet Ereignisse und Grundfunktionen auf niedriger Ebene, z. B. die Interaktion mit dem Maus sowie Zeichnen und Verschieben von Fenstern. Die Anwendungen kümmern sich um die visuelle Darstellung und das Interface-Design. Das Aussehen der Fenster, welche Schaltflächen sie haben und wo sich diese Schaltflächen befinden, sind Entscheidungen, die der Anwendungsprogrammierer trifft. Das X Window System zeichnet das resultierende Design auf den Bildschirm.
X11 bietet eine Definition für die Kommunikation, die zwischen den verschiedenen Komponenten eines funktionierenden X Window Systems erfolgen muss. Diese Kommunikation ist erforderlich, da sich der Code, den eine X-fähige Anwendung zum Zeichnen ihrer Fenster und Schnittstellenelemente verwendet, nicht in der Anwendung befindet. Diese Arbeit wird zwischen einem X-Server und dem Window Manager geteilt.
Anwendungen sind Clients des X-Servers. Der Window Manager ist eine besondere Art von Client. Der X-Server ist für die Verwaltung von Ressourcen, die Ausführung von Zeichnungsanforderungen und die Weiterleitung von Ereignissen wie Tastendrücken und Mausklicks an die entsprechenden Anwendungen zuständig.
Es fungiert auch als Vermittler bei der Kommunikation zwischen dem Window Manager und den Anwendungen und vermittelt Nachrichten zwischen ihnen hin und her. Der Fenstermanager verwaltet eine Liste der Fenster, die Anwendungen geöffnet haben, wo sie sich auf dem Bildschirm befinden, welche Größe sie haben, ob sie sich überlappen usw.
Ein Compositing-Fenstermanager verwaltet für jedes Fenster einen Off-Screen-Puffer. Es fügt diese Puffer zu einem einzigen Bild zusammen, das das oberste Fenster – das den gesamten Desktop darstellt – darstellt und auf den Bildschirm geschrieben wird.
Alle modernen grafischen Desktop-Umgebungen, einschließlich GNOME und KDE, verwenden Compositing-Fenstermanager.
Wie Wayland funktioniert
Wayland soll die Probleme von X11 lösen. Die X11-Architektur erfordert viel Messaging. Der X-Server sitzt zwischen den Clients und dem Window Manager. Es liegt auch zwischen allem und – über das Kernel – die Grafikhardware. Das Volumen der Nachrichten kann zu Latenz und einem verzögerten, unruhigen visuellen Erlebnis führen.
Es gibt auch eine große Codebasis. Es gibt die Serveranwendung, die Window Manager-Anwendung und die X11-Bibliothek, die Clients verwenden. Je größer (und älter) Ihre Codebasis ist, desto schwieriger ist die Wartung und desto mehr werden Sie mit Legacy-Code zu kämpfen haben.
Durch die Änderung der Architektur hat Wayland die Codebasis modernisiert und optimiert, was zu Leistungsvorteilen und verbesserter Sicherheit führt.
Tatsächlich haben sie den Server und den Fenstermanager in einer Anwendung zusammengeführt. Sie haben jeglichen Code entfernt, der Funktionen ausführte, die jetzt vom Kernel ausgeführt werden. Anstatt den Aufwand zu replizieren, nutzten sie die Funktionalität des Kernels.
Mit Wayland kommunizieren der Compositor und die Client-Anwendung direkt. Der Compositor behält seine interne Zuordnung darüber bei, welche Fenster sich wo auf dem Desktop befinden und welche Größe und welchen Status sie haben. Er vermittelt Tastatur-, Maus- und Fensteränderungsereignisse und sendet sie an die Anwendungen, denen diese Fenster gehören.
Die Anwendungen aktualisieren die Benutzeroberfläche entsprechend. Ein wesentlicher Unterschied besteht darin, dass das Rendering innerhalb der Anwendungen selbst mithilfe der verknüpften Wayland-Bibliotheken erfolgt.
Die Anwendung aktualisiert entweder den Puffer, der zum Speichern des Fensters verwendet wird, oder erstellt einen neuen und verwirft den alten. Die Clientanwendung sendet dann eine Benachrichtigung an den Compositor und weist ihn an, seine Fensterzuordnung zu aktualisieren und den neuen oder aktualisierten Videopuffer zu verwenden.
Diese vereinfachte Architektur und das moderne Code-Design sorgen für Leistungsverbesserungen, wobei insbesondere die Größenänderung und das Ziehen von Fenstern reibungslos und flüssig wirken.
Waylands langsame Akzeptanz durch Anwendungen
Wayland ist das Standard-Fenstersystem in Debian 10 und neuer. Fedora 34 oder neuer, Ubuntu 18.04 oder neuer und andere Distributionen wie Arch Linux. Trotzdem führt Wayland in den meisten Fällen X11-Anwendungen aus.
Es gibt eine Kompatibilitätsschicht namens XWayland, die die Ausführung von X11-Anwendungen unter Wayland ermöglicht. Dies war erforderlich, da die meisten X11-Anwendungen nicht geändert und auf Wayland portiert wurden.
In Desktop-Umgebungen, die Wayland-Kompositoren wie GNOME bereitstellen, sind offizielle Anwendungen wie der GNOME-Texteditor und Karten, Dateien und Kalender allesamt native Wayland-Anwendungen. Aber die überwiegende Mehrheit der X11-Anwendungen sind immer noch unberührte, native X11-Anwendungen.
Die XWayland-Middleware funktioniert normalerweise einwandfrei, es kann jedoch zu Problemen mit einigen X11-Anwendungen kommen, die bildschirmbezogene Funktionen auf niedriger Ebene wie die Bildschirmaufzeichnung ausführen. Die Verwendung von Wayland mit NVIDIA kann genauso mühsam sein wie mit X11, obwohl ich mit meinem täglichen Treiber, der es mit einer NVIDIA GeForce GT 1030-GPU verwendet, keine Probleme hatte.
Einige Autoren von X11-Anwendungen hoffen wahrscheinlich, dass ihre Anwendung mit XWayland einwandfrei funktioniert, und dass sie eine Überarbeitung in Wayland-Anwendungen vermeiden können. Seien Sie nicht überrascht, wenn die Einführung und Migration zu Wayland langwierig und langsam ist und neue Anwendungen es übernehmen, die Mehrheit der bestehenden X11-Anwendungen jedoch so bleiben, wie sie sind, und ihre Hoffnungen auf XWayland setzen.
VERWANDT: Was ist neu in Ubuntu 21.04 „Hirsute Hippo“?
Verwenden Sie Wayland oder X11?
Wenn Sie eine der großen Linux-Distributionen verwenden, nutzen Sie wahrscheinlich bereits Wayland. Sie können dies überprüfen, indem Sie den folgenden Befehl ausführen.
echo $XDG_SESSION_TYPE
Auf einem System, das Wayland verwendet, lautet die Ausgabe:
Und auf einem System, auf dem das X-Window-System läuft, sehen Sie:
Selten, die XDG_SESSION_TYPE
Umgebungsvariable ist nicht gesetzt. In diesem Fall können Sie stattdessen diesen Befehl verwenden:
loginctl show-session $(loginctl show-user $(whoami) -p Display --value) -p Type --value
Das Innere, verschachtelt loginctl
Der Befehl verwendet die show-user
Befehl zum Anzeigen der Eigenschaften des genannten Benutzers. Der whoami
Befehl gibt uns der Name des aktuellen Benutzers. Der -p
(Eigenschaft)-Option schränkt die Ausgabe von ein loginctl
um Informationen zur Einstellung „Anzeige“ zu erhalten, und wir nutzen die --value
Option, um nur den Wert zurückzugeben. Wir möchten die Zeichenfolge „Display=“ nicht in der Antwort von haben loginctl
. All das gibt uns eine Sitzungs-ID.
Wir geben die Sitzungs-ID an die Außenseite weiter loginctl
und verwenden Sie die show-session
Befehl zum Anzeigen von Attributen der Sitzung. Wir benutzen das -p
(Eigenschaft) Option, um die Ausgabe auf Informationen über den Sitzungstyp zu beschränken, und verwenden Sie die --value
Option, um den Wert ohne die Bezeichnung „Type=“ anzuzeigen.
Auf einem Computer, der Wayland verwendet, sehen Sie Folgendes:
Wenn Sie das X-Window-System ausführen, sehen Sie Folgendes:
Sollten Sie Wayland oder X11 verwenden?
Sofern Sie keine Probleme haben, können Sie auch bei dem bleiben, was Sie bereits verwenden. Wenn Sie jedoch Instabilitäten oder ruckartige Bildschirmaktualisierungen bemerken, können Sie versuchen, zu einem anderen Gerät zu wechseln, das Sie nicht verwenden.
Wenn Sie unter GNOME wechseln und das andere System ausprobieren möchten, klicken Sie auf dem Anmeldebildschirm auf Ihren Benutzernamen und dann auf das Zahnradsymbol in der unteren rechten Ecke der Anzeige.
Ein Menü bietet Ihnen verschiedene Versionen von GNOME. Optionen, die „Xorg“ erwähnen, verwenden das X Window System und diejenigen, die Wayland nicht verwenden.