Wayland (Display-Server-Protokoll)
Wayland ist ein Display-Server-Protokoll für Linux, FreeBSD und DragonFly BSD. Seine Hauptaufgabe ist das Rendern von Fenstern auf einer Bitmap. Es beschreibt die Kommunikation zwischen einem Display-Server und seinen Clients (üblicherweise die Anwendungen des Nutzers). Der Server wird Wayland-Compositor genannt, da er zusätzlich die Funktion eines Composition-Window-Manager übernimmt. Ziel von Wayland ist es, dem Programmierer ein leichter zu wartendes Display-Server-Protokoll als den bisherigen X-Window-Server bereitzustellen und die Sicherheit zu erhöhen. Anwendungen, die noch vom X-Server abhängig sind, können mithilfe von XWayland auch unter einem Wayland-Compositor genutzt werden.

Entwicklung 

Begonnen wurde das Softwareentwicklungsprojekt für Wayland von Kristian Høgsberg, einem Mitglied von Intels Open Source Technology Center (OSTC). Wayland versteht sich (zumindest auf Linux) als eine Alternative zum X-Window-System, wobei letzteres allerdings noch auf allen unixoiden Betriebssystemen lauffähig ist. Das von Kristian Høgsberg erklärte Ziel für die Software lautet:

Aufbau 

Unter X11 ist ein Extra-Programm, der Fenstermanager, für die Fensterdekoration (Titelleiste, Rahmen usw.) aller Fenster zuständig. Unter Wayland werden die Funktionen des Displayservers und des Fenstermanagers im Wayland Compositor zusammengefasst; die Kommunikation zwischen den beiden entfällt somit. Nach wie vor kann jeder Client seine eigenen Fensterdekorationen zeichnen, oder sie können zentral vom Compositor gezeichnet werden. Weston verlangt Client-seitige Fensterdekorationen, Kwin sorgt für Server-seitige.

Wayland-Display-Server-Protokoll 

Das Wayland-Display-Server-Protokoll definiert, dass Clients via EGL direkt in den Framebuffer zeichnen. Für Mesa 3D wurde dafür libwayland-EGL geschrieben. Diese Bibliothek erweitert die vorhandene Mesa-Implementierung von EGL dahingehend, dass die Zugriffe effizienter werden.

Wayland greift auf vorhandene Komponenten des Kernel des jeweiligen Betriebssystems wie Direct Rendering Manager (DRM), Kernel Mode-Setting (KMS) und den Graphics Execution Manager (GEM) unter Linux zurück, um einen minimalen Display-Server bereitzustellen. Im Juni 2010 wurde Weston von dem auf Desktops eher traditionellen OpenGL auf OpenGL ES portiert. Grund dafür war, dass die einzige verfügbare freie OpenGL-Implementierung Mesa 3D von GLX und damit vom X-Window-System abhängt, die OpenGL-ES-Implementierung von Mesa 3D aber nicht.
Wayland kommt aber ohne OpenGL / OpenGL ES aus.

Wayland Compositor 

 Weston: Die Referenzimplementierung eines Wayland-Compositors.
 KWin: Der Fenstermanager des KDE-Projekts, wird derzeit um Wayland-Unterstützung erweitert.
 Mutter: Ein Fenstermanager und gleichzeitig ein Wayland Compositor.
 EGL: Nachdem Nvidia-Mitarbeiter 2010 bekanntgegeben hatten, dass keine Unterstützung für Wayland geplant sei, wurde im Oktober 2013 ein Treiber mit EGL-Unterstützung veröffentlicht, den auch Android nutzt. Seit den Nvidia Treibern mit der Version 470 wird Wayland auch von Nvidia für alle GPUs unterstützt, die mit diesen Treibern laufen.
 Lipstick: Die Implementierung des Wayland-Compositors in Sailfish OS, dem Betriebssystem des Jolla-Smartphones.

Bildsynthese 

