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?
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?
Risposte:
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à.
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.
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?
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.
Due piccole cose che chiunque noterà abbastanza rapidamente nel lavoro quotidiano: