Wayland (Display Server -Protokoll)

Wayland
Wayland Logo.svg
Weston 10.0 screenshot.png
Weston, das Referenzimplementierung eines Wayland -Servers.
Originalautor (en) Kristian Høgsberg
Entwickler (en) freedesktop.org et al.
Erstveröffentlichung 30. September 2008; vor 13 Jahren[1]
Stabile Version
Wayland: 1.20,[2] Weston: 10.0[3] / 9. Dezember 2021; vor 7 Monaten
Geschrieben in C
Betriebssystem Offiziell: Linux
Inoffiziell: Netbsd, Freebsd, Libelle BSD[4]
Typ
Lizenz MIT -Lizenz[5][6][7]
Webseite Wayland.Freedesktop.org

Wayland ist ein Kommunikationsprotokoll das gibt die Kommunikation zwischen a an Server anzeigen und seine Kunden sowie eine C Bibliotheksimplementierung dieses Protokolls.[8] Ein Display -Server, der das Wayland -Protokoll nutzt Wayland Compositor, weil es zusätzlich die Aufgabe von a ausführt Compositing -Fenstermanager.

Wayland wird von einer Gruppe von Freiwilligen entwickelt, die ursprünglich von Kristian Høgsberg als a geleitet werden frei und Open Source Community-gesteuertes Projekt mit dem Ziel, das zu ersetzen X Fenstersystem mit einem modernen, sicheren[9][10][11][12] einfacher Fenstersystem in Linux und andere Unix-artig Betriebssysteme.[8][13] Der Quellcode des Projekts wird unter den Bestimmungen der veröffentlicht MIT -Lizenz, a Zulässige freie Softwarelizenz.[13][5]

Im Rahmen seiner Bemühungen entwickelt das Wayland -Projekt auch a Referenzimplementierung eines Wayland Compositors genannt Weston.[8]

Überblick

  1. Das Evdev Modul des Linux Kernel bekommt eine Veranstaltung und sendet es an die Wayland Compositor.
  2. Der Wayland Compositor schaut durch seine Szenengraph Um festzustellen, welches Fenster das Ereignis erhalten sollte. Der Szenengraph entspricht dem, was sich auf dem Bildschirm befindet, und der Komponist von Wayland versteht die Transformationen, die er möglicherweise auf die Elemente im Szenengraph angewendet hat. Daher kann der Wayland -Kompositor das rechte Fenster auswählen und die Bildschirmkoordinaten in die lokalen Koordinaten des Fensters verwandeln, indem die inversen Transformationen angewendet werden. Die Arten der Transformation, die auf ein Fenster angewendet werden kann, ist nur auf das beschränkt, was der Kompositor tun kann, solange er die inverse Transformation für die Eingabeereignisse berechnen kann.
  3. Wie im X -Fall, wenn der Client das Ereignis erhält, aktualisiert er die Benutzeroberfläche als Antwort. Aber im Fall von Wayland erfolgt das Rendering vom Kunden über Eglund der Client sendet nur eine Anfrage an den Kompositor, um die aktualisierte Region anzugeben.
  4. Der Wayland Compositor sammelt Schadensanfragen von seinen Kunden und kompositen dann den Bildschirm erneut. Der Kompositor kann dann direkt eine ausstellen ioctl So planen Sie eine Seiteflip mit Km.

Das Wayland Display -Serverprojekt wurde von gestartet von roter Hut Entwickler Kristian Høgsberg im Jahr 2008.[14]

Ab 2010 haben sich Linux -Desktop -Grafiken von "Ein Haufen von" bewegt Rendering Schnittstellen ... alle sprechen mit dem X Server, was im Zentrum des Universums steht ", um den Linux -Kernel und seine Komponenten (d. H. Direkte Rendering Infrastructure (DRI), Direkter Rendering Manager (DRM)) "in der Mitte" mit "Fenstersystemen wie X und Wayland ... in der Ecke". Dies wird "ein stark vereinfachtes Grafiksystem sein, das mehr Flexibilität und bessere Leistung bietet".[15]

Høgsberg hätte eine hinzufügen können Erweiterung auf x Wie viele jüngste Projekte haben es jedoch vorgezogen, X aus dem Hotpath zwischen Kunden und der Hardware zu "schieben], aus Gründen, die in den FAQ des Projekts erklärt wurden:[13]

Was jetzt anders ist, ist, dass sich viel Infrastruktur von der bewegt hat X Server in den Kernel (Speicherverwaltung, Befehlsplanung, Modus-Einstellung) oder Bibliotheken (Kairo, Pixman, Freetyp, Fontconfig, Pangousw.), und es gibt nur sehr wenig übrig, was in einem zentralen Serverprozess passieren muss. ... [Ein X -Server hat] eine enorme Menge an Funktionen, die Sie unterstützen müssen, um das X -Protokoll zu sprechen, aber niemand wird dies jemals verwenden. ... Dies beinhaltet Code -Tabellen, Glyph -Rasterisierung und -unterbrechung. Xlfds (Im Ernst, XLFDS!) Und die gesamte Kern-Rendering-API, mit der Sie festgelegte Linien, Polygone, breite Bögen und viele weitere hochmoderne Grafikprimitive zeichnen können. Für viele Dinge konnten wir den X.org -Server modern halten, indem wir eine Erweiterung hinzufügen wie z. Xrandr, Xrender und Zusammengesetzt ... Mit Wayland können wir den X -Server und seine gesamte Legacy -Technologie in einen optionalen Codepfad verschieben. An einem Punkt zu gelangen, an dem der X -Server eine Kompatibilitätsoption ist, anstatt dass das Kernrendersystem eine Weile dauert, aber wir werden nie dort ankommen, wenn [wir] nicht planen.

Wayland besteht aus einem Protokoll und einer Referenzimplementierung mit dem Namen Weston. Das Projekt entwickelt auch Versionen von Gtk und Qt Das wird von den meisten Anwendungen von Wayland anstelle von X. durch eine dieser Bibliotheken ohne Änderung an der Anwendung erwartet.

Erste Versionen von Wayland haben nicht bereitgestellt NetzwerktransparenzObwohl Høgsberg 2010 feststellte, dass Netzwerktransparenz möglich ist.[16] Es wurde versucht als Google Summer of Code Projekt im Jahr 2011, war aber nicht erfolgreich.[17] Adam Jackson hat vorgestellt VNC) oder damit ein "Rendering -Befehlsstrom" über das Netzwerk gesendet wird (wie in RDP, WÜRZEN oder X11).[18] Bis Anfang 2013 experimentiert Høgsberg mithilfe eines Proxy Wayland -Servers mit Netzwerktransparenz, der komprimierte Bilder an den realen Kompositor sendet.[19][20] Im August 2017 erlebte GNOME die erste derartige Pixel-Craping-VNC-Server-Implementierung unter Wayland.[21]

Softwarearchitektur

Protokollarchitektur

In der Wayland -Protokollarchitektur kommunizieren ein Kunde und ein Kompositor mithilfe der Referenz -Implementierungsbibliotheken über das Wayland -Protokoll.

Das Wayland -Protokoll folgt a Client -Server -Modell In welchen Clients sind die grafischen Anwendungen, die die Anzeige von Pixelpuffern auf dem Bildschirm anfordern, und der Server (Compositor) ist der Dienstanbieter, der die Anzeige dieser Puffer steuert.

Die Implementierung von Wayland Reference wurde als zweischichtiger Protokoll entwickelt:[22]

  • Eine Schicht auf niedriger Ebene oder Drahtprotokoll Das behandelt das Interprozesskommunikation zwischen den beiden beteiligten Prozesse‍ - ‌Client und Kompositor‍ - und die Marshalle der Daten, die sie austauschen. Diese Ebene ist meldungsbasiert und wird normalerweise mit den Kernel-IPC-Diensten implementiert, speziell mit UNIX -Domain -Sockets Im Falle des Linux und Unix-artig Betriebssysteme.[23]: 9
  • Eine darauf aufgebaute hochrangige Ebene, die die Informationen übernimmt, die Client und Compositor austauschen müssen, um die grundlegenden Funktionen von a zu implementieren Fenstersystem. Diese Schicht wird als "asynchrones objektorientiertes Protokoll" implementiert.[23]: 9

Während die Schicht auf niedriger Ebene manuell in geschrieben wurde CDie hochrangige Ebene wird automatisch aus einer Beschreibung der Elemente des in gespeicherten Protokolls erzeugt Xml Format.[24] Jedes Mal, wenn sich die Protokollbeschreibung dieser XML-Datei ändert, kann der C-Quellcode, der ein solches Protokoll implementiert, regeneriert werden, um die neuen Änderungen einzuschließen, was ein sehr flexibles, erweiterbares und fehlerhaftes Protokoll ermöglicht.

Die Referenzimplementierung des Wayland -Protokolls wird in zwei geteilt Bibliotheken: Eine Bibliothek, die von Wayland -Kunden genannt werden soll Libwayland-Client und eine Bibliothek, die von Wayland -Compositors verwendet werden soll libwayland-server.[23]: 57

Protokollübersicht

