Was ist Wayland unter Linux und wie unterscheidet es sich von X?

Was ist Wayland unter Linux und wie unterscheidet es sich von X?

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 2008 von einem Red Hat- Entwickler gestartet .

Die vielen Namen von X

Das X Window System ist ein Fenstersystem, das erstmals 1984 vom Massachusetts Institute of Technology für den Unix-Betriebssystem veröffentlicht wurde . 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 X.Org Foundation verwaltet . Es handelt sich immer noch um Version 11, obwohl es seit 1987 viele kleinere Versionen gab. Zum Zeitpunkt des Verfassens dieses Artikels ist 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 der Maus sowie das 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 sitzt auch zwischen allem und – über den Kernelder 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 anderen 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.

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 vorhandenen X11-Anwendungen jedoch so bleiben, wie sie sind, und ihre Hoffnungen auf XWayland setzen.

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:

In seltenen Fällen ist die XDG_SESSION_TYPEUmgebungsvariable nicht festgelegt. In diesem Fall können Sie stattdessen diesen Befehl verwenden:

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

Der innere, verschachtelte loginctlBefehl verwendet den show-userBefehl, um Eigenschaften des benannten Benutzers anzuzeigen. Der whoamiBefehl gibt uns den Namen des aktuellen Benutzers . Die -pOption (Eigenschaft) beschränkt die Ausgabe auf loginctlInformationen über die Einstellung „Anzeige“, und wir verwenden die --valueOption, 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 übergeben die Sitzungs-ID an die äußere Datei loginctlund verwenden den show-sessionBefehl, um Attribute der Sitzung anzuzeigen. Wir verwenden die -pOption (property), um die Ausgabe auf Informationen über den Sitzungstyp zu beschränken, und verwenden die --valueOption, um den Wert ohne die Bezeichnung „Type=“ anzuzeigen.

Auf einem Computer, der Wayland verwendet, sehen Sie Folgendes:

Verwenden Sie den Befehl loginctl unter Fedora Linux, um festzustellen, ob Wayland oder X11 verwendet wird

Wenn Sie das X-Window-System ausführen, sehen Sie Folgendes:

Verwenden Sie den Befehl loginctl auf Manjaro Inux, um festzustellen, ob Wayland oder X11 verwendet wird

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.

Das Dropdown-Menü in GNOME, mit dem Sie ein Wayland- oder X11-basiertes Desktop-Erlebnis auswählen können

Ein Menü bietet Ihnen verschiedene Versionen von GNOME. Optionen, die „Xorg“ erwähnen, verwenden das X Window System und diejenigen, die Wayland nicht verwenden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert