Domanda Perché è meglio Wayland?


Come recentemente annunciato di Mark Shuttleworth, Ubuntu si sta muovendo verso l'utilizzo di Wayland come display manager.

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


149
2017-11-05 13:52


origine


A partire da dicembre 2013 sembra che Ubuntu basato su Unity utilizzerà il server di visualizzazione Mir invece di un compositore basato su Wayland a partire da Ubuntu 14.10: collegamento  collegamento Altre varianti di Ubuntu si sposteranno probabilmente su Wayland: collegamento - Diego
Ecco un ottimo video che spiega X e perché la gente vuole sostituirlo: youtube.com/watch?v=cQoQE_HDG8g - Jason
Ubuntu 18 (Bionic) ora userà xorg di default, ma wayland è ancora un'opzione nella schermata di login: blog.ubuntu.com/2018/01/26/... - Kris


risposte:


Puoi vedere la pagina dell'architettura Wayland per vedere come si differenzia nel design. Dovrebbe semplificare l'intero stack grafico costringendo tutto attraverso uno stack GEM / DRM standard direttamente nel kernel e gestendo il compositing stesso.

Confronta questo con lo stack X in cui hai bit e bob ovunque. Parte del disordine X è passato attraverso un design flessibile, alcuni hanno avuto problemi di crescita. Tutti i compositori (Compiz / Metacity / Mutter / KWin / etc) sono stati aggiunti come ripensamenti. Sono, al loro centro, gli hack per fare ciò che X dovrebbe probabilmente fare da sé. Se le cose continueranno ad espandersi come sono state, arriveremo ad un punto in cui il progetto diventa non mantenibile.

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

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

  • X è abbastanza sensibile alla rete. È possibile inviare finestre ad altri computer, è possibile avere più schermi con accessi remoti e tutti i tipi di cose funky come quella. Questo potrebbe sembrare abbastanza specialista ma è una tecnologia ampiamente utilizzata. Wayland appare piuttosto locale e statico in confronto.

  • C'è anche il supporto dei driver. I driver closed-source devono ancora supportare le tecnologie KMS / shared-GEM / shared-DRM su cui Wayland prospera. Un purista potrebbe essere d'accordo con Nouveau, ma qualcuno che paga 100-400 sterline su una scheda grafica 3D ad alte prestazioni non sarà contento delle scarse prestazioni 3D che otterrebbero con l'attuale driver aperto.

    Aggiornare:  Nvidia sta lavorando per supportare sia Wayland che Mir.

In ogni caso, stiamo parlando di anni (probabilmente da due a tre IMO) prima che qualcosa del genere sia pronto per i test stabili e anche più a lungo prima di dover rinunciare a X (se Wayland fosse chiaramente migliore).


121
2017-11-05 14:43



+1 per la pura schiettezza di quel collegamento Nvidia. - poolie
La trasparenza della rete è eccessiva per diverse ragioni. 1. L'inoltro X puro è abbastanza veloce solo su una LAN. In Internet X non funzionante è inutilizzabile a causa della latenza. Per ottenere prestazioni decenti, è necessario utilizzare protocolli di terze parti come NX o VNC. 2. Sia NX che VNC sono un enorme problema 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 su una bitmap e inviarla a X. Questo è esattamente lo stesso di Wayland e avrà le stesse caratteristiche di rete. - Timmmm
Sono d'accordo 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♦
A partire dal 2013 la situazione è più chiara per quanto riguarda la trasparenza della rete: askubuntu.com/a/359870/203271 - Diego
@poolie: Sembra che abbiano cambiato idea. ;-) - Peque


Ci sono molte delle differenze tra X e Wayland. Probabilmente il più grande dal lato grafico è quello di Wayland non fa nessun disegno.

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

Wayland non ha API di disegno. Un client Wayland ottiene un handle del buffer DRM, che è fondamentalmente un puntatore a qualche memoria grafica; Wayland non sa né importa come il cliente attinga a quel buffer. In termini X ciò significa che tutte le applicazioni ottengono rendering diretto - le richieste di disegno non devono passare attraverso il server.

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

In termini di benefici, Wayland è molto meno complesso di X, che dovrebbe renderlo più facile da mantenere, anche se alcuni di questa semplicità derivano dalla spinta della complessità (es: come in realtà attingere a quel buffer, trasparenza di rete) ad altri livelli dello stack. 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 per le applicazioni sandbox.


49
2017-11-07 05:40



Sembra Microsoft DirectX come le cose? - Anwar
Io uso l'API di disegno del protocollo X11 principale, perché è più veloce di XRender. - étale-cohomology
Ottengo anche le chiacchiere Microsoft di Wayland e systemd. E no, non è una buona cosa. Rompono le regole di sviluppo del software di base. In systemd solo perché è più facile per gli sviluppatori di systemd. In via di via perché vogliono giochi più veloci (?) E rendering, e buttano fuori un sacco di cose buone con quello. - Anders


La principale differenza nei 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 quanto segue ...

Meno di un ingombro rispetto a X - perché il display è gestito dal kernel Wayland non dovrà implementare tanto per diventare utilizzabile. Questo vale in entrambi i modi, come sospetto che l'inoltro X (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 il server X (anche se credo che sia stato risolto in X qualche tempo fa, almeno per nvidia), eseguire il debug della console sul kernel panic per i chipset Intel (spostandosi sul nouveau) se si è interessati questo genere di cose.

Qualcuno può correggermi su questo se sbaglio?


16
2017-11-05 14:36



KMS & GEM non sposta i driver grafici nel kernel, solo alcune piccole parti vengono spostate nel kernel (i bit che parlano direttamente all'hardware e devono essere 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). BTW: dubito seriamente che lo spostamento dell'intero driver grafico nel kernel sia accettato da Linus ...;) - JanC
Oh, e KMS non è mai stato necessario per cambiare la risoluzione dello schermo (che è stato possibile da quando ho usato X più di 10 anni fa), ma consente diversi driver (ad esempio il driver framebuffer della console, i driver X e ora i driver Wayland) collaborare più facilmente. In passato non era sempre ovvio per ognuno di essi in quale "stato" l'hardware grafico si trovasse ad un certo punto nel tempo, e venivano usate molte soluzioni alternative proprietarie al guidatore. - JanC
Non è del tutto vero che l'inoltro X andrà via poiché X può ancora essere utilizzato come client su Wayland. wayland.freedesktop.org ne ha un esempio Ma X è un modo piuttosto orribile per fare quel genere di cose comunque. È ora che venga sostituito. In molti casi, sembra che cose come la GTK con Broadway siano un approccio migliore. - Jo-Erlend Schinstad
L'estensione RandR consente di modificare la risoluzione dello schermo senza riavviare il server X. - Anonymous


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


11
2017-09-02 20:16



Questo è esattamente quello che considero anche il più grande vantaggio della X rispetto al Wayland proposto. - Kris Jace


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


6
2017-11-05 14:20





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

  • Wayland elimina i graffi che sono stati giudicati troppo difficili da sistemare in X11. Un esempio famoso: utilizzando i tasti funzione (volume dell'altoparlante, 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 più opzioni per la configurazione dei touchpad, tra cui un'impostazione persistente tocco-per-clic.

3
2017-08-15 13:52



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 (io uso Ubuntu 18.04) - Anders