Das Wayland -Protokoll wird als "asynchron" beschrieben objektorientierter Protokoll".[23]: 9 Objektorientierter bedeutet, dass die vom Kompositor angebotenen Dienstleistungen als eine Reihe von präsentiert werden Objekte Leben auf demselben Kompositor. Jedes Objekt implementiert eine Schnittstelle das hat einen Namen, eine Reihe von Methoden (genannt Anfragen) sowie mehrere zugeordnete Veranstaltungen. Jede Anfrage und jedes Ereignis hat null oder mehr Argumente, jede mit einem Namen und a Datentyp. Das Protokoll ist asynchron in dem Sinne, dass Anfragen nicht auf synchronisierte Antworten warten müssen oder ACKs, vermeiden Rundwegverzögerungszeit und Verbesserung der Leistung.

Die Wayland -Clients können eine Anforderung (einen Methodenaufruf) für ein Objekt stellen, wenn die Schnittstelle des Objekts diese Anforderung unterstützt. Der Kunde muss auch die erforderlichen Daten für die Argumente einer solchen Anfrage angeben. Auf diese Weise fordern die Kunden Dienste vom Kompositor an. Der Kompositor wiederum sendet Informationen an den Client zurück, indem das Objekt Ereignisse emittiert (wahrscheinlich auch mit Argumenten). Diese Ereignisse können vom Kompositor als Antwort auf eine bestimmte Anfrage oder asynchron nach dem Auftreten interner Ereignisse (wie einer von einem Eingabegerät) oder Zustandsänderungen ausgestrahlt werden. Die Fehlerbedingungen werden auch vom Kompositor als Ereignisse signalisiert.[23]: 9

Damit ein Client eine Anfrage an ein Objekt stellen kann, muss er zunächst dem Server die ID -Nummer mitteilen, mit der dieses Objekt identifiziert wird.[23]: 9 Es gibt zwei Arten von Objekten im Kompositor: globale Objekte und nicht-globale Objekte. Globale Objekte werden vom Kompositor den Kunden beworben, wenn sie erstellt werden (und auch wenn sie zerstört werden), während nicht-globale Objekte normalerweise von anderen Objekten erstellt werden, die bereits als Teil ihrer Funktionalität existieren.[25]

Die Schnittstellen und ihre Anfragen und Ereignisse sind die Kernelemente, die das Wayland -Protokoll definieren. Jede Version des Protokolls enthält eine Reihe von Schnittstellen sowie ihre Anfragen und Ereignisse, die sich in einem beliebigen Wayland -Kompositor befinden. Optional kann ein Wayland Compositor seine eigenen Schnittstellen definieren und implementieren, die neue Anforderungen und Ereignisse unterstützen und so die Funktionalität über das Kernprotokoll hinaus erweitern.[23]: 10 Um Änderungen des Protokolls zu erleichtern, enthält jede Schnittstelle zusätzlich zu ihrem Namen ein "Versionsnummer" -attribut. Dieses Attribut ermöglicht die Unterscheidung von Varianten derselben Schnittstelle. Jeder Wayland Compositor zeigt nicht nur, welche Schnittstellen verfügbar sind, sondern auch die unterstützten Versionen dieser Schnittstellen.[23]: 12

Wayland Core -Schnittstellen

Die Schnittstellen der aktuellen Version des Wayland -Protokolls sind in der Datei definiert Protokoll/Wayland.xml des Quellcode des Wayland.[24] Das ist ein Xml Datei, die die vorhandenen Schnittstellen in der aktuellen Version sowie deren Anfragen, Ereignisse und anderen Attribute auflistet. Dieser Satz von Schnittstellen ist das Minimum, das von einem Wayland -Kompositor implementiert werden muss.

Einige der grundlegendsten Schnittstellen des Wayland -Protokolls sind:[23]: 10–12

  • wl_display- Das globale Kernobjekt, ein spezielles Objekt, um das Wayland -Protokoll selbst zu verkörpern
  • wl_registry- Das globale Registrierungsobjekt, in dem der Kompositor alle globalen Objekte registriert, die er allen Kunden zur Verfügung stehen möchte
  • wl_compositor- Ein Objekt, das den Kompositor darstellt und für die Kombination der verschiedenen Oberflächen zu einem Ausgang verantwortlich ist
  • wl_surface- Ein Objekt, das einen rechteckigen Bereich auf dem Bildschirm darstellt, definiert durch einen Standort, Größe und Pixelgehalt
  • wl_buffer- ein Objekt, das, wenn er an a angehängt ist wl_surface Objekt liefert seinen angezeigbaren Inhalt
  • wl_output- Ein Objekt, das den angezeigbaren Bereich eines Bildschirms darstellt
  • wl_pointer, WL_Keyboard, wl_touch- Objekte, die verschiedene Eingabegeräte darstellen, wie Zeiger oder Tastaturen
  • wl_seat- Ein Objekt, das einen Sitz darstellt (ein Satz von Eingangs-/Ausgabegeräten) in Mehrfachkonfigurationen

Eine typische Wayland -Client -Sitzung beginnt mit der Öffnung einer Verbindung zum Kompositor mit der wl_display Objekt. Dies ist ein spezielles lokales Objekt, das die Verbindung darstellt und nicht auf dem Server lebt. Durch die Verwendung seiner Schnittstelle kann der Client die anfordern wl_registry globales Objekt aus dem Kompositor, in dem alle globalen Objektnamen leben und diejenigen binden, an denen der Client interessiert ist. Normalerweise bindet der Client mindestens a wl_compositor Objekt von wo aus es einen oder mehrere anfordert wl_surface Objekte, um die Anwendungsausgabe auf der Anzeige anzuzeigen.[25]

Wayland Extension Grenzflächen

Ein Wayland Compositor kann seine eigenen zusätzlichen Schnittstellen definieren und exportieren.[23]: 10 Diese Funktion wird verwendet, um das Protokoll über die grundlegenden Funktionen der Kernoberflächen hinaus zu erweitern, und ist zur Standardmethode zur Implementierung der Wayland -Protokollverlängerungen geworden. Bestimmte Kompositoren können sich für benutzerdefinierte Schnittstellen hinzufügen, um spezielle oder eindeutige Funktionen bereitzustellen. Der Wayland Reference Compositor, Weston, verwendete sie, um neue experimentelle Schnittstellen als Testbett für neue Konzepte und Ideen zu implementieren, von denen einige später Teil des Kernprotokolls wurden (wie z. WL_SUBSurface Schnittstelle in Wayland 1.4 hinzugefügt[26]).

Verlängerungsprotokolle zum Kernprotokoll

XDG-Shell-Protokoll

XDG-Shell-Protokoll (siehe freedesktop.org für XDG) ist eine erweiterte Möglichkeit, Oberflächen unter Wayland Compoquons (nicht nur Weston) zu verwalten. Die traditionelle Methode zum Manipulieren (Maximieren, Minimieren, Vollbildmodus usw.) Oberflächen besteht darin, die Funktionen WL_SHELL _*() zu verwenden, die Teil des Kern -Wayland -Protokolls sind und in leben Libwayland-Client. Im Gegenteil, die Implementierung des XDG-Shell-Protokolls soll von The Wayland Compositor bereitgestellt werden. Sie werden also das finden xdg-shell-client-protocol.h Header im Weston -Quellbaum. Jeder Wayland Compositor soll eine eigene Umsetzung liefern.

Ab Juni 2014Das XDG-Shell-Protokoll wurde nicht versioniert und immer noch anfällig für Veränderungen.

XDG_SHELL ist ein Protokoll, das auf lange Sicht WL_SHELL ersetzen soll, wird aber nicht Teil des Wayland -Kernprotokolls sein. Es beginnt als nicht stabile API, die zunächst als Entwicklungsort verwendet werden soll. Sobald die Funktionen nach mehreren Desktop-Shells definiert sind, kann es schließlich stabil gemacht werden. Es bietet hauptsächlich zwei neue Schnittstellen: xdg_surface und xdg_popup. Die XDG_Surface-Schnittstelle implementiert ein Fenster im Desktop-Stil, das verschoben werden kann, geändert, maximiert usw.; Es bietet eine Anfrage zur Erstellung von Kinder-/Elternbeziehungen. Die XDG_POPUP-Schnittstelle implementiert ein Popup/Menü im Desktop-Stil. Ein XDG_POPUP ist immer vorübergehend für eine andere Oberfläche und hat auch implizit.[27]

IVi-Shell-Protokoll

IVi-Shell ist eine Erweiterung des Wayland-Kernprotokolls, das Targeting In-Vehicle-Infotainment (IVI) Geräte.[28]

Rendering -Modell

Wayland Compositor und seine Kunden verwenden Egl direkt in die zeichnen Bildspeicher, Framebuffer; X.org Server mit Xwayland und Glanz.

Das Wayland -Protokoll enthält keine Rendering -API.[23]: 7[13][29][30]: 2 Stattdessen folgt Wayland a Direktes Rendering Modell, in dem der Client den Fensterinhalt in einen mit dem Komponator freigegebenen Puffer übertragen muss.[23]: 7 Zu diesem Zweck kann der Kunde sich dafür entscheiden, das gesamte Rendering für sich selbst zu machen, und verwenden Sie eine Rendering -Bibliothek wie Kairo oder OpenGLoder verlassen Qt oder Gtk. Der Client kann optional auch andere spezielle Bibliotheken verwenden, um bestimmte Aufgaben auszuführen, wie z. Freetyp zum Schriftart.

