Von X11 zu Wayland: Das solltest du zum Umbruch in der GNU/Linux-Welt wissen!

Als Video ansehen
Bereitgestellt über YouTube

Von X11 zu Wayland: Das solltest du zum Umbruch in der GNU/Linux-Welt wissen!

GNU/Linux Nutzer werden öfter von Wayland und X11 bzw. dem X Window System gehört haben – wahrscheinlich im Kontext eines Wechsel ihrer bevorzugten Distribution(en). Das Raspberry Pi OS hat in der jüngst erschienenen Version 12 Bookworm beispielsweise zu Wayland migriert. Dieser Artikel fasst zusammen, was du über die beiden wissen solltest: Was machen sie? Worin unterscheiden sie sich? Welche Konsequenzen hat das für mich als Nutzer?

Wie X11 grafische Programme ermöglichte

Das X Window System (zu Deutsch X Fenstersystem, oft mit X, X11, X Window abgekürzt) ist ein Protokoll, um Fenster auf Bildschirmen darzustellen – die Grundlage, um grafische Programme anzuzeigen, wie wir sie heute kennen. Es entstand 1984 und ist damit älter als Linux sowie Microsoft Windows. Zu seinen Aufgaben gehören alle grundlegenden Funktionen, die Programmfenster benötigen: Darstellung von Schriften, Zeichnen von Linien usw. Hierfür greift es auf die Grafikkarte zu und bildet eine Abstraktionsschicht, oft auch mit eigenen Grafikkartentreibern. Auch mit anderen Eingabegeräten wie Maus & Tastatur interagiert es, um Bewegungen (z.B. Fenster verschieben) umzusetzen.1

Zusätzlich benötigt es einen Fenstermanager für die grundlegende Darstellung der Fenster: Etwa die Titelleiste, den Rahmen und Knöpfe zum Minimieren/Schließen – dies wird Fensterdekoration genannt. Das restliche Design eines Programms kommt jedoch von der Anwendung. Sie entscheidet also selbst, wie z.B. ein Knopf oder andere Elemente der Oberfläche aussieht. X11 ist für die Low Level Arbeit zuständig und zeichnet den Kopf auf den Bildschirm, so wie es das Programm optisch wünscht. Diese Flexibilität hat den Nachteil, dass theoretisch jedes Programm anders aussehen kann – außer, es werden (wie bei vielen Programmen üblich) Bibliotheken für Benutzerschnittstellen genutzt – bekannte Beispiele sind GTK und Qt.

X11 besteht aus einer Client-Server-Architektur. Der X.Org-Server ist die Referenzimplementierung der Server-Komponente von X11. Alle Programme, die mit X11 dargestellt werden sollen, sind Clients. Da X11 von Anfang an für den Betrieb über das Netzwerk mit (damals üblichen) geringen Übertragungsraten ausgelegt ist, kann der Client auf einem anderen Rechner laufen. So wird das Programm z.B. auf einem entfernten Rechner gestartet, das Bildsignal aber auf den lokalen PC übertragen. Umgekehrt leitet es Eingaben wie Tasten oder Klicks an das auf dem Server laufende Programm weiter.

Warum Wayland statt X11?

Zwar genießt X11 eine große Verbreitung unter unixähnlichen Betriebssystemen wie u.a. GNU/Linux, doch es ist bald 40 Jahre alt. In vier Jahrzehnten hat sich vieles verändert, wofür die X11-Architektur an einigen Stellen nicht mehr optimal geeignet zu sein scheint: Es ist etwa viel Kommunikation zwischen X-Server und Fenstermanager nötig. Das kann zu langsameren Reaktionszeiten bei der Darstellung führen, wenn der Nutzer eine Aktion ausführt.

Mit steigendem Alter gestaltet sich die Wartung einer Codebasis schwieriger – vor allem wenn sich die Anforderungen ändern und man dies versucht, in der vorhandenen Architektur irgendwie einzubauen. Seit etwa 2008 wird der X.Org-Server zudem langsamer weiter entwickelt. Dazu kommt, dass X.Org nicht nur über den Kernel des Betriebssystems (z.B. Linux) auf die Hardware zugreift: Es steuert Grafikkarten direkt an, teilweise auch Tastaturen und Mäuse.2

