Frage Warum ist Wayland besser?


Wie kürzlich angekündigt von Mark Shuttleworth wird Ubuntu mit Wayland als Display-Manager arbeiten.

Was sind die größten Unterschiede zwischen X11 und Wayland? Warum wird Wayland Ubuntu besser machen?


149
2017-11-05 13:52


Ursprung


Ab Dezember 2013 sieht es so aus, als ob Unity-basiertes Ubuntu ab Ubuntu 14.10 den Mir-Display-Server anstelle eines Wayland-basierten Compositors verwendet: Verknüpfung  Verknüpfung Andere Ubuntu-Varianten werden wahrscheinlich nach Wayland ziehen: Verknüpfung - Diego
Hier ist ein tolles Video, das X erklärt und warum Leute es ersetzen wollen: youtube.com/watch?v=cQoQE_HDG8g - Jason
Ubuntu 18 (Bionic) wird nun standardmäßig xorg verwenden, aber Wegland ist immer noch eine Option auf dem Anmeldebildschirm: blog.ubuntu.com/2018/01/26/... - Kris


Antworten:


Du kannst sehen die Wayland-Architekturseite um zu sehen, wie es sich im Design unterscheidet. Es soll den gesamten Grafik-Stack vereinfachen, indem man alles durch einen Standard-GEM / DRM-Stack direkt in den Kernel zwingt und das Compositing selbst verwaltet.

Vergleichen Sie das mit dem X-Stack, in dem Sie überall herumstochern. Einige der X-Chaos wurde durch flexibles Design, einige haben wachsende Schmerzen. Alle Kompositionen (Compiz / Metacity / Mutter / KWin / etc) wurden nachträglich hinzugefügt. Sie sind in ihrem Kern, Hacks zu tun, was X wahrscheinlich selbst tun sollte. Wenn sich die Dinge wie bisher weiter ausdehnen, kommen wir an einen Punkt, an dem das Projekt nicht mehr zu halten ist.

Alles in allem, wenn Hardware-Unterstützung da ist, sollte es den ganzen Stapel effizienter und weniger schmerzhaft machen, in Standard-Setups zu verwenden.

Es gibt jedoch ein paar Probleme, für die ich bisher keine Heilmittel gesehen habe:

  • X ist ziemlich netzwerkfähig. Sie können Fenster an andere Computer senden, Sie können mehrere Bildschirme mit Remote-Logins und alle möglichen funkigen Dinge wie diese haben. Dies mag ziemlich spezialisiert erscheinen, aber es ist weit verbreitete Technologie. Wayland erscheint im Vergleich ziemlich lokal und statisch.

  • Es gibt auch Treiberunterstützung. Closed-Source-Treiber unterstützen die KMS / Shared-GEM / Shared-DRM-Technologien, von denen Wayland lebt. Ein Purist könnte mit Nouveau einverstanden sein, aber jemand, der £ 100-400 auf einer Hochleistungs-3D-Grafikkarte zahlt, wird nicht mit der flockigen, schlechten 3D-Leistung zufrieden sein, die sie mit dem aktuellen offenen Treiber bekommen würden.

    Aktualisieren:  Nvidia arbeitet daran, Wayland und Mir zu unterstützen.

Wie auch immer, wir reden über Jahre (wahrscheinlich zwei vor drei IMO), bevor irgendetwas wie dieses für stabile Tests bereit ist und noch länger, bevor Sie X aufgeben müssten (wenn Wayland eindeutig besser wäre).


121
2017-11-05 14:43