Der resultierende Puffer mit dem gerenderten Fenstergehalt wird in a gespeichert wl_buffer Objekt. Der interne Typ dieses Objekts ist implementierungsabhängig. Die einzige Voraussetzung ist, dass die Inhaltsdaten zwischen dem Client und dem Kompositor gemeinsam genutzt werden müssen. Wenn der Client einen Software -Renderer (CPU) verwendet und das Ergebnis in der gespeichert ist Systemspeicher, dann können Client und Kompositor verwenden geteilte Erinnerung Um die Pufferkommunikation ohne zusätzliche Kopien zu implementieren. Das Wayland -Protokoll liefert bereits nativ diese Art von gemeinsamen Speicherpuffer durch die WL_SHM und WL_SHM_POOL Schnittstellen.[23]: 11, 20-21 Der Nachteil dieser Methode besteht darin, dass der Kompositor möglicherweise zusätzliche Arbeiten ausführen muss (normalerweise um die gemeinsam genutzten Daten in die GPU zu kopieren), um sie anzuzeigen, was zu einer langsameren Grafikleistung führt.

Der typischste Fall ist, dass der Klient direkt in a rendert Videospeicher Puffer mit einer von GPU beschleunigten Hardware (GPU) wie beispielsweise OpenGL, OpenGL ES oder Vulkan. Client und Compositor können diesen GPU-Raum-Puffer mit einem speziellen Handler freigeben, um ihn zu verweisen.[31] Mit dieser Methode kann der Kompositor die zusätzliche Datenkopie durch die Hauptspeicherpuffer-Client-zu-Kompositor-GPU-Methode vermeiden, was zu einer schnelleren Grafikleistung führt und daher die bevorzugte ist. Der Kompositor kann die Zusammensetzung der endgültigen Szene weiter optimieren, die auf der Anzeige angezeigt werden soll, indem die gleiche Hardware -Beschleunigungs -API wie API -Client verwendet wird.

Wenn das Rendern in einem gemeinsamen Puffer abgeschlossen ist, sollte der Wayland -Kunde den Kompositor anweisen, die gerenderten Inhalte des Puffers auf dem Display zu präsentieren. Zu diesem Zweck bindet der Client das Pufferobjekt, das den gerenderten Inhalt an das Oberflächenobjekt speichert, und sendet eine "Commit" -Anforderung an die Oberfläche, wodurch die effektive Kontrolle des Puffer an den Kompositor übertragen wird.[22] Dann wartet der Client darauf, dass der Kompositor den Puffer (signalisiert durch ein Ereignis) freigibt, wenn er den Puffer wiederverwenden möchte, um einen anderen Rahmen zu rendern, oder kann einen anderen Puffer verwenden, um den neuen Rahmen zu rendern, und wenn das Rendering fertig ist, binden Dieser neue Puffer an der Oberfläche und beschränkt seinen Inhalt.[23]: 7 Das für das Rendern verwendete Verfahren, einschließlich der Anzahl der beteiligten Puffer und deren Verwaltung, steht vollständig unter der Kundenkontrolle.[23]: 7

Vergleich mit anderen Fenstersystemen

Unterschiede zwischen Wayland und x

Es gibt verschiedene Unterschiede zwischen Wayland und X in Bezug auf Leistung, Code -Wartbarkeit und Sicherheit:[32]

Die Architektur
Das Kompositionsmanager ist eine separate, zusätzliche Funktion in X, während Wayland Display -Server und Kompositor als einzelne Funktion zusammenfasst.[33][29] Außerdem enthält es einige Aufgaben der Fenstermanager, was in x ein separater kundenseitiger Prozess ist.[34]
Komposition
Das Kompositing ist in X optional, aber in Wayland obligatorisch. Komposition in x ist "aktiv"; Das heißt, der Kompositor muss alle Pixeldaten abrufen, die eine Latenz einführen. In Wayland ist das Komposition "passiv", was bedeutet, dass der Komponenten Pixeldaten direkt von Clients erhält.[35]: 8–11
Rendering
Der X -Server selbst kann Rendering durchführen, kann jedoch auch angewiesen werden, ein von einem Client gesendeten gerenderten Fenster anzuzeigen. Im Gegensatz dazu enthüllt Wayland keine API für das Rendern, sondern delegiert solche Aufgaben (einschließlich der Darstellung von Schriftarten, Widgets usw.).[33][29] Fensterdekorationen können auf der Clientseite (z. B. durch ein Grafik -Toolkit) oder auf der Serverseite (vom Kompositor) gerendert werden.[36]
Sicherheit
Wayland isoliert die Eingabe und Ausgabe jedes Fensters und erreicht Vertraulichkeit, Integrität und Verfügbarkeit für beide. Das ursprüngliche X -Design fehlte diese wichtigen Sicherheitsfunktionen,[10][11][12] Obwohl einige Erweiterungen entwickelt wurden, um es zu mildern.[37][38][39] Auch mit der überwiegenden Mehrheit des im Client ausgeführten Code muss weniger Code ausgeführt werden Wurzel Privilegien, die Sicherheit verbessern,[10] Obwohl mehrere beliebte Linux -Verteilungen jetzt ermöglichen, dass X ohne Root -Privilegien ausgeführt wird.[40][41][42][43]
Interprozesskommunikation
Der X -Server bietet eine grundlegende Kommunikationsmethode zwischen X Clients, die später von erweitert wurde durch ICCCM Konventionen. Diese X Client-to-Client-Kommunikation wird von Fenstermanagern und auch zur Implementierung verwendet X Sitzungen, Auswahl und Drag-and-Dropund andere Funktionen. Das Wayland Core -Protokoll unterstützt die Kommunikation zwischen Wayland -Kunden überhaupt nicht als entsprechende Funktionalität (falls erforderlich) von der Wayland -Community als etwas angesehen, das durch die implementiert werden sollte Desktop -Umgebungen (wie KDE oder GNOME) oder von einem Dritten (zum Beispiel durch Verwendung von nativen IPC des zugrunde liegenden Betriebssystems).
Networking
Das X -Fenstersystem ist ein die Architektur Das wurde im Kern entwickelt, um ein Netzwerk zu betreiben. Wayland bietet keine Netzwerktransparenz für sich.[13] Ein Kompositor kann jedoch jeden implementieren Remote -Desktop -Protokoll Remote -Display zu erreichen. Darüber hinaus wird das Wayland -Image -Streaming und -Komprimierung untersucht, die den Zugang zum Remote -Rahmenpuffer bieten, der dem von ähnlich ist VNC.[20]

Kompatibilität mit x

Xwayland ist ein X Server Ausführen als Wayland -Kunde und ist daher in der Lage, native X11 -Client -Anwendungen in einer Umgebung mit Wayland Compositor anzuzeigen.[44] Dies ähnelt dem Weg Xquartz Läuft X -Anwendungen in Mac OSNatives Fenstersystem. Das Ziel von Xwayland ist es, den Übergang vom X -Fenstersystem zu Wayland -Umgebungen zu erleichtern und in der Zwischenzeit eine Möglichkeit zu bieten, unverportete Anwendungen auszuführen. Xwayland wurde in die Mainierung X.org Server Version 1.16.[45]

Widget -Toolkits wie z. Qt5 und Gtk3 kann ihr grafisches Back-End zur Laufzeit wechseln,[46] Ermöglichen der Auswahl der Benutzer bei Ladezeit Egal, ob sie die Anwendung über X oder über Wayland führen möchten. QT 5 liefert die -platform Befehlszeilenoption[47] Zu diesem Zweck können Benutzer mit GTK 3 das gewünschte auswählen GDK Back-End, indem Sie die festlegen GDK_BACKEND UNIX -Umgebungsvariable.[46][48]

Wayland Compositors

Typische Elemente von a Fenster. Weder Wayland noch X11 geben an, welche Software für die Rendern des Renders verantwortlich ist Fensterdekoration. Weston verlangt, dass sie vom Kunden gezeichnet werden, aber Kwin Implementieren Sie die serverseitige Dekoration.[36]
Plasma 5.24.0 (Februar 2022) auf Wayland (kwin_wayland Kompositor) unter Arch Linux

Server anzeigen Das implementieren das Wayland -Display -Serverprotokoll wird ebenfalls aufgerufen Wayland Compositors Weil sie zusätzlich die Aufgabe von a ausführen Compositing -Fenstermanager.

  • Weston- das Referenzimplementierung eines Wayland Compositors; Weston implementiert Client Side Dekorationen
  • Aufklärung beansprucht Full Wayland Support seit Version 0.20[49] Derzeit sind die Arbeiten im Gange, um einen vollständigen Wayland -Kompositor zu landen[50]
  • Kwin Hat fast die Unterstützung von Wayland ab 2021 abgeschlossen[51]
  • Murmeln Unterhält eine separate Filiale für die Integration von Wayland für GNOME 3.9 (im September 2013)[52]
  • Lehm - Ein einfacher Beispiel für Wayland -Komponsibler mit Unordnung
  • Schwanken -Ein Fliesen-Wayland-Kompositor und ein Drop-In-Ersatz für den i3-Fenstermanager für X11.[53] Sway verwendet WLROOTS - eine modulare Wayland -Implementierung, die als Basis für mehrere Komponenten fungiert.[54][55]