Wie Wayland es besser machen will

Das Ziel von Wayland ist, jedes Bild (jeden Frame) perfekt darzustellen: Keine unerwünschten Artefakte wie Tearing, keine instabilen Bildwiederholfrequenzen und auch kein Flimmern. Der Fenstermanager wurde daher in den Server (Wayland Compositor genannt, die Referenzimplementierung ist Weston) integriert, damit die Kommunikation entfällt. Außerdem soll Wayland sicherer werden, etwa in dem weniger Code als privilegierter Root-Benutzer läuft und nicht alle X11-Funktionen eingebaut werden – Beispielsweise die Aufnahme des Bildschirmes. Dies muss durch Protokollerweiterungen durch den Desktop erfolgen. Die Fenster sind zudem isoliert voneinander – was abseits von erwünschten Bildschirmaufnahmen eine sinnvolle Idee ist. Auch kann nicht jedes Fenster auf sämtliche Tastatureingaben zugreifen.3

All das erhöht die Sicherheit, erfordert jedoch neue Wege für Fälle, in denen das erwünscht ist. Software zur Aufnahme von Screenshots soll beispielsweise Zugriff auf den Bildschirm und andere Fenster haben. Eben so ist das erforderlich, um den Bildschirm in Videokonferenzen (Jitsi, Teams & co) teilen zu können. Programme, die selbstständig auf bestimmte Tasten reagieren, bekommen ebenfalls Probleme.

Schlanker wird die Codebasis durch das Entfernen von Funktionen, die den Kernel umgangen haben. Das war damals ggf. nötig, weil es nicht anders umgesetzt werden konnte. Auch hier hat sich jedoch in den letzten Jahrzehnten einiges getan. Prinzipiell ist es sinnvoller, auf den Kernel zurück zu greifen, anstatt das Rad neu zu erfinden. Im Detail finden sich weitere Veränderungen: Etwa wird das Rendering über die Bibliotheken in der Anwendung selbst durchgeführt. Diese sendet nur noch das Ergebnis an den Compositor. Zuvor lag dies beim Fenstermanager, der für jedes Fenster einen Puffer bereithielt. Diese legte er entsprechend ihrer Anordnung übereinander und zeichnete daraus das Bild auf dem Bildschirm.4

Wie sieht die Unterstützung für Wayland aus?

Dies hängt neben den Anwendungen vor allem stark an den Desktopumgebungen. Abhängig davon sind die Fortschritte unterschiedlich ausgeprägt. KDE Plasma hat sich bereits 2019 für Version 6 darauf geeinigt, auf Wayland als Standard-Sitzung zu setzen. Zuvor müsse man noch fünf Probleme lösen, die als zu gravierend für einen Wechsel eingestuft werden.5 Eingebaut ist die Unterstützung schon länger: 2021 verbesserte sich die Nutzung im Alltag durch Plasma 5.21 deutlich.6

Noch weiter ist Gnome, die Desktopumgebung arbeitet seit 2016 an der Wayland-Unterstützung.7 Im Gegenzug dazu hat das schlanke Xfce erst mit der Ende 2022 erschienen Version 4.18 überhaupt mit der Portierung begonnen. Pläne für eine Ablösung von X11 gibt es daher nicht – die Entwickler stellen sogar in Frage, ob dies je geschehen werde.89 Linux Mint ist noch später dran und hat experimentelle Unterstützung von Wayland für Version 21.3 angekündigt, die im Dezember 2023 erscheinen soll.10 Zumindest bei eher konservativ ausgerichteten Mint mag das wenig überraschen. Man sieht jedoch: Die Spannbreite reicht von gerade erst angefangen bis hin zu ist seit 7 Jahren eingebaut.

https://www.collabora.com/news-and-blog/news-and-events/a-wayland-driver-for-wine.html

Warum läuft die Verbreitung von Wayland so schleppend?

