Perché Wayland è migliore?


177

Come recentemente annunciato da Mark Shuttleworth, Ubuntu si sposterà verso l'utilizzo di Wayland come display manager.

Quali sono le maggiori differenze tra X11 e Wayland? Perché Wayland migliorerà Ubuntu?


5
A partire da dicembre 2013 sembra che Ubuntu basato su Unity userà Mir Display Server invece di un compositore basato su Wayland a partire da Ubuntu 14.10: link link Altre varianti di Ubuntu probabilmente si sposteranno su Wayland: link
Diego

4
Ecco un ottimo video che spiega X e perché le persone vogliono sostituirlo: youtube.com/watch?v=cQoQE_HDG8g
Jason

Ubuntu 18 (Bionic) ora utilizzerà xorg per impostazione predefinita, ma wayland è ancora un'opzione nella schermata di accesso: blog.ubuntu.com/2018/01/26/…
Kris,

Direi che X è meglio. Non andrei in cose tecniche. Ma dirò solo che ho lasciato cadere i frame su YouTube con Wayland se ridimensiono la finestra o vado / esco a schermo intero. Con X, nessun problema. Anche se la velocità è la stessa. Anche sul cursore del mouse Wayland sembra più lento rispetto a X. X è ancora il mio numero 1
Luka

Risposte:


136

Puoi vedere la pagina dell'architettura Wayland per vedere come differisce nel design. Dovrebbe semplificare l'intero stack grafico forzando tutto attraverso uno stack GEM / DRM standard direttamente nel kernel e gestendo la composizione stessa.

Confronta quello con lo stack X in cui hai bit e bob in tutto il luogo. Alcuni dei pasticci di X sono passati attraverso un design flessibile, altri hanno avuto problemi di crescita. Tutti i compositori (Compiz / Metacity / Mutter / KWin / etc) sono stati aggiunti come ripensamento. Sono fondamentalmente degli hack per fare ciò che X dovrebbe probabilmente fare da solo. Se le cose continuano ad espandersi verso l'esterno come sono state, arriveremo a un punto in cui il progetto diventa non realizzabile.

Tutto sommato, quando il supporto hardware è presente, dovrebbe rendere l'intero stack più efficiente e meno doloroso da usare in configurazioni standard.

Tuttavia, ci sono un paio di problemi che non ho visto rimedi finora:

  • X è abbastanza consapevole della rete. Puoi inviare finestre ad altri computer, puoi avere più schermi con accessi remoti e ogni sorta di cose funky come quella. Questo potrebbe sembrare abbastanza specialistico ma è una tecnologia ampiamente utilizzata. Wayland appare piuttosto locale e statico a confronto.

  • C'è anche il supporto per i driver. I driver a sorgente chiuso devono ancora supportare le tecnologie KMS / shared-GEM / shared-DRM su cui Wayland prospera. Un purista potrebbe stare bene con Nouveau, ma qualcuno che paga £ 100-400 su una scheda grafica 3D ad alte prestazioni non sarà contento delle scarse prestazioni 3D che avrebbero ottenuto con l'attuale driver aperto.

    Aggiornamento: Nvidia sta lavorando per supportare Wayland e Mir .


Aggiornamento 2018 . 17.10 usava Wayland come server di visualizzazione predefinito (a meno che tu non avessi un driver chiuso, o un driver che non lo supportasse o non avesse bisogno di X). 18.04 e 18.10 utilizzano entrambi X come predefinito globale (sebbene sia possibile installare Wayland).

Non sono responsabile di nulla, ma da questa posizione, sembra che siamo ancora una metrica Nvidia lontano da ottenere una vera trazione. Fino a quel momento, non credo che vedremo abbastanza mindshare e sviluppo del potere dietro Wayland. Il mercato dei giochi / delle prestazioni utilizza X. Il mercato MCE utilizza X (e framebuffer diretti). Non sono sicuro che Wayland avrà mai una vera possibilità.