Weston

Weston ist die Referenzumsetzung eines Wayland -Komponisten[56] Auch vom Wayland Project entwickelt. Es ist geschrieben in C und veröffentlicht unter dem MIT -Lizenz. Weston hat offizielle Unterstützung nur für die Linux Betriebssystem aufgrund der Abhängigkeit von Weston von bestimmten Merkmalen der Linux Kernel, wie zum Beispiel Kernel-Modus-Festlegung, Grafikausführungsmanager (Gem) und Udev, die nicht in anderen UNIX-ähnlichen Betriebssystemen implementiert wurden.[57] Wenn Sie unter Linux laufen Evdev, während die Handhabung von Puffern auf Generisches Puffermanagement (GBM). Im Jahr 2013 jedoch ein Prototypenhafen von Weston zu Freebsd wurde vorgestellt.[58]

Weston unterstützt Digitaler Inhaltsschutz mit hoher Bandbreite (HDCP).[59]

Weston ist auf GEM angewiesen, um Anwendungspuffer zwischen dem Kompositor und den Anwendungen zu teilen. Es enthält ein Plug-in-System von "Shells" für gemeinsame Desktopfunktionen wie Docks und Panels.[20] Kunden sind für die Zeichnung ihrer Fenstergrenzen und ihrer Dekorationen verantwortlich. Zum Rendern kann Weston nutzen OpenGL ES[60] oder die Pixman -Bibliothek zu tun Software -Rendering.[61] Die vollständige OpenGL -Implementierung wird nicht verwendet, da die Installation der vollständigen OpenGL -Bibliotheken auch in den meisten aktuellen Systemen installiert wird GLX und andere X Fenstersystem Unterstützen Sie Bibliotheken als Abhängigkeiten.[62]

Im Oktober 2013 wurde im Oktober 2013 eine Fernzugriffsschnittstelle für Weston vorgeschlagen Realvnc Angestellter.[63]

Maynard

Maynard (im Januar 2017)

Maynard ist ein Grafische Hülle und wurde als Plug-In für Weston geschrieben, genau wie die Gnomschale wurde als Plug-in geschrieben zu Murmeln.[64]

Das Raspberry Pi Foundation in Zusammenarbeit mit Collabora Veröffentlicht Maynard und arbeitet an der Verbesserung der Leistung und des Speicherverbrauchs.[65][66]

libinput

LibInput wurde erstellt, um den Eingangsstapel über mehrere Wayland -Komponenten zu konsolidieren.

Der Weston -Code für die Handhabung von Eingabegeräten (Tastaturen, Zeiger, Touchscreens usw.) wurde in eine eigene separate Bibliothek aufgeteilt, die genannt wurde libinput, für die die Unterstützung erstmals in Weston 1.5 zusammengeführt wurde.[67][68]

LibInput verarbeitet Eingangsgeräte für mehrere Wayland -Kompositoren und bietet auch einen generischen X.org Server Eingabetreiber. Ziel ist es, eine Implementierung für mehrere Wayland -Komponenten mit einer gemeinsamen Möglichkeit zur Verarbeitung von Eingabeereignissen bereitzustellen und gleichzeitig die Menge an benutzerdefinierten Eingabescode -Komponenten zu minimieren. LibInput bietet Geräteerkennung[Klarstellung erforderlich] (über Udev), Gerätehandhabung, Eingangsgeräteereignisverarbeitung und Abstraktion.[69][70]

Version 1.0 von libinput folgte Version 0.21 und beinhaltete Unterstützung für Tablets, Tastensets und Touchpad -Gesten. Diese Version führt eine stabile API/ABI.[71]

Als gnome/gtk und KDE Frameworks 5[72] Die erforderlichen Änderungen haben die erforderlichen Änderungen und ersetzt Fedora 22 EVDEV- und Synaptics -Treiber von X.org durch libinput.[73]

Mit Version 1.16 die X.org Server Unterstützung für die LiBinput -Bibliothek in Form eines Wrappers genannt XF86-Input-Libinput.[74][75]

Wayland -Sicherheitsmodul

Das Wayland -Sicherheitsmodul ist ein Vorschlag, der dem ähnelt Linux -Sicherheitsmodul Schnittstelle gefunden in der Linux Kernel.[76]

Einige Anwendungen (insbesondere diejenigen, die mit Barrierefreiheit) Fordern Sie privilegierte Funktionen, die in verschiedenen Wayland -Komponenten funktionieren sollten. Zur Zeit,[wenn?] Anwendungen unter Wayland können im Allgemeinen keine sensiblen Aufgaben wie Screenshots oder Eingabeereignisse ausführen. Wayland -Entwickler suchen aktiv nach praktikablen Möglichkeiten, um privilegierte Kunden sicher zu behandeln und dann privilegierte Schnittstellen für sie zu entwerfen.

Das Wayland -Sicherheitsmodul ist eine Möglichkeit, Sicherheitsentscheidungen innerhalb des Kompositors an eine zentralisierte Sicherheitsentscheidungsmaschine zu delegieren.[76]

Annahme

Das Wayland -Protokoll ist so konzipiert, dass zusätzliche Protokolle und Schnittstellen definiert und implementiert werden müssen, um ein ganzheitliches Fenstersystem zu erreichen. Ab Juli 2014 An diesen zusätzlichen Schnittstellen wurden daran gearbeitet. Während die Toolkits Wayland bereits vollständig unterstützen, die Entwickler der Grafische Muscheln zusammenarbeiten mit den Wayland -Entwicklern, die die notwendigen zusätzlichen Schnittstellen erstellen.

Desktop Linux -Verteilungen

Ab 2020 Die meisten Linux -Distributionen unterstützen Wayland aus dem Box. Einige bemerkenswerte Beispiele sind:

  • Fedora Beginnend mit Version 25 (veröffentlicht 22. November 2016) verwendet Wayland für die Standard -Desktop -Sitzung von GNOME 3.22 mit X.org Als Fallback, wenn der Grafiktreiber Wayland nicht unterstützen kann.[77] Fedora verwendet Wayland als Standard für die KDE -Desktop -Sitzung, beginnend mit Version 34 (veröffentlicht am 27. April 2021)
  • Ubuntu Versand mit Wayland standardmäßig in Ubuntu 17.10 (Artful Aardvark).[78] Ubuntu 18.04 LTS kehrte jedoch standardmäßig aufgrund mehrerer Probleme auf X.org zurück.[79][80] Seit Ubuntu 21.04 ist Wayland wieder der Standard.[81]
  • Red Hat Enterprise Linux Versand Wayland als Standardsitzung in Version 8, veröffentlicht am 7. Mai 2019.[82]
  • Debian Versand Wayland als Standardsitzung für GNOME seit Version 10, veröffentlicht am 6. Juli 2019.[83]
  • Slackware Linux enthalten Wayland am 20. Februar 2020[84] für die Entwicklungsversion, -Current, die Version 15.0 wurde.
  • Manjaro Schiffe Wayland als Standard in der Gnome -Ausgabe von Manjaro 20.2 (Nibia) (veröffentlicht am 22. November 2020).[85]

Bemerkenswerter früher Anwender:

  • Rebeccablackos ist a Live USB Debianbasiert[86] Linux -Distribution, mit der eine bequeme Möglichkeit einen echten Wayland -Desktop ausprobieren kann, ohne Änderungen am Hauptbetriebssystem des Computers vorzunehmen.[87] Es wird bereits 2012 verwendet, um Wayland zu präsentieren.[88][89]

Toolkit -Unterstützung

Toolkits, die Wayland unterstützen, umfassen Folgendes:

  • Unordnung Hat eine vollständige Unterstützung von Wayland.[90][91][92]
  • Efl Hat eine vollständige Unterstützung von Wayland, außer für die Auswahl.[93]
  • Gtk 3.20 hat eine vollständige Unterstützung von Wayland.[94]
  • Qt 5 verfügt über eine vollständige Unterstützung von Wayland und kann verwendet werden, um sowohl Wayland Compositors als auch Wayland -Clients zu schreiben.
  • SDL Unterstützung für Wayland debütierte mit der Veröffentlichung 2.0.2[95] und wurde seit Version 2.0.4 standardmäßig aktiviert.[96]
  • GLFW 3.2 hat Wayland -Unterstützung.[97]
  • Freeglut hat anfängliche Unterstützung von Wayland.[98]

Desktop -Umgebungen

Desktop -Umgebungen, um von X nach Wayland portiert zu werden Gnom,[99] KDE Plasma 5[100] und Aufklärung.[101]

Im November 2015 wurde die Erleuchtung E20 mit Support Wayland bekannt gegeben.[102][49][103] Gnome 3.20 war die erste Version, die eine vollständige Wayland -Sitzung hatte.[104] GNOME 3.22 beinhaltete eine viel verbesserte Wayland -Unterstützung in GTK, Mutter und Gnome Shell.[105] GNOME 3.24 versendete Unterstützung für die proprietären Nvidia -Treiber unter Wayland.[106]

