WikiDer > Wayland (Protokoll)

Wayland (protocol)
Wegland
Logo
Wayland-Demo
EntwicklerKristian Høgsberg und andere
Veröffentlicht0,85 (9. Februar 2012)
Letzte Version1.20 
(29. Februar 2020)
StatusAktiv
BetriebssystemLinux, BSD, Segelfisch-Betriebssystem
Geschrieben inC
KategorieFenstersystem
LizenzMIT-Lizenz
Versionskontrollegitlab.freedesktop.org
Webseitewayland.freedesktop.org
Portal  Portalsymbol  Informatik
Gratis Software

Wegland ist ein Computerprotokoll als Alternative zu den X11-System.

Softwarearchitektur

Høgsberg entschied sich dafür, X komplett zwischen den Clients und der Hardware abzulegen, anstatt eine Erweiterung für extension X.Org-Server. Übersetztes Zitat aus dem FAQ-Bereich auf der Website:[1]

Viele Infrastrukturen sind vom X-Server auf den Kernel (Speicherverwaltung, Befehlsspeicherverwaltung, Befehlsplanung, Modeeinstellung) oder Bibliotheken (Kairo, pixmann, FreeType, fontconfig, pango etc.), so dass in einem zentralen Serverprozess nur sehr wenig getan werden muss. … [Ein X-Server hat] eine riesige Funktionalität, die unterstützt werden muss, um zu behaupten, das X-Protokoll zu unterstützen, wenn es nie jemand verwendet. … Dazu gehören Codepages, Glyphen-Rasterisierung und -Caching, X Logical Font Description (XLFD) (eigentlich XLFDs!) und das ganze ZeichenAPI um gepunktete Linien, Polygone, breite Bögen und mehr grafische Grundelemente der 80er Jahre zu zeichnen. Wir haben das X.Org-Server kann es vorerst modern halten durch Erweiterungen wie XRandR, XRendern und VERBUND um hinzuzufügen… Mit Wayland können wir den X-Server und alles bekommen Legacy-Technologie zu einem optionalen Codepfad wechseln. Es wird eine Weile dauern, an einen Punkt zu gelangen, an dem der X-Server eine Kompatibilitätsoption und nicht mehr das Hauptanzeigesystem ist, aber [wir] werden nie dorthin gelangen, es sei denn, es werden Pläne gemacht.

Das evdevModul der Linux Kernel empfängt ein Ereignis und sendet es an die Wayland-Komponist.
② Der Wayland Composer bestimmt, welches Fenster das Ereignis empfangen soll.
③ Wie bei X empfängt der Client das Ereignis und aktualisiert daraufhin die Benutzeroberfläche. Aber in Wayland erfolgt das Zeichnen der Benutzeroberfläche ("das Fenster") durch den Kunden über EGL. Wenn der Client damit fertig ist, sendet er eine Nachricht an den Compositor, dass die Region aktualisiert wurde.
④ Der Wayland-Kompositor sammelt diese Nachrichten und bringt die geänderten Pixel auf den Bildschirm.

Wayland ist das Protokoll. Die Implementierung des Protokolls ist der Wayland-Kompositor (zum Beispiel Weston).

Unterschiede zwischen Wayland und X

Es gibt eine Reihe von Unterschieden zwischen Wayland und X in Bezug auf Leistung, Code-Wartbarkeit und Sicherheit:

Die Architektur
Das Kompositionsmanager ist eine separate und zusätzliche Funktion in X, während Wayland den Display-Server und den Compositor zusammenführt. Einige Funktionen des Fenstermanager werden ebenfalls vererbt, was in X ein separater clientseitiger Prozess ist.
Komposition
Die Komposition ist in X optional, in Wayland jedoch obligatorisch. Die Komposition in X ist "aktiv", was bedeutet, dass der Compositor alle Pixeldaten holen muss, was eine Verzögerung verursacht. In Wayland ist die Komposition "passiv", was bedeutet, dass der Compositor Pixeldaten direkt von den Clients erhält.
Zeichnen (Rendering)
Der X-Server kann das Zeichnen (zB Fenster) übernehmen, aber auch einfach anzeigen, wenn sie von einem Client weitergeleitet werden. In Wayland hingegen wird keine API zum Zeichnen bereitgestellt. Wayland delegiert diese Aufgaben an die Clients (einschließlich Zeichnen von Schriftarten, Widgets usw.). Fensterdekorationen können kundenseitig gezeichnet werden (z.B. durch a Grafik-Toolkit wie Qt) oder serverseitig (vom Compositor).
Sicherheit
Wayland isoliert die Eingabe und Ausgabe jedes Fensters. Dadurch werden Vertraulichkeit, Integrität und Verfügbarkeit sowohl bei der Eingabe als auch bei der Ausgabe erreicht; Das ursprüngliche X-Design enthält diese wichtigen Sicherheitsfunktionen nicht, obwohl einige Erweiterungen entwickelt wurden, um dies zu lösen.Da der größte Teil des Codes auf dem Client ausgeführt wird, wird nicht viel Code benötigt. WurzelBerechtigungen werden ausgeführt, was die Sicherheit verbessert.
Kommunikation zwischen Prozessen
Der X-Server bietet eine grundlegende Kommunikationsmethode zwischen X-Clients, später erweitert um ICCCMKonventionen. Diese X-Client-zu-Client-Kommunikation wird von Window-Managern verwendet und wird unter anderem verwendet, um Benutzersitzungen, Auswahlen und Drag-and-Drop zu implementieren. Wayland selbst bietet keine Kommunikation zwischen Wayland-Kunden an. Diese Funktionalität sollte von der Desktop-Umgebungen (wie K THE oder GNOME) oder von a dritte Seite (zum Beispiel durch die Verwendung der IPC des Basiswertes Betriebssystem).
Netzwerk
Das X Window System ist eine Architektur, die ursprünglich entwickelt wurde, um über ein Netzwerk zu arbeiten. Wayland bietet keine Netzwerktransparenz, kann jedoch ein Remote-Desktop-Protokoll implementieren, um einen entfernten "Bildschirm" anzuzeigen.

Benutzen

Wayland wird verwendet von Segelfisch-Betriebssystem und einige Linux-Distributionen einschließlich Fedora.

Externe Links