Verschiedene Distributionen wie Debian (ab 10) oder Fedora (ab 34) sind bereits gewechselt, sodass Nutzer standardmäßig Wayland statt X11 verwenden. Nicht überall klappte das reibungslos: Ubuntu war mit 17.10 recht früh dabei, mit 18.04 LTS kam jedoch die Rolle Rückwärts – um in 21.04 einen neuen Versuch zu wagen.11 Seit dem ist Ubuntu bei Wayland geblieben. Doch nachdem er bereits seit 2008 existiert, stellt sich die berechtigte Frage: Wieso erst so spät? Immerhin kündigen auch 15 Jahre später noch Distributionen wie z.B. jüngst das Raspberry Pi OS 12 an, zu wechseln.12

Dieser Wechsel erfordert Anpassungen an den Anwendungen, Desktopumgebungen und teilweise auch dazwischen eingesetzten Frameworks. Solche Änderungen ziehen sich in die Länge. Vor allem für jene Anwendungen, bei denen es für den Nutzer kaum spürbare Verbesserungen bei der Bedienung gibt, weil z.B. die Leistung/Geschwindigkeit keine relevante Rolle spielt.

Es liegt jedoch nicht nur an den Entwicklern der Endanwender-Software: Verantwortliche des Bildbearbeitungsprogramms Gimp bemängeln etwa, dass noch grundlegende Funktionen für z.B. das Farb-Management fehlen. Dynamische Skalierung (z.B. 120% statt 100%) fand erst kürzlich Einzug und ist noch nicht in allen Distributionen vorhanden. Auch an anderer Stelle werden Probleme festgestellt, die Ubuntu 2018 sogar dazu veranlassten, den Standard von Wayland zurück auf X.org zu wechseln. Nvidia fällt zudem oft als Negativbeispiel für eine schlechte bis fehlende Unterstützung.13 Schaut man sich die Änderungsprotokolle der proprietären Nvidia-Treiber an, sieht man eine ganze Liste an Einschränkungen. Für einen Teil sieht Nvidia die Ursache beim eigenen Treiber, doch auch das Wayland Protokoll sowie der eingesetzte Compositor seien für einige Probleme verantwortlich.14

Funktionalitäten wie Netzwerktransparenz und Rendering aus der Ferne wurden bewusst nicht in Wayland eingebaut und auf den Client verlagert. Wird das benötigt, muss es implementiert werden. Dies erhöht den Aufwand für Beteiligte außerhalb von Wayland.

XWayland soll helfen, beide zu vereinen

Damit es kein Henne-Ei-Problem gibt, wurde XWayland als Kompatibilitätsschicht entwickelt: Es übersetzt X11-Anwendungen zu einem Wayland-Server. So kann man Anwendungen, die (noch) nicht mit Wayland kompatibel sind, trotzdem nutzen.15 XWayland ist aber nicht 100% abwärtskompatibel, wodurch es unter Umständen zu Problemen kommen kann. Vor allem im Zusammenhang mit Nvidia sind Leistungsprobleme und Anzeigefehler bekannt. Sicherheitslücken von X.Org betreffen ihn zudem ebenfalls.16 Wer auf Wine zurückgreift, um Windows-Spiele unter GNU/Linux nutzen zu können, ist derzeit noch auf X angewiesen.17 Wine & Proton arbeiten an nativen Wayland-Treibern.1819

Auf der anderen Seite unterstützt das aber auch den langsamen Wechsel. Läuft die eigene Anwendung mit XWayland ohne nennenswerte Probleme unter Wayland, ist der Druck für einen nativen Wechsel geringer. Möglicherweise verlassen sich die Entwickler sogar auf diese Kompatibilitätsschicht, um sich Arbeit zu sparen. Das mag u.u. nachvollziehbar sein – vor allem personell dünn besetzte Open Source Projekte sehen sicher dringendere Baustellen, als solch eine Migration. Schlussendlich zieht das den Übergang in die Länge und bedeutet Nachteile an anderer Stelle, etwa mehr Wartungsaufwand oder die Mitnahme von X11-Schwachstellen.