Die Unterstützung von Wayland für KDE -Plasma wurde bis zur Freisetzung von Plasma 5 verzögert.[107] obwohl früher Kwin 4.11 eine experimentelle Unterstützung von Wayland erhalten.[108] Die Version 5.4 von Plasma war die erste mit einer Wayland -Sitzung.[109] Im Jahr 2020 wurde Klipper nach Wayland portiert und die nächste Veröffentlichung von 5.20 im Oktober 2020 hat das Ziel, das Casting und Aufnehmen von Bildschirm zu verbessern.[110]

Andere Software

Andere Software, die Wayland unterstützt, umfasst die folgenden:

  • Intelligenter Eingabebus Arbeitet an der Unterstützung von Wayland, es könnte für Fedora 22 bereit sein.[111]
  • Realvnc veröffentlichte im Juli 2014 eine Preview der Wayland Developer Preview.[63][112][113]
  • Maliit ist ein Eingabe Methode Rahmen, der unter Wayland läuft.[114][115][116]
  • kmscon Unterstützt Wayland mit WLterm.[117]
  • Mesa Hat Wayland -Unterstützung integriert.[118]
  • Finsternis wurde gemacht, während a auf Wayland zu laufen GSOC-Projekt im Jahr 2014.[119]
  • Das Vulkan WSI (Fenstersystemschnittstelle) ist eine Reihe von API -Aufrufen, die einen ähnlichen Zweck erfüllen wie EGL für OpenGLE oder GLX für OpenGL. Vulkan WSI enthält Unterstützung für Wayland vom ersten Tag an: VK_USE_PLATFORM_WAYLAND_KHR. Vulkan -Kunden können auf nicht modifizierten Wayland -Servern, einschließlich Weston, Genivi Layermanager, Mutter / Gnome Shell, Aufklärung und vielem mehr, laufen. Mit dem WSI können Anwendungen die verschiedenen GPUs im System ermitteln und die Ergebnisse des GPU -Renderings für ein Fenstersystem anzeigen.[120]
  • SPURV, eine Kompatibilitätsebene für Android -Anwendungen, die auf Linux -Verteilungen mit Wayland ausgeführt werden können

Mobile und eingebettete Hardware

Weston läuft weiter Postmarktos

Mobile und eingebettete Hardware, die Wayland unterstützt, enthält Folgendes:

Geschichte

Wayland Verwendet Direktes Rendering Über Egl.

Kristian Høgsberg, a Linux Grafik und X.org Entwickler an der zuvor gearbeitet hat Aiglx und Dri2, startete Wayland 2008 als Freizeitprojekt, während er arbeitete für roter Hut.[128][129][130][131] Sein erklärtes Ziel war ein System, in dem "jeder Rahmen perfekt ist, womit ich meine, dass Anwendungen das Rendering genug steuern können, dass wir niemals reißen, verzögern, neu gezogen oder flackern werden". Høgsberg fuhr durch die Stadt von Wayland, Massachusetts Wenn die zugrunde liegenden Konzepte "kristallisiert", daher der Name.[130][132]

Im Oktober 2010 wurde Wayland ein freedesktop.org Projekt.[133][134] Im Rahmen der Migration die Prior Google -Gruppe wurde durch die ersetzt Wayland-devel Mailingliste als zentraler Diskussions- und Entwicklungspunkt des Projekts.

Die Bibliotheken von Wayland Client und Server wurden ursprünglich unter dem veröffentlicht MIT -Lizenz,[135] während der Referenzkompositor Weston und einige Beispiel Clients die verwendeten GNU Allgemeine öffentliche Lizenz Version 2.[136] Später alle GPL -Code war freigelassen unter der MIT -Lizenz ", um den Code zwischen der Referenzimplementierung und den tatsächlichen Bibliotheken zu verschieben".[137] Im Jahr 2015 wurde festgestellt, dass der von Wayland verwendete Lizenztext eine etwas andere und ältere Version der MIT -Lizenz war und der Lizenztext auf die aktuelle Version aktualisiert wurde, die von der verwendet wurde X.org -Projekt (bekannt als MIT Expat -Lizenz).[5]

Wayland arbeitet mit allen Mesa-kompatibel Treiber mit Dri2 Unterstützung[118] ebenso gut wie Android Treiber über die Hybris -Projekt.[138][139][140]

Veröffentlichungen

Große Wayland- und Weston -Veröffentlichungen[141]
Ausführung Datum Haupteigenschaften
Wayland Weston
Alte Version, nicht mehr gepflegt: 0,85 9. Februar 2012[142] Erste Veröffentlichung.
Alte Version, nicht mehr gepflegt: 0,95 24. Juli 2012[143] Begann die API -Stabilisierung.
Alte Version, nicht mehr gepflegt: 1.0 22. Oktober 2012[144][145] Stabile Wayland-Client-API.
Alte Version, nicht mehr gepflegt: 1.1 15. April 2013[146][147] Software -Rendering.[61] FBDEV, RDP -Backends.
Alte Version, nicht mehr gepflegt: 1.2 12. Juli 2013[148][149] Stabile Wayland-Server-API. Farbmanagement. Unterflüsse. Raspberry Pi Backend.
Alte Version, nicht mehr gepflegt: 1.3 11. Oktober 2013[150] Weitere Pixelformate. Unterstützung für Sprachbindungen. Android Treiber Unterstützung über libhybris.
Alte Version, nicht mehr gepflegt: 1.4 23. Januar 2014[26] Neue WL_SUBCompositor und WL_SUBSurface -Schnittstellen. Mehrere Framebufferformate. Logind -Unterstützung für rootless Weston.
Alte Version, nicht mehr gepflegt: 1.5 20. Mai 2014[67] libinput. Vollbildschale.
Alte Version, nicht mehr gepflegt: 1.6 19. September 2014[151] libinput standardmäßig.
Alte Version, nicht mehr gepflegt: 1.7 14. Februar 2015[152][153] Unterstützung für die Wayland -Präsentationsverlängerung und für Oberflächenrollen. IVI Schalenprotokoll.
Alte Version, nicht mehr gepflegt: 1.8 2. Juni 2015[154][155] Getrennte Header für Kern und erzeugtes Protokoll. Repaint -Planung. Genannte Ausgänge. Ausgangstransformationen. Oberflächenschuppen-API.
Alte Version, nicht mehr gepflegt: 1.9 21. September 2015[156][157] Lizenz aktualisiert. Lizenz aktualisiert. Neuer Testframework. Dreikopf-DRM-Kompositor. Linux_dmabuf Erweiterung.
Alte Version, nicht mehr gepflegt: 1.10 17. Februar 2016[158][159] Drag-and-Drop-Funktionalität, gruppierte Zeigerereignisse.[160] Video 4 Linux 2, Touch -Eingabe, Debugging -Verbesserungen.[161]
Alte Version, nicht mehr gepflegt: 1.11 1. Juni 2016[162][163] Neue Backup -Laderoutine, neue Setup -Logik. Proxy-Wrapper, gemeinsam genutzte Speicheränderungen, Doxygen-generierte HTML-Dokumente.
Alte Version, nicht mehr gepflegt: 1.12 21. September 2016[164][165] Die Debugging -Unterstützung verbesserte sich. Libweston und Libweston-Desktop. Zeigerverriegelung und Beschränkung. Relativer Zeigerunterstützung.
Alte Version, nicht mehr gepflegt: 1.13 24. Februar 2017[166][167] Der ABI von Weston wurde geändert, daher wurde die neue Version 2.0.0 als 1.13.0 bezeichnet.
Alte Version, nicht mehr gepflegt: 1.14 8. August 2017[168][169] Weston 3.0.0 wurde gleichzeitig freigelassen.
Alte Version, nicht mehr gepflegt: 1.15 9. April 2018[170][171] Weston 4.0.0 wurde gleichzeitig freigelassen.
Alte Version, nicht mehr gepflegt: 1.16 24. August 2018[172][173] Weston 5.0.0 wurde zur gleichen Zeit veröffentlicht.
Alte Version, nicht mehr gepflegt: 1.17 20. März 2019[174][175] Weston 6.0.0 wurde gleichzeitig freigelassen.
Alte Version, nicht mehr gepflegt: 1.18 2. August 2019[176][177] Weston 7.0.0 wurde einen Monat später veröffentlicht.
Weston 8.0.0 [178] Veröffentlicht bei 2020-01-24.
Weston 9.0.0 [179] Veröffentlicht bei 2020-09-04.
Alte Version, nicht mehr gepflegt: 1.19 27. Januar 2021[180]
Aktuelle stabile Version: 1.20 9. Dezember 2021[181] Weston 10.0.0 wurde unter 2022-02-01 veröffentlicht. [182]
Legende:
Alte Version
Ältere Version, noch gepflegt
Letzte Version
Neueste Vorschau -Version
Zukünftige Veröffentlichung

Siehe auch