21
La trasparenza della rete è troppo esagerata per diversi motivi. 1. L'inoltro X puro è abbastanza veloce solo su una LAN. Su Internet X non è utilizzabile a causa della latenza. Per ottenere prestazioni decenti devi usare protocolli di terze parti come NX o VNC. 2. Sia l'NX che il VNC sono molto difficili da configurare a causa dell'architettura di X. Dovrebbe essere più facile con Wayland. 3. Pochi toolkit moderni usano il codice di disegno di X. Si limitano a disegnare una bitmap e la inviano a X. Questo è esattamente lo stesso di Wayland e avrà le stesse caratteristiche di rete.
Timmmm,

4
Concordo con il punto 1 ma su una buona LAN, l'inoltro X intoccabile per qualità o prestazioni. Molto meglio di entrambe le alternative nella mia esperienza.
Oli

1
A partire dal 2013 la situazione è più chiara per quanto riguarda la trasparenza della rete: askubuntu.com/a/359870/203271
Diego,

2
@poolie: sembra che abbiano cambiato idea. ;-)
Peque

2
Da BionicBeaver / ReleaseNotes : "X è il server di visualizzazione predefinito. Wayland viene fornito come anteprima tecnica e dovrebbe essere il server di visualizzazione predefinito in 20.04 LTS . Per provarlo, basta scegliere Ubuntu su Wayland dal pignone nel login. . I log di X.org ora possono essere trovati su ~ / .local / share / xorg "[enfasi mia]
Dennis Williamson

56

Ci sono molte differenze tra X e Wayland. Probabilmente il più grande dal punto di vista grafico è che Wayland non fa alcun disegno .

X ha due API di disegno. Uno di questi è una parte del protocollo X11 core, che è antico, inutile e che nessuno usa. L'altra è l'estensione XRender che fornisce moderne operazioni composite, tra le altre cose come i gradienti. Questo è ciò che il Cairo, ad esempio, usa. X ha anche API per il disegno dei caratteri.

Wayland non ha API di disegno. Un client Wayland ottiene un handle di buffer DRM, che è fondamentalmente un puntatore ad alcune memorie grafiche; Wayland non sa né si preoccupa di come il cliente attiri quel buffer. In termini X questo significa che tutte le applicazioni ottengono il rendering diretto - le richieste di disegno non devono passare attraverso il server.

L'unico rendering che Wayland fa è copiare i buffer del client sullo schermo.

In termini di benefici, Wayland è molto meno complesso di X, il che dovrebbe renderlo più facile da mantenere - sebbene parte di questa semplicità derivi dalla spinta della complessità (ad esempio: come attingere effettivamente a quel buffer, trasparenza della rete) ad altri strati del pila. Rendendo i clienti responsabili di tutto il loro rendering, i clienti possono essere più intelligenti su cose come il doppio buffering.

Ci sono altri vantaggi al di fuori della grafica. Ad esempio, è molto più facile eseguire il sandbox delle applicazioni.


2
Sembra DirectX di Microsoft come le cose?
Anwar,

3
Uso l'API di disegno del protocollo X11 core, perché è più veloce di XRender.
étale-cohomology il

3
Ricevo anche le Microsoft Wibes di Wayland e Systemd. E no, non è una buona cosa. Infrangono le regole di sviluppo del software di base. In systemd solo perché è più facile per gli sviluppatori di systemd. A proposito, perché vogliono giochi più veloci (?) E rendering e buttano via un sacco di cose buone.
Anders,

18

La differenza principale ai miei occhi è che Wayland è più vicino al kernel di X-Server. Con lo spostamento dei driver grafici da X al kernel (noto come impostazione della modalità kernel, KMS), Wayland prevede di utilizzare questa nuova funzionalità per sostituire X. Potresti aspettarti di vedere il seguente ...