Das Wayland-Protokoll enthält keine API zur Bildsynthese.
Jeder Wayland-Client ist für die Bildsynthese seines Fensterinhaltes selbst verantwortlich und schreibt das Ergebnis in seinen eigenen Puffer. Für die Bildsynthese kann es eine eigene Engine mitbringen oder eine externe Bibliothek nutzen, wie z. B. Cairo, OpenGL oder Vulkan, oder auch die „rendering engine“ von Qt oder GTK+ benutzen.

Einsatz 

Wayland wird als Ersatz für den X.Org-Server betrachtet, bietet aber andere potentielle Anwendungsmöglichkeiten, beispielsweise das Bereitstellen von X-Servern und GDM-Anmeldungen.
 Enlightenment: Ab der Version E20, welche im Dezember 2015 erschien, wird Wayland von Enlightenment unterstützt.
 Gnome: Im März 2013 kündigten GNOME-Entwickler Pläne für eine vollständige Portierung innerhalb eines Jahres an. Gnome 3.10, welches im September 2013 erschien, enthielt bereits eine experimentelle Wayland-Unterstützung. Ab Version 3.20, welche am  23. März 2016  erschien, gilt die Wayland-Unterstützung als alltagstauglich.
 KDE: Unterstützung von KWin für OpenGL ES wird ab Version 4.7 ausgeliefert. Wayland-spezifische Änderungen sind seit 2011 in Entwicklung.
 Tizen: Tizen unterstützt Wayland in IVI-Konfigurationen. Für Tizens Mobilplattform wurde Wayland-Unterstützung angekündigt.
 Sailfish OS: Jollas erstes Mobiltelefon mit Sailfish OS läuft laut Aussage der Entwickler mit Wayland.

Lizenz 

Das Wayland-Display-Server-Protokoll wurde durch verschiedene Komponenten implementiert, wie z. B. libWayland-server, libWayland-client oder libWayland-EGL. Alle diese Komponenten sind freie Software und unterliegen zusammen mit dem Wayland-Compositor Weston der MIT-Lizenz.

Rezeption 

Wayland war ursprünglich als ein neues Projekt auf der Website des Unternehmens Phoronix Media vorgestellt worden, als im November 2008 ein Artikel mit dem Titel „Wayland: Ein neuer X.Org-Server für Linux“ veröffentlicht wurde. Høgsberg reagierte auf die Aufmerksamkeit der Medien über seinen Blog und informierte darüber, dass Wayland nicht ein neuer X-Server sei, sondern ein neuer Display-Server, und stellte fest, dass es ein junges, noch unreifes Projekt sei.

Streit mit Canonical 

Kurze Zeit nach Beginn der Entwicklung wurde Wayland vom Großteil der Linux-Gemeinde als baldiger Standard akzeptiert. Anfang 2013 gab jedoch Canonical überraschend bekannt, eine eigene Lösung namens „Mir“ entwickeln zu wollen. Diese Entscheidung löste Kontroversen aus, da viele es lieber gesehen hätten, dass gemeinschaftlich Wayland vorangebracht und so ein einheitlicher Standard etabliert würde. In einer Stellungnahme von Mitarbeitern Canonicals wurde unter anderem argumentiert, Wayland habe schwerwiegende Sicherheitsprobleme vom X-Window-System geerbt. Diese Behauptung ist nachweislich falsch und wurde wenig später revidiert, führte jedoch dazu, dass die Fronten sich weiter verhärteten. Kritiker – darunter Høgsberg – warfen Canonical vor, das Projekt mit Falschaussagen torpedieren zu wollen. Inzwischen hat Canonical die Entwicklung von Mir aufgegeben und wird zukünftig Wayland nutzen.

Weblinks 

 Casually Defiant Seite von Kristian Høgsberg (englisch)
 Wayland. Seite bei Freedesktop.org (englisch)

Einzelnachweise 

Wayland
Grafische Benutzeroberfläche
Freie Systemsoftware