Verweise

  1. ^ Høgsberg, Kristian (30. September 2008). "Erstes Commit". Abgerufen 3. Januar 2020.
  2. ^ Ser, Simon (27. Januar 2021). "[Ankündigen] Wayland 1.20.0" (Mailingliste). Abgerufen 27. Januar 2021.
  3. ^ Ser, Simon (1. Februar 2022). "[Ankündigen] Weston 10.0.0" (Mailingliste). Abgerufen 12. Februar 2022.
  4. ^ "Wayland & Weston Compositor portiert auf DragonflyBsd - Phoronix". www.phoronix.com.
  5. ^ a b c Harrington, Bryce (15. September 2015). "[Ankündigen] Wayland 1.8.93". freedesktop.org (Mailingliste).
  6. ^ "Wayland/Wayland: Wurzel/Kopieren". freedesktop.org. Abgerufen 14. Juni 2015.
  7. ^ Larabel, Michael (10. Juni 2015). "Die MIT -Lizenz von Wayland wird aktualisiert/korrigiert". Phoronix.com. Abgerufen 17. April 2016.
  8. ^ a b c "Wayland". Wayland -Projekt. Abgerufen 9. Mai 2016.
  9. ^ Sengar, Shivam Singh (16. Juni 2018). "Wayland v/s Xorg: Wie sind sie ähnlich und wie unterscheiden sie sich". SecJuice. Abgerufen 10. September 2020.
  10. ^ a b c Kerrisk, Michael (25. September 2012). "XDC2012: Grafikstapelsicherheit". Lwn.net. Abgerufen 13. April 2016.
  11. ^ a b Peres, Martin (21. Februar 2014). "Wayland Compositors - Warum und wie man privilegierte Clients umgeht!". Abgerufen 17. April 2016.
  12. ^ a b Graesslin, Martin (23. November 2015). "Betrachten Sie die Sicherheit von Plasma/Wayland". Abgerufen 18. April 2016.
  13. ^ a b c d e "Wayland FAQ". Wayland -Projekt. Abgerufen 9. Mai 2016.
  14. ^ Michael Larabel (20. Mai 2009). "Der Zustand des Wayland Display -Servers". Phoronix.
  15. ^ Corbet, Jonathan (5. November 2010). "LPC: Leben nach x". Lwn.net. Abgerufen 17. April 2016.
  16. ^ Høgsberg, Kristian (9. November 2010). "Netzwerktransparenzargument". Wayland ist keine Remote -Rendering -API wie X, aber das schließt die Netzwerktransparenz nicht aus. Kunden rendern zu einem gemeinsamen Puffer und müssen dann dem Kompositor (...) mitteilen, was sie sich geändert haben. Der Kompositor kann dann die neuen Pixel in dieser Region über das Netzwerk senden. Das Wayland -Protokoll ist bereits heftig asynchron, daher sollte es in der Lage sein, ein bisschen Netzwerkverzögerung anmutig zu bewältigen. Remote -Vollbildvideo -Anzeigen oder -spiele funktioniert nicht gut, [aber] ich kenne kein anderes Anzeigesystem, das so gut und transparent umgeht.
  17. ^ Larabel, Michael (18. August 2011). "Remote Wayland Server -Projekt: Funktioniert es schon?". Phoronix.com. Abgerufen 17. April 2016.
  18. ^ Jackson, Adam (9. November 2010). "[Re:] Ubuntu in Richtung Wayland".
  19. ^ Stone, Daniel (28. Januar 2013). Die wahre Geschichte hinter Wayland und X (Rede). Linux.conf.au 2013. Canberra. Abgerufen 13. April 2016.
  20. ^ a b c Willis, Nathan (13. Februar 2013). "LCA: Die Wege von Wayland". Lwn.net. Abgerufen 19. Mai 2016.
  21. ^ Aleksandersen, Daniel. "Remote -Desktop -Funktionen, die ein Comeback in Gnome on Wayland feiern". Ctrl.blog. Abgerufen 29. August 2017.
  22. ^ a b "Das Hello Wayland -Tutorial". 8. Juli 2014. Abgerufen 25. Juli 2014.
  23. ^ a b c d e f g h i j k l m n o Høgsberg, Kristian. "Wayland -Dokumentation 1.3" (PDF). Abgerufen 16. März 2016.
  24. ^ a b Høgsberg, Kristian. "Protokoll/Wayland.xml". Freedesktop.org. Abgerufen 25. Juli 2014.
  25. ^ a b Paalanen, Pekka (25. Juli 2014). "Wayland Protocol Design: Objektlebensdauer". Abgerufen 6. April 2016.
  26. ^ a b Høgsberg, Kristian (24. Januar 2014). "Wayland und Weston 1.4 ist raus". Wayland-Devel Mailingliste.
  27. ^ "XDG_SHELL: Hinzufügen eines neuen Shell -Protokolls". freedesktop.org. 3. Dezember 2013. Abgerufen 14. Juni 2014.
  28. ^ "Genivi/Wayland-IVi-Extension". GitHub. 17. November 2021.
  29. ^ a b c Vervloesem, Koen (15. Februar 2012). "Fosdem: The Wayland Display -Server". Lwn.net. Abgerufen 9. Mai 2016.
  30. ^ Barnes, Jesse. "Einführung in Wayland" (PDF). Intel Open Source Technology Center. Abgerufen 18. April 2016. Enthält keine Rendering -API - Clients verwenden das, was sie wollen, und senden Sie Pufferhandles an den Server
  31. ^ Paalanen, Pekka (21. November 2012). "Über die Unterstützung von Wayland -GL -Kunden und proprietären eingebetteten Plattformen". Abgerufen 6. April 2016. Die Pufferfreigabe funktioniert, indem ein Griff für einen Puffer erstellt und diesen Handle an einen anderen Vorgang übergeht, der dann mit dem Griff verwendet wird, um den GPU -Zugriff erneut zum gleichen Puffer zugänglich zu machen.
  32. ^ Griffith, Eric (7. Juni 2013). "Die Situation von Wayland: Fakten über X gegen Wayland". Phoronix.com. p. 2. Abgerufen 17. April 2016.
  33. ^ a b "Wayland Architecture". Wayland -Projekt. Abgerufen 9. Mai 2016.
  34. ^ Edge, Jake (11. April 2012). "LFCS 2012: x und Wayland". Lwn.net. Abgerufen 17. April 2016.
  35. ^ "Wayland/X Compositor Architecture mit Beispiel: Aufklärung DR19" (PDF). Abgerufen 18. April 2016.
  36. ^ a b Graesslin, Martin (7. Februar 2013). "Client Side Fensterdekorationen und Wayland". Abgerufen 17. April 2016.
  37. ^ "X.org Security". X.org Foundation. Abgerufen 2. Juli 2017. Der X -Server hat lange Zeit eine Erweiterung, Sicherheit, die Unterstützung für ein einfaches vertrauenswürdiges/nicht vertrauensvolles Verbindungsmodell bietet.
  38. ^ Wiggins, David P. (15. November 1996). "Sicherheitserweiterungsspezifikation". X Konsortium Standard. Abgerufen 2. Juli 2017.
  39. ^ Walsh, Eamon F. (2009). "X Access Control -Erweiterungsspezifikation". Abgerufen 2. Juli 2017.
  40. ^ "Debian wechselt standardmäßig auf Nicht -Root X.org Server - Phoronix". www.phoronix.com.
  41. ^ "Non Root Xorg - Gentoo Wiki". Wiki.gentoo.org.
  42. ^ "X/rootless - Ubuntu Wiki". wiki.ubuntu.com.
  43. ^ "1078902 - xorg ohne Wurzelrechte". bugzilla.redhat.com.
  44. ^ "X Kunden unter Wayland (Xwayland)". Wayland -Projekt. Abgerufen 18. Juli 2014.
  45. ^ "Ankündigen: xorg-server 1.16.0". freedesktop.org. 17. Juli 2014.
  46. ^ a b Høgsberg, Kristian (3. Januar 2011). "Mehrere Backends für GTK". Abgerufen 10. März 2016.
  47. ^ "Qtwayland". Qt Wiki. Abgerufen 9. März 2016.
  48. ^ "Full Wayland -Unterstützung in GTK". Gnome Wiki. Abgerufen 10. März 2016.
  49. ^ a b Larabel, Michael (30. November 2015). "Erleuchtung 0.20 kommt mit Full Wayland Support und besserer FreeBSD -Unterstützung an". Phoronix.com. Abgerufen 17. April 2016.
  50. ^ "Wayland". www.enlighernment.org.
  51. ^ "Plasma 5.21". KDE -Community. 16. Februar 2021. Abgerufen 9. März 2021.
  52. ^ "Index von /Quellen /Mutter-Wayland". download.gnome.org.
  53. ^ "Schwanken". Swaywm.org. Abgerufen 20. Dezember 2018.
  54. ^ "Swaywm/Wlroots". GitHub. Abgerufen 28. Oktober 2018.
  55. ^ "Swaywm/Sway". GitHub. Abgerufen 28. Oktober 2018.
  56. ^ "LIESMICH". cgit.freedesktop.org.
  57. ^ "ReadMe -Datei aus dem Wayland Source Code Repository". freedesktop.org.
  58. ^ Larabel, Michael (16. Februar 2013). "Wayland beginnt mit dem portierenden Prozess auf FreeBSD". Phoronix.com. Abgerufen 17. April 2016.
  59. ^ "Hinzufügen von Inhaltsschutzunterstützung in DRM-Backend (! 48) · Fusionsanfragen · Wayland / Weston". Gitlab. Abgerufen 27. Oktober 2019.
  60. ^ Paalanen, Pekka (10. März 2012). "Was macht EGL im Wayland Stack". Abgerufen 19. Mai 2016.
  61. ^ a b Larabel, Michael (6. Januar 2013). "Ein Software-basierter Pixman-Renderer für Waylands Weston". Phoronix.com. Abgerufen 17. April 2016.
  62. ^ Høgsberg, Kristian (9. Dezember 2010). "Blender3d & Cursor klemmen".
  63. ^ a b "[RFC Weston] Remote Access Interface Modul". freedesktop.org. 18. Oktober 2013.
  64. ^ "Maynard -Ankündigung". 16. April 2014. Abgerufen 16. April 2014.
  65. ^ a b "Raspberry Pi Fallstudie".Collabora. Abgerufen 9. August 2013.
  66. ^ a b "Wayland Preview". Raspberry Pi. Abgerufen 9. August 2013.
  67. ^ a b Høgsberg, Kristian (20. Mai 2014). "Wayland und Weston 1.5.0 wird veröffentlicht". Wayland-Devel Mailingliste.
  68. ^ Ådahl, Jonas (12. November 2013). "[RFC] Common Eingabegerätsbibliothek". Wayland Mailingliste.
  69. ^ "libinput". Freedesktop.org. Abgerufen 21. Mai 2014.
  70. ^ Hutterer, Peter (8. Oktober 2014). Konsolidierung der Eingangsstapel mit libinput (Rede). Die X.org Developer Conference 2014. Bordeaux. Abgerufen 14. Januar 2020.
  71. ^ Hutterer, Peter (22. Februar 2015). "Libinput: Die Straße zu 1.0".
  72. ^ "Libinput -Unterstützung für Touchpad KCM hinzugefügt". 22. Februar 2015.
  73. ^ Goede, Hans DE (23. Februar 2015). "LibInput jetzt als Standard-XORG-Treiber für F-22-Workstation-Installationen aktiviert".
  74. ^ Hutterer, Peter (24. September 2014). "Libinput - Ein gemeinsamer Eingangsstapel für Wayland Compositors und X.org -Treiber". Abgerufen 17. April 2016.
  75. ^ De Goede, Hans (1. Februar 2015). "Ersetzen von Xorg -Eingaben - Treiber durch libinput" (PDF). Abgerufen 18. April 2016.
  76. ^ a b Dodier-Lazaro, Steve; Peres, Martin (9. Oktober 2014). Sicherheit in Desktop-Umgebungen auf Wayland-Basis: Privilegierte Kunden, Autorisierung, Authentifizierung und Sandboxen! (Rede). Die X.org Developer Conference 2014. Bordeaux. Abgerufen 18. April 2016.
  77. ^ "Änderungen/WaylandbyDefault - Fedora -Projekt Wiki". fedoraproject.org. Abgerufen 9. November 2020.
  78. ^ "Releases für Ubuntu 17.10". Kanonisch.
  79. ^ "Ubuntu 18.04 wird zum Langzeit-Tooth-Xorg zurückkehren".
  80. ^ "Bionic Beaver 18.04 LTs, um Xorg standardmäßig zu verwenden". Kanonisch.
  81. ^ "Ubuntu 21.04 ist hier". Kanonischer Ubuntu -Blog. Abgerufen 14. Juni 2021.{{}}: CS1 Wartung: URL-Status (Link)
  82. ^ "Versionshinweise für Red Hat Enterprise Linux 8.0". Red Hat -Kundenportal. Abgerufen 25. Dezember 2020.
  83. ^ "Newinbuster - Debian Wiki". wiki.debian.org. Abgerufen 15. Juli 2019.
  84. ^ "Slackware Changelogs". Slackware Linux. Abgerufen 26. Februar 2020.
  85. ^ "Manjaro 20.2 Nibia wurde freigelassen". 3. Dezember 2020. Abgerufen 3. Dezember 2020.
  86. ^ "Wayland Live OS basiert jetzt auf Debian -Tests, die KDE Wayland Support tätig sind.". Phoronix.
  87. ^ "Rebeccablackos". SourceForge.
  88. ^ "Wayland mit Rebecca Black ausprobieren". Phoronix.
  89. ^ "New Wayland Live CD hat viele Funktionen". Phoronix.
  90. ^ Bassi, Emmanuele (31. Januar 2011). "Ankündigen: Unordnung 1.6.0 (stabil)". Unordnung (Mailingliste).
  91. ^ Bradford, Rob (16. Dezember 2011). "Clutter & Coogl Wayland Update". Abgerufen 9. März 2016. Der Clutter Client Side Support ist im Grunde genommen vollständig
  92. ^ Bassi, Emmanuele (24. September 2013). "Ankündigen: Unordnung 1.16.0 (stabil)". Unordnung (Mailingliste).
  93. ^ "Wayland - Erleuchtung". Archiviert von das Original am 29. März 2013. Abgerufen 6. März 2013.
  94. ^ "GTK Roadmap". Abgerufen 8. März 2016.
  95. ^ Lantinga, Sam (8. März 2014). "SDL 2.0.2 veröffentlicht!". SDL -Projekt. Abgerufen 18. März 2014.
  96. ^ Larabel, Michael (9. Januar 2016). "SDL 2.0.4 wurde letzte Woche stillschweigend mit Wayland & Mir veröffentlicht.". Phoronix.com. Abgerufen 17. April 2016.
  97. ^ Berglund, Camilla (8. April 2014). "Implementierung für Wayland · Ausgabe #106 · GLFW/GLFW · GitHub". GitHub. Abgerufen 14. August 2014.
  98. ^ "FreeGlut: Implementieren Sie die erste Wayland -Unterstützung". GitHub.
  99. ^ "GNOME -Initiativen - Wayland". Gnome Wiki. Abgerufen 8. März 2016.
  100. ^ "Kwin/Wayland". KDE Community Wiki. Abgerufen 8. März 2016.
  101. ^ "Erleuchtung - Wayland". Erleuchtung.org. Abgerufen 8. März 2016.
  102. ^ "Erleuchtung DR 0.20.0 Release". Erleuchtung.org. Abgerufen 8. März 2016.
  103. ^ "Die Erleuchtung von Wayland". Fosdem.org. Abgerufen 8. März 2016.
  104. ^ "Releasinfektion/FeaturesPlans". GNOME -Projekt. Abgerufen 31. Mai 2015.
  105. ^ "Ein Blick auf die aufregenden Funktionen/Verbesserungen von GNOME 3.22". Phoronix.
  106. ^ "GNOME landet Mainline Nvidia Wayland unterstützt mit Eglstreams". Phoronix.
  107. ^ "Plasmas Weg nach Wayland". 25. Juli 2014.
  108. ^ Larabel, Michael (14. Juni 2013). "KDE 4.11 Beta veröffentlicht, arbeitet auf Wayland". Phoronix.com. Abgerufen 17. April 2016.
  109. ^ Graesslin, Martin (29. Juni 2015). "Vier Jahre später". Abgerufen 17. April 2016.
  110. ^ Dawe, Liam. "KDE Plasma 5.20 unterstützt die Bildschirmaufnahme auf Wayland und mehr ordnungsgemäß". gamingonlinux.com. Abgerufen 10. September 2020.
  111. ^ Schaller, Christian (3. Juli 2014). "Wayland in Fedora Update". blogs.gnome.org. Abgerufen 17. April 2016.
  112. ^ "VNC® Wayland Developer Preview". 8. Juli 2014. archiviert von das Original am 14. Juli 2014.
  113. ^ "Realvnc Wayland Developer Preview -E -Mail". freedesktop.org. 9. Juli 2014.
  114. ^ "Maliit Status Update". Posterös. 2. April 2013. archiviert von das Original am 17. Mai 2013. Abgerufen 14. Oktober 2013.
  115. ^ "Mehr Maliit -Tastaturverbesserungen: Qtquick2". Murrays Blog. 2. April 2013. Abgerufen 14. Oktober 2013.
  116. ^ "Maliit unter Wayland". Archiviert von das Original am 11. Juni 2013. Abgerufen 14. September 2013.
  117. ^ "Wlterm". Freedesktop.org. Abgerufen 8. Juli 2014.
  118. ^ a b Hillesley, p. 3.
  119. ^ "Eclipse läuft jetzt auf Wayland". 18. August 2014.
  120. ^ Stone, Daniel (16. Februar 2016). "Vulkan 1.0-Spezifikation mit Unterstützung von Day-One-Unterstützung für Wayland".
  121. ^ "Wayland Backend DRM | IVI Layer Management". Genivi Alliance. Archiviert von das Original am 1. Februar 2014. Abgerufen 15. Juli 2013.
  122. ^ "Das erste Jolla -Smartphone läuft mit Wayland". Linuxg.net. 14. Juli 2013. Abgerufen 8. Oktober 2013.
  123. ^ VDVSX [@VDVSX] (13. Juli 2013). "#Sailfishos Hauptkomponenten Diagramm. #Qt5 #wayland #jollahq #akademy" (Tweet) - über Twitter.
  124. ^ Jolla [@jollahq] (13. Juli 2013). "@faenil @peppelakappa @vdvsx Unser erstes Jolla wird mit Wayland versendet, ja" (Tweet) - über Twitter.
  125. ^ "IVI/IVI Setup". Tizen Wiki. Abgerufen 8. April 2013.
  126. ^ Vancutsem, Geoffroy (10. Juli 2013). "[IVI] Tizen IVI 3.0-M1 veröffentlicht". IVI (Mailingliste).
  127. ^ Amadeo, Ron (12. Mai 2017). "Der Samsung Z4 ist Tizens neues Flaggschiff -Smartphone". ARS Technica. Abgerufen 13. Mai 2017.
  128. ^ Høgsberg, Kristian (3. November 2008). "Frühgeborene Werbung ist besser als keine Werbung". Abgerufen 6. April 2016.
  129. ^ "Interview: Kristian Høgsberg". Fosdem -Archiv. 29. Januar 2012. Abgerufen 8. März 2016.
  130. ^ a b Hillesley, Richard (13. Februar 2012). "Wayland - jenseits x". Das H offen. Heise Media UK. Abgerufen 8. März 2016.
  131. ^ Høgsberg, Kristian. "Wayland - Ein neuer Display -Server für Linux". Linux Plumbers Conference, 2009. archiviert von das Original am 11. August 2017.
  132. ^ Jenkins, Evan (22. März 2011). "Der Linux -Grafikstapel von X nach Wayland". ARS Technica. Abgerufen 17. April 2016.
  133. ^ Larabel, Michael (29. Oktober 2010). "Wayland wird zu einem Freedesktop.org -Projekt". Phoronix.com. Abgerufen 17. April 2016.
  134. ^ Høgsberg, Kristian (29. Oktober 2010). "Umzug auf Freedesktop.org". Abgerufen 31. Juli 2013.
  135. ^ Høgsberg, Kristian (3. Dezember 2008). "Wayland steht jetzt unter MIT -Lizenz". Wayland-Display-Server (Mailingliste).
  136. ^ Høgsberg, Kristian (22. November 2010). "Wayland Lizenz Klarstellung". Wayland-devel (Mailingliste).
  137. ^ Høgsberg, Kristian (19. September 2011). "Lizenz -Update". Wayland-devel (Mailingliste).
  138. ^ Munk, Carsten (11. April 2013). "Wayland unter Verwendung von Android -GPU -Treibern auf GLIBC -basierten Systemen, Teil 1". MER -Projekt. Abgerufen 3. Juli 2013.
  139. ^ Munk, Carsten (8. Juni 2013). "Wayland unter Verwendung von Android -GPU -Treibern auf GLIBC -basierten Systemen, Teil 2". MER -Projekt. Abgerufen 3. Juli 2013.
  140. ^ Larabel, Michael (11. April 2013). "Jolla bringt Wayland auf Android GPU -Treiber". Phoronix.com. Abgerufen 17. April 2016.
  141. ^ "Wayland". Wayland.Freedesktop.org. Abgerufen 15. Juli 2013.
  142. ^ Høgsberg, Kristian (9. Februar 2012). "[Ankündigen] Wayland und Weston 0.85.0 veröffentlicht". Wayland-Devel Mailingliste.
  143. ^ Høgsberg, Kristian (24. Juli 2012). "Wayland und Weston 0.95.0 veröffentlicht". Wayland-Devel Mailingliste.
  144. ^ Høgsberg, Kristian (22. Oktober 2012). "Wayland und Weston 1.0". Wayland-Devel Mailingliste.
  145. ^ Scherschel, Fabian (23. Oktober 2012). "Waylands 1.0 Meilenstein fixiert das Grafikprotokoll". Das H offen. Heise Media UK. Abgerufen 17. April 2016.
  146. ^ Larabel, Michael (16. April 2013). "Wayland 1.1 Offiziell mit Weston 1.1 veröffentlicht". Phoronix.com. Abgerufen 17. April 2016.
  147. ^ Høgsberg, Kristian (15. April 2013). "1.1 veröffentlicht". Wayland-Devel Mailingliste.
  148. ^ Larabel, Michael (13. Juli 2013). "Wayland 1.2.0 veröffentlicht, zusammen mit Weston Compositor". Phoronix.com. Abgerufen 17. April 2016.
  149. ^ Høgsberg, Kristian (12. Juli 2013). "Wayland und Weston 1.2.0 veröffentlicht". Wayland-Devel Mailingliste.
  150. ^ Høgsberg, Kristian (11. Oktober 2013). "Wayland und Weston 1.3 Veröffentlichungen sind raus". Wayland-Devel Mailingliste.
  151. ^ Paalanen, Pekka (19. September 2014). "Wayland und Weston 1.6.0 veröffentlicht". Wayland-Devel Mailingliste.
  152. ^ Harrington, Bryce (14. Februar 2015). "[Ankündigen] Wayland 1.7.0". Wayland-Devel Mailingliste.
  153. ^ Harrington, Bryce (14. Februar 2015). "[Ankündigen] Weston 1.7.0". Wayland-Devel Mailingliste.
  154. ^ Harrington, Bryce (2. Juni 2015). "[Ankündigen] Wayland 1.8.0". Wayland-Devel Mailingliste.
  155. ^ Harrington, Bryce (2. Juni 2015). "[Ankündigen] Weston 1.8.0". Wayland-Devel Mailingliste.
  156. ^ Harrington, Bryce (21. September 2015). "[Ankündigen] Wayland 1.9.0". Wayland-devel (Mailingliste).
  157. ^ Harrington, Bryce (21. September 2015). "[Ankündigen] Weston 1.9.0". Wayland-devel (Mailingliste).
  158. ^ Harrington, Bryce (17. Februar 2016). "[Ankündigen] Wayland 1.10.0". Wayland-devel (Mailingliste).
  159. ^ Harrington, Bryce (17. Februar 2016). "[Ankündigen] Weston 1.10.0". Wayland-devel (Mailingliste).
  160. ^ Nestor, Marius (18. Februar 2016). "Wayland 1.10 Display Server offiziell veröffentlicht, Wayland 1.11 kommt im Mai 2016 an". Softpedia.
  161. ^ Larabel, Michael (16. Februar 2016). "Wayland 1.10 Offiziell freigegeben". Phoronix.com. Abgerufen 17. April 2016.
  162. ^ Harrington, Bryce (1. Juni 2016). "[Ankündigen] Wayland 1.11.0". Wayland-devel (Mailingliste). Abgerufen 1. Juni 2016.
  163. ^ Harrington, Bryce (1. Juni 2016). "[Ankündigen] Weston 1.11.0". Wayland-devel (Mailingliste). Abgerufen 1. Juni 2016.
  164. ^ Harrington, Bryce (21. September 2016). "[Ankündigen] Wayland 1.12.0". Wayland-devel (Mailingliste). Abgerufen 21. September 2016.
  165. ^ Harrington, Bryce (21. September 2016). "[Ankündigen] Weston 1.12.0". Wayland-devel (Mailingliste). Abgerufen 21. September 2016.
  166. ^ Harrington, Bryce (21. Februar 2017). "[Ankündigen] Wayland 1.13.0". Wayland-devel (Mailingliste). Abgerufen 30. April 2017.
  167. ^ Harrington, Bryce (25. Februar 2017). "[Ankündigen] Weston 2.0.0". Wayland-devel (Mailingliste). Abgerufen 30. April 2017.
  168. ^ Harrington, Bryce (8. August 2017). "[Ankündigen] Wayland 1.14.0". Wayland-devel (Mailingliste). Abgerufen 25. März 2018.
  169. ^ Harrington, Bryce (8. August 2017). "[Ankündigen] Weston 3.0.0". Wayland-devel (Mailingliste). Abgerufen 25. März 2018.
  170. ^ Foreman, Derek (9. April 2018). "[Ankündigen] Wayland 1.15.0". Wayland-devel (Mailingliste). Abgerufen 15. April 2018.
  171. ^ Foreman, Derek (9. April 2018). "[Ankündigen] Weston 4.0.0". Wayland-devel (Mailingliste). Abgerufen 15. April 2018.
  172. ^ Foreman, Derek (24. August 2018). "[Ankündigen] Wayland 1.16.0". Wayland-devel (Mailingliste). Abgerufen 30. November 2018.
  173. ^ Foreman, Derek (24. August 2018). "[Ankündigen] Weston 5.0.0". Wayland-devel (Mailingliste). Abgerufen 30. November 2018.
  174. ^ Foreman, Derek (28. März 2019). "[Ankündigen] Wayland 1.17.0" (Mailingliste). Abgerufen 17. Juni 2019.
  175. ^ Foreman, Derek (21. März 2019). "[Ankündigen] Weston 6.0.0" (Mailingliste). Abgerufen 17. Juni 2019.
  176. ^ Ser, Simon (11. Februar 2020). "[Ankündigen] Wayland 1.18" (Mailingliste). Abgerufen 12. Februar 2020.
  177. ^ Ser, Simon (23. August 2019). "[Ankündigen] Weston 7.0.0" (Mailingliste). Abgerufen 22. Oktober 2019.
  178. ^ https://lists.freedesktop.org/archives/wayland-devel/2020-january/041147.html
  179. ^ https://lists.freedesktop.org/archives/wayland-devel/2020-september/041595.html
  180. ^ Ser, Simon (27. Januar 2021). "[Ankündigen] Wayland 1.19.0" (Mailingliste). Abgerufen 27. Januar 2021.
  181. ^ https://lists.freedesktop.org/archives/wayland-devel/2021-december/042064.html
  182. ^ https://lists.freedesktop.org/archives/wayland-devel/2022-febary/042103.html

Externe Links