Sollte ich zu Wayland wechseln oder bei X11 bleiben?

Eine pauschale Empfehlung für oder gegen einen Wechsel lässt sich daher aus meiner Sicht derzeit nicht aussprechen. Ich würde mich nach der eingesetzten Desktopumgebung richten: Wer z.B. Mint nutzt, ist derzeit sowieso raus und kann/muss sich erst in einiger Zeit darüber Gedanken machen. Gnome-Nutzer verwenden möglicherweise bereits seit einiger Zeit Wayland (z.B. über Debian), ohne es zu wissen. Hier spricht wenig dagegen, es zumindest mal auszuprobieren. Sollte XWayland nicht zufriedenstellend sein, ist die Nutzung von X11 derzeit weiterhin problemlos möglich. Eine Übersicht über das Protokoll findet man unter wayland.app.

Wayland wird die Zukunft werden und hat das Potenzial, verschiedene Probleme zu lösen, die wir mit X11 auf dem heutigen GNU/Linux-Desktop haben. Es ist derzeit aber nur für einen Teil der Nutzer eine Option. Besserung ist an einigen Stellen in Sicht, doch das braucht seine Zeit. Wer sich unsicher ist und nun wissen möchte, welche der zwei Protokolle auf dem eigenen Desktop läuft, kann sich die Variable XDG_SESSION_TYPE ausgeben lassen. Auf meinem Xfce 4.18 ist es – wenig überraschend – noch X11:

Vor- und Nachteile der GNU/Linux-Welt

In der GNU/Linux-Welt haben viele ein Wort mitzureden, sodass sich größere Änderungen länger hinziehen. Dafür könnten diese sich ggf. gegen eine Entscheidung stellen und Forks bilden, wenn man sich nicht einigt. Devuan vereint beispielsweise Debian-Fans, die Systemd als zu umfangreich ablehnen. Obwohl Debian schon 2014 zu Systemd gewechselt ist, müssen Nutzer dies nicht hinnehmen und können auf Alternativen ausweichen.2021

Auch wenn der langsame Wechsel zu Wayland einigen mühselig erscheinen mag: Freiheit & Mitbestimmungsrechte haben natürlich viele Vorteile und genießen in der GNU/Linux-Welt traditionell einen hohen Stellenwert. Zwar würde es die Entwicklung zunächst vereinfachen, wenn alle das Gleiche nutzen. Dann gibt es jedoch keine Alternativen mehr, falls ein Anwendungsfall nicht in das „Standard-Schema“ passt. Oder sich die „Standard-Software“ in eine Richtung entwickelt, die man als falsch empfindet.

Ob anhand von objektiven Kriterien oder weil man schlicht z.B. den Aufbau von Oberfläche A besser findet als B, spielt dabei keine Rolle. Deswegen gibt es etwa verschiedene Desktopumgebungen, die primär erst mal anders sind. Versucht mal unter Windows z.B. Tabs in den Explorer zu bekommen. Klar gibt es Hacks, mit denen das irgendwie geht – nur wie lange und zuverlässig? Mit dem nächsten Update wird auf so was keine Rücksicht genommen, also geht es nicht mehr oder es crasht sogar etwas. Nach Jahrzehnten hat Microsoft das nun tatsächlich in Windows 11 eingebaut. GNU/Linux-Nutzer wiederum konnten seit Jahrzehnten aus verschiedenen Desktopumgebungen wählen, die das anboten.

Fazit: Einer der größten Wechsel im GNU/Linux Ökosystem

Durch die offene und dezentrale Natur der GNU/Linux-Welt ist es nicht alltäglich, dass die Migration einer Komponente sich durch alle Desktopumgebungen sowie Distributionen zieht. Systemd hält etwa seit Jahren in immer mehr Distributionen Einzug, wenngleich es alternative Init-Systeme gibt. Proprietäre Plattformen wie Windows & MacOS können und würden mit der nächsten Hauptversion halt Y statt X ausliefern. Die Vorversion wird noch für X Jahre unterstützt, spätestens dann ist das Thema erledigt. Vergleichsweise schnell, dafür haben weder Nutzer noch Entwickler eine Wahl – sie müssen mit den Entscheidungen des Herstellers leben, egal ob sie sinnvoll erscheinen oder nicht.

