Cos'è Wayland e cosa significa per gli utenti Linux?

Cos'è Wayland - Immagine in evidenza Linux

Se utilizzi un desktop Linux, interagisci con un server di visualizzazione. Questo pezzo cruciale di software è responsabile del disegno di tutto ciò che vedi sullo schermo – dalle finestre e dai menu al cursore del mouse. Per decenni, il server di visualizzazione Xorg (X11) è stato lo standard. Tuttavia, con l’evoluzione delle esigenze informatiche, è emersa un’alternativa moderna chiamata Wayland, che sta diventando sempre di più il nuovo standard.

Questo post spiegherà cosa è Wayland, come funziona e come si confronta con Xorg.

Cos’è Wayland

Wayland è un protocollo di visualizzazione moderno che specifica come le applicazioni interagiscono con un server di visualizzazione per renderizzare grafiche e elaborare gli input degli utenti, come clic o testo. Introdotto intorno al 2008 come un’alternativa più leggera, sicura ed efficiente al sistema X Window (X), che ha dominato Linux dal 1984 fino alla metà degli anni 2010, Wayland è ottimizzato per l’hardware grafico e i display moderni. Anche se X continua a essere utilizzato per alcune applicazioni legacy (spesso tramite XWayland), Wayland è diventato il predefinito in molte distribuzioni Linux entro il 2025.

A differenza di X, che si basa su un server di visualizzazione separato come Xorg, Wayland integra il server di visualizzazione e il gestore delle finestre in un’unica entità chiamata compositore. Ad esempio, GNOME utilizza il suo compositore, Mutter, mentre KDE Plasma usa KWin. Questi compositori comunicano direttamente con l’hardware grafico, spesso utilizzando librerie come libwayland (o wlroots per compositori più piccoli come Sway), per scrivere dati nel framebuffer. Questo elimina la necessità di un intermediario, come in Xorg, risultando in prestazioni migliorate e rendering più fluido.

Caratteristiche di Wayland

  • Un design più semplice e moderno che facilita sviluppo, manutenzione e debug
  • Sicurezza migliorata isolando le applicazioni e prevenendo l’accesso ai dati di input o visualizzazione degli altri
  • Riduzione del sovraccarico di sistema, abilitando una latenza inferiore, grafiche più fluide e meno tearing dello schermo
  • Supporto integrato per display ad alta DPI, scalatura per monitor e scalatura frazionaria
  • Un compositore integrato che fornisce effetti visivi coerenti e prestazioni di rendering migliorate
  • Supporto nativo per touchscreen, gesti, stilo e altri dispositivi di input moderni
  • Migliore sincronizzazione con il display (VSync), riducendo sfarfallii e artefatti visivi
  • Evita la complessità legacy, rendendo più facile supportare i requisiti hardware e software moderni

Come funziona Wayland

I server di visualizzazione forniscono informazioni al kernel e all’hardware grafico in modo che possano trasmettere rapidamente le informazioni al display. Ricevono queste informazioni tramite applicazioni che comunicano con essi utilizzando i loro rispettivi protocolli. Un’applicazione progettata per funzionare con X, ad esempio, non può comunicare con un server Wayland.

Server di visualizzazione Wayland

Wayland risolve questo attraverso qualcosa chiamato XWayland, che funge da strato di compatibilità che consente l’interazione client-server di X di essere tradotta in qualcosa che Wayland può comprendere.

In Wayland, il server e il compositore sono uno e lo stesso. Ogni ambiente desktop che utilizza Wayland effettua chiamate a una libreria che implementa il protocollo Wayland per disegnare effetti, come trasparenza, sfocatura della finestra, animazioni di transizione e ombre, che danno alle finestre un senso di dimensione.

Wayland avvicina tutte queste funzioni al kernel, e spesso lo senti nella fluidità che si sperimenta nell’ambiente grafico.

Invece di disegnare attraverso l’uso di un software di terze parti, il compositore Wayland chiama ciò che è noto come il buffer del Direct Rendering Manager (DRM) nel kernel per disegnare.

Potresti notare che in Wayland i passaggi sono molto più semplici e il processo diretto. Questo porta a prestazioni maggiori in situazioni graficamente intense e facilita agli sviluppatori la creazione di applicazioni che funzionano sotto questo protocollo.

Come provare Wayland

Molte distribuzioni Linux moderne – soprattutto quelle che utilizzano versioni recenti di GNOME o KDE Plasma – ora utilizzano Wayland come server di visualizzazione predefinito.

A partire da Ubuntu 24.04 LTS (Noble Numbat), Wayland è il server di visualizzazione predefinito nella maggior parte dei sistemi, in particolare quelli con grafica Intel o AMD. Se utilizzi una GPU NVIDIA, il sistema continuerà a utilizzare Wayland per impostazione predefinita. Tuttavia, se non funziona ancora, segui questa guida dettagliata e fai funzionare Wayland su una scheda grafica Nvidia.

Per controllare se stai utilizzando Wayland o Xorg, apri un terminale ed esegui:

echo $XDG_SESSION_TYPE

Se l’output è Wayland, sei già su Wayland. Stai eseguendo Xorg se dice x11.

