Vraag Waarom is Wayland beter?


Als onlangs aangekondigd door Mark Shuttleworth gaat Ubuntu op weg naar het gebruik van Wayland als displaymanager.

Wat zijn de grootste verschillen tussen X11 en Wayland? Waarom maakt Wayland Ubuntu beter?


149
2017-11-05 13:52


oorsprong


Vanaf december 2013 lijkt het erop dat Unity gebaseerde Ubuntu Mir-displayserver zal gebruiken in plaats van een op Wayland gebaseerde compositor vanaf Ubuntu 14.10: link  link Andere Ubuntu-varianten zullen waarschijnlijk naar Wayland gaan: link - Diego
Hier is een geweldige video over X en waarom mensen deze willen vervangen: youtube.com/watch?v=cQoQE_HDG8g - Jason
Ubuntu 18 (Bionic) gebruikt nu standaard xorg, maar Wayland is nog steeds een optie op het inlogscherm: blog.ubuntu.com/2018/01/26/... - Kris


antwoorden:


Je kan zien de Wayland-architectuurpagina om te zien hoe het verschilt in ontwerp. Het zou de hele grafische stapel vereenvoudigen door alles via een standaard GEM / DRM-stack rechtstreeks in de kernel te forceren en de compositing zelf te beheren.

Vergelijk dat met de X-stack waar je overal stukjes en bobs hebt. Een deel van de X-rotzooi heeft een flexibel ontwerp doorgemaakt, sommigen hebben groeipijnen gekend. Alle compositors (Compiz / Metacity / Mutter / KWin / etc) zijn toegevoegd als een bijzaak. Ze zijn, in de kern, hacks om te doen wat X waarschijnlijk zelf zou moeten doen. Als de dingen zich blijven uitbreiden zoals ze zijn geweest, komen we op een punt waar het project onhoudbaar wordt.

Al met al, wanneer hardware-ondersteuning aanwezig is, zou het de hele stack efficiënter en minder pijnlijk moeten maken om te gebruiken in standaard setups.

Er zijn echter een aantal problemen waarvoor ik tot nu toe geen oplossingen heb gevonden:

  • X is redelijk netwerkbewust. Je kunt vensters naar andere computers sturen, je kunt meerdere schermen hebben met externe aanmeldingen en allerlei funky dingen zoals dat. Dit lijkt vrij specialistisch, maar het is veel gebruikte technologie. Wayland lijkt relatief lokaal en statisch in vergelijking.

  • Er is ook ondersteuning voor de bestuurder. Closed-source drivers ondersteunen nog de KMS / shared-GEM / shared-DRM-technologieën waar Wayland van geniet. Een purist is misschien wel in orde met Nouveau, maar iemand die £ 100-400 betaalt op een hoogwaardige 3D grafische kaart zal niet blij zijn met de slechte 3D-prestaties die ze zouden behalen met de huidige open driver.

    Bijwerken:  Nvidia werkt aan het ondersteunen van Wayland en Mir.

Hoe dan ook, we hebben het jaren (waarschijnlijk twee tot drie keer IMO) voordat iets als dit klaar is voor een stabiele test en nog langer voordat je X moet opgeven (als Wayland duidelijk beter was).


121
2017-11-05 14:43



+1 voor de pure botheid van die Nvidia-link. - poolie
Het netwerktransparantie-element is om verschillende redenen overdreven groot. 1. Pure X-doorsturen is alleen snel genoeg via een LAN. Over het internet is onbewerkte X onbruikbaar vanwege latentie. Voor behoorlijke prestaties moet u protocollen van derden gebruiken, zoals NX of VNC. 2. Zowel NX als VNC zijn een enorme pijn om op te zetten vanwege X's architectuur. Met Wayland zou het eenvoudiger moeten zijn. 3. Weinig moderne toolkits gebruiken X's tekencode. Ze tekenen zichzelf naar een bitmap en sturen die naar X. Dit is precies hetzelfde als Wayland en heeft dezelfde netwerkkenmerken. - Timmmm
Ik ben het eens met punt 1 maar met een goed LAN, X-forwarding onaanraakbaar voor kwaliteit of prestaties. Veel beter dan beide alternatieven in mijn ervaring. - Oli♦
Vanaf 2013 is de situatie duidelijker met betrekking tot netwerktransparantie: askubuntu.com/a/359870/203271 - Diego
@poolie: Het lijkt erop dat ze van gedachten zijn veranderd. ;-) - Peque


Er zijn veel van verschillen tussen X en Wayland. Waarschijnlijk de grootste van de grafische kant is dat Wayland doet geen tekening.

X heeft twee teken-API's. Een daarvan is een onderdeel van het kern X11-protocol, dat vanouds, nutteloos en door niemand wordt gebruikt. De andere is de XRender-extensie die moderne samengestelde bewerkingen biedt, onder andere gradiënten. Dit is bijvoorbeeld wat Cairo gebruikt. X heeft ook API's voor het tekenen van lettertypen.

Wayland heeft geen teken-API's. Een Wayland-client krijgt een DRM-buffergreep, die in feite een verwijzing is naar een grafisch geheugen; Wayland weet niet of geeft er niet om hoe de klant naar die buffer trekt. In X-termen betekent dit dat alle applicaties worden ontvangen directe weergave - tekenverzoeken hoeven niet door de server te gaan.

De enige rendering van Wayland is het kopiëren van de buffers van de client naar het scherm.

Wat voordelen betreft, is Wayland een stuk minder complex dan X, wat het gemakkelijker zou moeten maken om te onderhouden - hoewel een deel van deze eenvoud voortkomt uit het verleggen van de complexiteit (bijv. werkelijk teken op die buffer, netwerktransparantie) naar andere lagen van de stapel. Door klanten verantwoordelijk te maken voor al hun rendering, kunnen klanten slimmer zijn over dingen als dubbele buffering.