Obwohl Wayland ebenfalls bereits einige Jahre alt ist, gibt es weiterhin Probleme. Es kommt stark auf die eingesetzter Desktopumgebung/Distribution, Programme sowie Hardware an: Abhängig davon kann Wayland bereits gut bis sehr gut funktionieren, oder noch unbenutzbar sein. X11 wird uns daher noch viele Jahre begleiten – wie auch IPv4, bei dem sich der Wechsel auf den ebenfalls seit langem verfügbaren Nachfolger IPv6 in die Länge zieht.22

Quellen

  1. https://de.wikipedia.org/wiki/Fenstermanager#/media/Datei:Schema_der_Schichten_der_grafischen_Benutzeroberfl%C3%A4che.svg ↩︎
  2. https://wayland.freedesktop.org/architecture.html ↩︎
  3. https://wayland.freedesktop.org/docs/html/ch01.html#sect-Motivation ↩︎
  4. https://www.tuxedocomputers.com/de/Wayland-steht-vor-der-Tuer-Was-muss-ich-wissen.tuxedo ↩︎
  5. https://www.heise.de/news/Linux-KDE-Plasma-6-setzt-auf-Wayland-9067726.html ↩︎
  6. https://www.heise.de/news/Linux-Desktop-KDE-Plasma-5-21-mit-grossen-Fortschritten-beim-Wayland-Support-5056591.html ↩︎
  7. https://foundation.gnome.org/2016/03/23/gnome-3-20-released/ ↩︎
  8. https://wiki.xfce.org/releng/wayland_roadmap ↩︎
  9. https://www.heise.de/news/XFCE-4-18-Leichtgewichtiger-Desktop-in-neuer-Version-7396826.html ↩︎
  10. https://www.omgubuntu.co.uk/2023/10/linux-mint-21-3-experimental-wayland-support ↩︎
  11. https://ubuntu.com/blog/bionic-beaver-18-04-lts-to-use-xorg-by-default ↩︎
  12. https://www.heise.de/news/Raspberry-Pi-OS-Raspi-Linux-zieht-auf-Debian-Bookworm-Basis-um-9334106.html ↩︎
  13. https://www.tuxedocomputers.com/de/Was-hat-es-mit-Wayland-auf-sich-.tuxedo# ↩︎
  14. https://forums.developer.nvidia.com/t/wayland-information-for-r545-beta-release/214275 ↩︎
  15. https://wayland.freedesktop.org/xserver.html ↩︎
  16. https://www.heise.de/news/Sicherheitsluecken-im-X-Org-X-Server-und-Xwayland-erlauben-Rechteausweitung-9345096.html ↩︎
  17. https://github.com/ValveSoftware/Proton/issues/4638 ↩︎
  18. https://www.collabora.com/news-and-blog/news-and-events/a-wayland-driver-for-wine.html ↩︎
  19. https://www.collabora.com/news-and-blog/blog/2021/12/22/wine-on-wayland-year-end-update-improved-functionality-stability/ ↩︎
  20. https://www.pro-linux.de/news/1/20763/technischer-ausschuss-w%C3%A4hlt-systemd-zu-debians-neuem-init-system.html ↩︎
  21. https://www.heise.de/news/Devuan-4-0-Wie-Debian-11-aber-ohne-systemd-6222224.html ↩︎
  22. https://www.elektronik-kompendium.de/sites/net/1806031.htm ↩︎

Weiterführende Informationen

  • https://www.howtogeek.com/900698/what-is-wayland-on-linux-and-how-is-it-different-from-x/
  • https://wiki.debian.org/Wayland#Desktops
  • https://wiki.archlinux.org/title/Wayland
  • https://en.wikipedia.org/wiki/Wayland_(protocol)#Comparison_with_other_window_systems
  • https://en.wikipedia.org/wiki/Wayland_(protocol)#Differences_between_Wayland_and_X

Leave a Reply