Se sei su Xorg, di solito puoi passare a Wayland dalla schermata di login. Cerca un icona a forma di ingranaggio o un menu di sessione (di solito vicino al pulsante Accedi), cliccaci sopra e seleziona Ubuntu o Ubuntu su Wayland o GNOME Classico. Poi accedi come al solito.

Passare a Wayland dalla schermata di accesso

Nota: Se stai eseguendo una sessione live (ad esempio, Ubuntu 24.04.1 da un’unità USB), l’opzione per passare tra Xorg e Wayland potrebbe non essere disponibile.

In qualsiasi altra distribuzione, se utilizza una versione attuale di GNOME o KDE Plasma, ha l’opzione di utilizzare Wayland.

Prova Wayland in Fedora e Arch Linux

Fedora ha adottato completamente Wayland come server di visualizzazione predefinito per entrambi gli ambienti desktop GNOME e KDE Plasma. Se stai utilizzando una versione recente di Fedora, è probabile che tu sia già su Wayland. Il processo per controllare o passare tra Wayland e X11 è simile a Ubuntu. Semplicemente, esci, clicca sull’icona dell’ingranaggio nella schermata di accesso e scegli la sessione appropriata.

Su Arch Linux e per gli utenti GNOME, non è necessaria alcuna configurazione aggiuntiva oltre all’installazione dei pacchetti gnome e gnome-session, poiché il gestore di visualizzazione predefinito (GDM) supporta Wayland out of the box.

sudo pacman -S gnome gnome-session

Gli utenti di KDE Plasma dovrebbero installare i pacchetti plasma e plasma-workspace-wayland per abilitare il supporto a Wayland.

sudo pacman -S plasma plasma-workspace-wayland

In entrambi i casi, dovresti anche installare il pacchetto xorg-xwayland per garantire compatibilità con le applicazioni che si basano ancora su X11.

sudo pacman -S xorg-xwayland

Dopo aver installato i pacchetti necessari, seleziona la sessione Wayland dal menu di sessione del gestore di visualizzazione sulla schermata di accesso.

Per un supporto avanzato con le applicazioni Qt e GLFW, considera di installare qt5-wayland, qt6-wayland e glfw-wayland. Inoltre, se riscontri problemi nell’esecuzione di KDE su Wayland, puoi aprire la console di debug di KWin e diagnosticare problemi:

qdbus org.kde.KWin /KWin org.kde.KWin.showDebugConsole

Una volta che tutto è configurato, il tuo sistema dovrebbe essere pronto per funzionare su Wayland, con la possibilità di avviare applicazioni legacy X11.

Wayland vs. Xorg: Differenze Chiave

Wayland e Xorg (noto anche come X11) differiscono fondamentalmente sia nell’architettura che nella filosofia di design. Xorg, essendo il sistema più vecchio, utilizza un modello client-server in cui il server X gestisce input e output. Funziona come un intermediario tra applicazioni e hardware. Nel tempo, questo modello è diventato gonfio a causa di numerose estensioni e supporto legacy, portando a inefficienze di prestazioni e preoccupazioni sulla sicurezza – come la possibilità per le applicazioni di spiare gli input degli altri.

Al contrario, Wayland è progettato per essere più semplice e moderno. Elimina la necessità di un server di visualizzazione separato consentendo ai client (applicazioni) di comunicare direttamente con il compositore. Il compositore gestisce sia il rendering che la visualizzazione, il che porta a una maggiore sicurezza e prestazioni.

Un’altra chiave differenza è come ciascun sistema gestisce l’output e l’input grafico. Xorg si basa fortemente su gestori e compositori di finestre esterni come Compiz o Mutter. Wayland, d’altra parte, integra il compositore direttamente, riducendo la latenza e il tearing dello schermo.

Dovresti usare Wayland

Il supporto per Wayland è cresciuto costantemente. Ambienti desktop come Cinnamon, XFCE e MATE hanno iniziato ad aggiungere supporto a Wayland, e molti gestori di finestre leggeri offrono ora versioni compatibili con Wayland. Strumenti come Sway (per utenti i3), dwl (basato su dwm) e nuovi come Hyprland sono progettati specificamente per Wayland e portano funzionalità moderne come animazioni più fluide.

Tuttavia, Wayland non è perfetto. Alcuni strumenti familiari, come xkill, non funzionano a causa del modo diverso in cui Wayland gestisce le finestre. Ci sono anche bug o limitazioni occasionali a seconda dell’hardware e della configurazione software. Le applicazioni più vecchie che non sono state mantenute per anni potrebbero non funzionare bene senza Xorg.

Conclusione

Se la tua configurazione attuale funziona senza problemi, non c’è motivo urgente di cambiare – continua semplicemente a usare ciò che funziona. Ma se stai riscontrando problemi come il blocco o movimenti dello schermo a scatti, potrebbe valere la pena provare l’altro server di visualizzazione. A volte, uno semplicemente funziona meglio dell’altro, a seconda dell’hardware e dei driver. Se le cose non funzionano come previsto, cambiare sistema di visualizzazione potrebbe aiutare a risolvere il problema.