Er zijn nog andere voordelen buiten de grafische weergave. Het is veel eenvoudiger om bijvoorbeeld sandbox-applicaties te gebruiken.


49
2017-11-07 05:40



Klinkt als Microsoft's DirectX-achtige dingen? - Anwar
Ik gebruik de X11-protocoltekening-API, omdat deze sneller is dan XRender. - étale-cohomology
Ik krijg ook Microsoft-wiki's van Wayland en systemd. En nee, dat is geen goede zaak. Ze breken de basisregels voor softwareontwikkeling. In systemd alleen omdat het eenvoudiger is voor de ontwikkelaars van systemd. In wayland omdat ze snellere games (?) En rendering willen en daar veel goede dingen mee doen. - Anders


Het grote verschil in mijn ogen is dat Wayland dichter bij de kernel staat dan X-Server. Met de verplaatsing van grafische stuurprogramma's van X naar de kernel (ook bekend als instelling van de kernelmodus, KMS), is Wayland van plan om deze nieuwe functionaliteit te gebruiken om X te vervangen. U zou het volgende kunnen verwachten ...

Minder van een footprint dan X - omdat het display wordt afgehandeld door de kernel hoeft Wayland niet zo veel te implementeren om bruikbaar te worden. Dit gaat in beide richtingen omdat ik vermoed dat X-forwarding (kijk naar een scherm op een andere pc) mogelijk weg zal gaan met X.

KMS-functies: De schermresolutie kunnen wijzigen zonder de X-server opnieuw op te starten (hoewel ik geloof dat dit een tijdje geleden in X is opgelost, althans voor nvidia), debug-console op kernel paniek voor Intel-chipsets (verhuizen naar nouveau) als je van plan bent dat soort dingen.

Kan iemand mij hierop corrigeren als ik het mis heb?


16
2017-11-05 14:36



KMS & GEM verplaatst de grafische stuurprogramma's niet naar de kernel, maar slechts enkele kleine onderdelen worden verplaatst naar de kernel (de bits die direct naar de hardware spreken en in de kernel moeten zijn, zodat verschillende stuurprogramma's naast elkaar kunnen bestaan, bijv. schrijven naar I / O-poorten en beheren van geheugen). KMS en GEM worden vandaag al door X gebruikt, in ieder geval voor moderne open source drivers (intel, radeon, nouveau). BTW: ik betwijfel of het verplaatsen van de hele grafische driver naar de kernel zou worden geaccepteerd door Linus ...;) - JanC
Oh, en KMS was nooit nodig om de schermresolutie te veranderen (dat is mogelijk sinds ik X meer dan 10 jaar geleden gebruikte), maar het staat verschillende stuurprogramma's toe (bijv. De console framebuffer driver, de X drivers en nu de Wayland drivers) om gemakkelijker samen te werken. In het verleden was het niet altijd voor elk van hen duidelijk in welke "staat" de grafische hardware zich op een bepaald moment in de tijd bevindt, en werden er veel gok- of driver-afhankelijke eigen workarounds gebruikt. - JanC
Het is niet helemaal waar dat X-forwarding zal verdwijnen omdat X nog steeds als een client op Wayland kan worden gebruikt. wayland.freedesktop.org heeft daar een voorbeeld van. Maar X is toch een nogal vreselijke manier om dat soort dingen te doen. Het wordt tijd dat het wordt vervangen. In veel gevallen lijkt het erop dat dingen als GTK met Broadway een betere aanpak zouden zijn. - Jo-Erlend Schinstad
Met de RandR-extensie kunt u de schermresolutie wijzigen zonder de X-server opnieuw te hoeven opstarten. - Anonymous


Alle andere berichten markeren de voordelen van Wayland, maar het is niet alleen maar goed. Het grootste voordeel van X over Wayland is dat X via het netwerk werkt. X is netwerktransparant, u kunt het venster weergeven of met XDMCP een volledige sessie op een terminal terwijl het eigenlijke programma op een andere, meestal krachtiger machine wordt uitgevoerd. Met iets als Wayland is het idee voor netwerktransparantie verdwenen. Misschien is het tegenwoordig niet zo vaak nodig met snelle netwerken en andere protocollen zoals VNC en RDP, ik dacht dat ik het voor de volledigheid zou noemen.


11
2017-09-02 20:16



Dit is precies wat ik ook beschouw als het grootste voordeel van de X boven de voorgestelde Wayland. - Kris Jace


Simpel gezegd, de hoop is voor betere graphics (minder buggy, sneller, gemakkelijker te gebruiken). Zelfs dingen zouden op een dag mogelijk zijn die niet eerder waren. Ik persoonlijk denk dat dit op zijn minst dingen zal opfleuren, zoals concurrentie altijd doet.


6
2017-11-05 14:20





Twee kleine dingen die iemand vrij snel zal opvallen in het dagelijkse werk:

  • Wayland neemt de papercuts weg die te moeilijk werden geacht om in X11 te repareren. Een beroemd voorbeeld: gebruik van de functietoetsen (luidsprekervolume, helderheid van het scherm, enz.) Terwijl een menu open is of het vergrendelscherm aanstaat.
  • Wayland is beter op invoerapparaten. Ten eerste zijn er veel meer opties voor het configureren van touchpads, waaronder een permanente tik-om-klik-instelling.

3
2017-08-15 13:52



Wayland is erger als een programma om een ​​bepaalde reden is vergrendeld. Verschillende werelden hebben, zijn een goede zaak. Ik gebruik netwerk X11 op regelmatige basis (elke dag). Sommige programma's zijn gestopt met werken in Wayland (ik gebruik Ubuntu 18.04) - Anders