Meno di un footprint di X - perché il display è gestito dal kernel Wayland non dovrà implementare tanto per diventare utilizzabile. Questo va in entrambi i modi poiché sospetto che l'X forwarding (guarda uno schermo su un altro PC) possa andare via con X.

Funzionalità KMS: essere in grado di cambiare la risoluzione dello schermo senza riavviare X server (anche se credo che questo sia stato risolto in X qualche tempo fa, almeno per nvidia), console di debug sul panico del kernel per chipset Intel (passare a nouveau) se ti interessa questo genere di cose.

Qualcuno può correggermi su una di queste cose se sbaglio?


4
KMS e GEM non spostano i driver di grafica nel kernel, solo alcune piccole parti vengono spostate nel kernel (i bit che parlano direttamente all'hardware e devono trovarsi nel kernel in modo che possano coesistere driver diversi, ad es. scrivere su porte I / O e gestire la memoria). KMS e GEM sono già utilizzati da X oggi, almeno per i moderni driver open source (Intel, Radeon, Nouveau). A proposito: dubito seriamente che spostare l'intero driver grafico nel kernel sarebbe accettato da Linus ...;)
JanC

4
Oh, e KMS non è mai stato necessario per modificare la risoluzione dello schermo (che è stato possibile da quando ho usato X più di 10 anni fa), ma consente driver diversi (ad esempio il driver del framebuffer della console, i driver X e ora i driver Wayland) collaborare più facilmente. In passato non era sempre ovvio per ciascuno di loro in quale "stato" l'hardware grafico fosse in un determinato momento e sono state utilizzate molte ipotesi o soluzioni alternative proprietarie dipendenti dal driver.
JanC

1
Non è del tutto vero che l'inoltro X scomparirà poiché X può ancora essere utilizzato come client su Wayland. wayland.freedesktop.org ne ha un esempio. Ma X è comunque un modo piuttosto orribile di fare quel genere di cose. È ora che venga sostituito. In molti casi, sembra che cose come GTK con Broadway sarebbero un approccio migliore.
Jo-Erlend Schinstad,

3
L'estensione RandR ti consente di modificare la risoluzione dello schermo senza riavviare il server X.
Anonimo il

14

Tutti gli altri post evidenziano i vantaggi di Wayland, ma non sono solo buoni. Il più grande vantaggio di X su Wayland è che X funziona sulla rete. X è trasparente in rete, è possibile visualizzare la finestra o con XDMCP una sessione completa su un terminale mentre il programma effettivo è in esecuzione su un'altra macchina, di solito più potente. Con qualcosa come Wayland, l'idea di trasparenza della rete è sparita. Forse in questi giorni non è molto richiesto con reti veloci e altri protocolli come VNC e RDP, ho pensato di menzionarlo per completezza.


Questo è esattamente quello che considero anche il più grande vantaggio della X rispetto alla proposta Wayland.
Kris Jace,

7

In poche parole, la speranza è per una grafica migliore (meno buggy, più veloce, più facile da usare). Anche le cose potrebbero essere possibili un giorno che non erano prima. Personalmente penso che questo renderà almeno le cose più piccanti, come sempre fa la concorrenza.


3

Due piccole cose che chiunque noterà abbastanza rapidamente nel lavoro quotidiano:

  • Wayland elimina i papercut ritenuti troppo difficili da correggere in X11. Un famoso esempio: usare i tasti funzione (volume degli altoparlanti, luminosità del display, ecc.) Mentre un menu è aperto o la schermata di blocco è attiva.
  • Wayland è migliore nei dispositivi di input. Per uno, ci sono molte altre opzioni per la configurazione dei touchpad, inclusa un'impostazione persistente di tocco per fare clic.

1
Wayland è peggio se un programma è bloccato per un motivo. Avere wm diversi è una buona cosa. Uso la rete X11 su base regolare (ogni giorno). Alcuni programmi hanno smesso di funzionare in Wayland (utilizzo Ubuntu 18.04)
Anders,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.