+1 für die schiere Offenheit von diese Nvidia-Verbindung. - poolie
Die Netzwerk-Transparenz-Sache ist aus verschiedenen Gründen übertrieben. 1. Pure X-Weiterleitung ist nur schnell genug über ein LAN. Über das Internet ist Raw X aufgrund der Latenz unbrauchbar. Um eine anständige Leistung zu erhalten, müssen Sie Protokolle von Drittanbietern wie NX oder VNC verwenden. 2. Sowohl NX als auch VNC sind aufgrund der Architektur von X ein großer Fehler. Es sollte einfacher mit Wayland sein. 3. Nur wenige moderne Toolkits verwenden den Zeichencode von X. Sie zeichnen sich einfach zu einer Bitmap und senden diese an X. Das ist genau dasselbe wie Wayland und wird die gleichen Netzwerkeigenschaften haben. - Timmmm
Ich stimme Punkt 1 zu, aber über ein gutes LAN, X-Forwarding unantastbar für Qualität oder Leistung. Viel besser als jede Alternative meiner Erfahrung nach. - Oli♦
Ab 2013 ist die Situation hinsichtlich der Netzwerktransparenz klarer: askubuntu.com/a/359870/203271 - Diego
@poolie: Es scheint, dass sie ihre Meinung geändert haben. ;-) - Peque


Es gibt viele Unterschiede zwischen X und Wayland. Die größte von der Grafikseite ist Wayland macht keine Zeichnung.

X hat zwei Zeichnungs-APIs. Eine davon ist ein Teil des Kern-X11-Protokolls, das uralt ist, nutzlos und niemand benutzt. Die andere ist die XRender-Erweiterung, die moderne Composite-Operationen unter anderem als Gradienten bietet. Dies ist, was Kairo zum Beispiel verwendet. X verfügt auch über Schriftzeichnungs-APIs.

Wayland hat keine Zeichnungs-APIs. Ein Wayland-Client erhält einen DRM-Buffer-Handle, der im Grunde genommen ein Zeiger auf irgendeinen Grafikspeicher ist; Wayland weiß nicht, wie der Klient in diesen Puffer zieht. In X-Begriff bedeutet dies, dass alle Anwendungen erhalten direktes Rendern - Zeichnungsanforderungen müssen nicht über den Server gehen.

Das einzige Rendering von Wayland besteht darin, die Puffer des Clients auf den Bildschirm zu kopieren.

Was die Vorteile anbelangt, ist Wayland viel weniger komplex als X, was die Wartung erleichtern sollte - obwohl ein Teil dieser Einfachheit von der Komplexität herrührt (z. B. wie tatsächlich Zeichnen Sie auf diesen Puffer, Netzwerktransparenz) zu anderen Schichten des Stapels. Indem die Clients für das gesamte Rendering verantwortlich gemacht werden, können die Clients über Dinge wie Double-Buffering klüger werden.

Es gibt andere Vorteile außerhalb der Grafik. Es ist beispielsweise viel einfacher, Sandbox-Anwendungen zu erstellen.


49
2017-11-07 05:40



Klingt wie Microsoft DirectX wie Dinge? - Anwar
Ich benutze die Kern X11 Protokoll Zeichnung API, weil es schneller als XRender ist. - étale-cohomology
Ich bekomme auch Microsoft Wibes von Wayland und Systemd. Und nein, das ist keine gute Sache. Sie brechen grundlegende Softwareentwicklungsregeln. In Systemd nur weil es für die Entwickler von Systemd einfacher ist. Im Wayland, weil sie schnellere Spiele (?) Und Rendering wollen und damit viele gute Sachen rausschmeißen. - Anders


Der Hauptunterschied in meinen Augen ist, dass Wayland näher am Kernel ist als X-Server. Mit der Verschiebung von Grafiktreibern von X auf den Kernel (bekannt als Kernel-Modus-Einstellung, KMS) plant Wayland, diese neue Funktionalität zu verwenden, um X zu ersetzen. Sie könnten Folgendes erwarten ...

Weniger Platzbedarf als X - da die Anzeige vom Kernel gehandhabt wird, muss Wayland nicht so viel implementieren, um nutzbar zu werden. Dies geht in beide Richtungen, da ich vermute, X Weiterleitung (Blick auf einen Bildschirm auf einem anderen PC) kann mit X weggehen.

KMS-Funktionen: In der Lage, die Bildschirmauflösung zu ändern, ohne X-Server neu zu starten (obwohl ich glaube, dass dies in X vor einiger Zeit behoben wurde, zumindest für Nvidia), Debug-Konsole auf Kernel-Panik für Intel-Chipsätze (in nouveau) diese Art von Ding.

Kann mich irgendjemand korrigieren, wenn ich falsch liege?


16
2017-11-05 14:36



KMS & GEM verschiebt die Grafiktreiber nicht in den Kernel, nur einige kleine Teile werden in den Kernel verschoben (die Bits, die direkt mit der Hardware kommunizieren und im Kernel vorhanden sein müssen, damit verschiedene Treiber koexistieren können, z Schreiben in I / O-Ports und Speicherverwaltung). KMS & GEM werden bereits heute von X genutzt, zumindest für moderne Open-Source-Treiber (Intel, Radeon, Nouveau). BTW: Ich bezweifle ernsthaft, dass das Verschieben des gesamten Grafiktreibers in den Kernel von Linus akzeptiert würde ...;) - JanC
Oh, und KMS wurde nie benötigt, um die Bildschirmauflösung zu ändern (das ist möglich, seitdem ich X vor mehr als 10 Jahren benutzt habe), aber es erlaubt verschiedene Treiber (zB den Konsolen-Framebuffer-Treiber, die X-Treiber und jetzt die Wayland-Treiber) leichter kooperieren. In der Vergangenheit war es für jeden von ihnen nicht immer offensichtlich, in welchem ​​"Zustand" sich die Grafikhardware zu einem bestimmten Zeitpunkt befindet, und es wurden viele raten- oder treiberabhängige proprietäre Workarounds verwendet. - JanC
Es ist nicht ganz richtig, dass die X-Weiterleitung wegfällt, da X immer noch als ein Client auf Wayland verwendet werden kann. wayland.freedesktop.org hat ein Beispiel dafür. Aber X ist sowieso eine ziemlich schreckliche Art, sowas zu machen. Es ist an der Zeit, dass es ersetzt wird. In vielen Fällen scheint es, dass Dinge wie GTK mit Broadway ein besserer Ansatz wären. - Jo-Erlend Schinstad
Mit der RandR-Erweiterung können Sie die Bildschirmauflösung ändern, ohne den X-Server neu zu starten. - Anonymous


Alle anderen Beiträge unterstreichen die Vorteile von Wayland, aber es ist nicht alles nur gut. Der größte Vorteil von X gegenüber Wayland ist, dass X über das Netzwerk funktioniert. X ist netzwerktransparent, Sie können das Fenster oder mit XDMCP eine komplette Sitzung auf einem Terminal anzeigen, während das eigentliche Programm auf einem anderen, meist leistungsstärkeren Rechner läuft. Mit etwas wie Wayland ist die Idee der Netzwerktransparenz weg. Vielleicht ist es heutzutage nicht so wichtig mit schnellen Netzwerken und anderen Protokollen wie VNC und RDP, dachte nur, ich würde es aus Gründen der Vollständigkeit erwähnen.


11
2017-09-02 20:16



Das ist genau das, was ich auch für den größten Vorteil des X gegenüber dem vorgeschlagenen Wayland halte. - Kris Jace


Einfach gesagt, die Hoffnung ist für bessere Grafik (weniger Buggy, schneller, einfacher zu bedienen). Sogar Dinge könnten eines Tages möglich sein, die vorher nicht möglich waren. Ich persönlich denke, dass dies die Dinge aufpeppen wird, wie es der Wettbewerb immer tut.


6
2017-11-05 14:20





Zwei kleine Dinge, die in der täglichen Arbeit schnell auffallen:

  • Wayland räumt mit den Papierschnitten auf, die in X11 zu schwer zu reparieren waren. Ein bekanntes Beispiel: Verwenden Sie die Funktionstasten (Lautsprecherlautstärke, Displayhelligkeit usw.), während ein Menü geöffnet oder der Sperrbildschirm eingeschaltet ist.
  • Wayland ist besser an Eingabegeräten. Zum einen gibt es viele weitere Optionen zum Konfigurieren von Touchpads, einschließlich einer permanenten Tap-to-Click-Einstellung.

3
2017-08-15 13:52



Wayland ist schlechter, wenn ein Programm aus einem bestimmten Grund gesperrt ist. Andere zu haben, ist eine gute Sache. Ich benutze Netzwerk X11 regelmäßig (jeden Tag). Irgendein Programm hat aufgehört in Wayland zu arbeiten (Ich benutze Ubuntu 18.04) - Anders