Cos’è Wayland su Linux e in cosa è diverso da X?

Cos’è Wayland su Linux e in cosa è diverso da X?

X11, o X Window System, consente al tuo ambiente desktop grafico di visualizzare e controllare le finestre. Wayland è un sostituto di X11. È progettato per essere più veloce e più sicuro. Ecco cosa devi sapere su di loro.

Cos’è Wayland?

Wayland è un moderno sostituto di X11, che è stato per decenni il sistema di finestre predefinito su Linux. Wayland è un protocollo di comunicazione e definisce la messaggistica tra un server di visualizzazione X Window e le applicazioni client. Il progetto Wayland fornisce librerie client e server che consentono alle applicazioni di utilizzare il protocollo.

Il progetto Wayland è stato avviato da uno sviluppatore Red Hat nel 2008.

I molti nomi di X

X Window System è un sistema a finestre, rilasciato per la prima volta per Unix operante dal Massachusetts Institute of Technology nel 1984. Le applicazioni possono basarsi sulla funzionalità offerta dal sistema a finestre per generare interfacce utente.

Nel 1987 il sistema X Window aveva raggiunto la versione 11 e divenne noto come X11. Ora è gestito dalla X.Org Foundation . È ancora alla versione 11, anche se ci sono state molte versioni minori dal 1987. Al momento della stesura, l’attuale versione stabile è X11R7.7 .

La “X” nel nome non significa dieci in numeri romani, né implica “Xtra”, “Xtended” o qualcosa del genere. Un precedente sistema di finestre era chiamato “W”, per “finestre”, e si spostavano semplicemente alla lettera successiva dell’alfabeto quando iniziarono il nuovo progetto.

Sentirai il sistema X Window denominato “X”, “X11”, “Xorg”, “X Windows” e “X Window System”.

Come funziona X11

Il sistema X Window gestisce eventi e primitive di basso livello, come l’interazione con il mouse e il disegno e lo spostamento di finestre. Le applicazioni gestiscono la grafica e il design dell’interfaccia. L’aspetto delle finestre, quali pulsanti hanno e dove si trovano questi pulsanti, sono scelte che fa il programmatore dell’applicazione. Il sistema X Window disegna il disegno risultante sullo schermo.

X11 fornisce una definizione per la comunicazione che deve passare tra i vari componenti di un sistema X Window funzionante. Questa comunicazione è necessaria perché il codice utilizzato da un’applicazione abilitata per X per disegnare le finestre e gli elementi dell’interfaccia non si trova all’interno dell’applicazione. Quel lavoro è condiviso tra un server X e il Window Manager.

Le applicazioni sono client del server X. Il Window Manager è un tipo speciale di client. Il server X è responsabile della gestione delle risorse, dell’esecuzione delle richieste di disegno e del marshalling di eventi come pressioni di tasti e clic del mouse alle applicazioni appropriate.

Funge anche da intermediario nella comunicazione tra il Window Manager e le applicazioni, scambiando messaggi avanti e indietro tra di loro. Il Window Manager mantiene un elenco delle finestre che le applicazioni hanno aperto, dove si trovano sullo schermo, che dimensioni hanno, se sono sovrapposte e così via.

Un Window Manager di compositing mantiene un buffer fuori schermo per ogni finestra. Combina questi buffer in una singola immagine che rappresenta la finestra più in alto, che rappresenta l’intero desktop, che viene scritta sullo schermo.

Tutti i moderni ambienti desktop grafici , inclusi GNOME e KDE, utilizzano i gestori di finestre di compositing.

Come funziona Wayland

Wayland ha lo scopo di risolvere i problemi di X11. L’architettura X11 richiede molti messaggi. Il server X si trova tra i client e il Window Manager. Si trova anche tra tutto e, tramite il kernel , l’ hardware grafico . Il volume dei messaggi può portare a latenza e a un’esperienza visiva lenta e nervosa.

C’è anche una grande base di codice. C’è l’applicazione server, l’applicazione Window Manager e la libreria X11 utilizzata dai client. Più grande (e vecchia) è la tua base di codice, più difficile è mantenerla e più farai fatica con il codice legacy.

Modificando l’architettura, Wayland ha modernizzato e semplificato la base di codice, offrendo vantaggi in termini di prestazioni e maggiore sicurezza.

In effetti, hanno unito il server e il gestore delle finestre in un’unica applicazione. Hanno rimosso qualsiasi codice che eseguiva funzioni che ora vengono eseguite dal kernel. Invece di replicare lo sforzo, hanno sfruttato la funzionalità del kernel.

Con Wayland, il compositore e l’applicazione client comunicano direttamente. Il compositore mantiene la sua mappatura interna di quali finestre si trovano sul desktop e in quale dimensione e stato si trovano. Intermedia gli eventi di modifica di tastiera, mouse e finestra e li invia alle applicazioni che possiedono quelle finestre.

Le applicazioni aggiornano l’interfaccia utente di conseguenza. Una delle principali differenze è che il rendering viene eseguito all’interno delle applicazioni stesse, utilizzando le librerie Wayland collegate.

L’applicazione aggiorna il buffer utilizzato per contenere la finestra oppure ne crea uno nuovo e scarta quello vecchio. L’applicazione client invia quindi una notifica al compositore, dicendogli di aggiornare la sua mappatura delle finestre e di utilizzare il buffer video nuovo o aggiornato.

Questa architettura semplificata e il moderno design del codice offrono miglioramenti delle prestazioni, con il ridimensionamento e il trascinamento delle finestre in particolare, che appaiono fluidi e fluidi.

Adozione lenta di Wayland da parte delle applicazioni

Wayland è il sistema di finestre predefinito in Debian 10 e versioni successive, Fedora 34 o versioni successive, Ubuntu 18.04 o versioni successive e altre distribuzioni come Arch Linux. Nonostante ciò, il più delle volte Wayland esegue applicazioni X11.

Esiste un livello di compatibilità chiamato XWayland che consente alle applicazioni X11 di funzionare con Wayland. Ciò era necessario perché la maggior parte delle applicazioni X11 non è stata modificata e trasferita su Wayland.

Negli ambienti desktop che forniscono compositori Wayland, come GNOME, applicazioni ufficiali come GNOME Text Editor e Maps, Files e Calendar sono tutte applicazioni native Wayland. Ma la stragrande maggioranza delle applicazioni X11 sono ancora intatte, applicazioni X11 native.

È probabile che alcuni autori di applicazioni X11 sperino che la loro applicazione funzioni bene con XWayland e possano evitare di doverli rielaborare nelle applicazioni Wayland. Non sorprenderti se l’adozione e la migrazione a Wayland è lunga e lenta, con nuove applicazioni che lo adottano ma la maggior parte delle applicazioni X11 esistenti rimane così com’è, riponendo le proprie speranze su XWayland.

Stai usando Wayland o X11?

Se stai utilizzando una delle principali distribuzioni Linux, è probabile che tu stia già utilizzando Wayland. Puoi controllare emettendo il seguente comando.

echo $XDG_SESSION_TYPE

Su un sistema che utilizza Wayland, l’output sarà:

E su un sistema che esegue il sistema X Window, vedrai:

Raramente, la XDG_SESSION_TYPEvariabile di ambiente non è impostata. In tal caso puoi invece utilizzare questo comando:

loginctl show-session $(loginctl show-user $(whoami) -p Display --value) -p Type --value

loginctlIl comando inner, nidificato usa il show-usercomando per mostrare le proprietà dell’utente denominato. Il whoamicomando ci fornisce il nome dell’utente corrente . L’ -popzione (proprietà) limita l’output di loginctlalle informazioni sull’impostazione “Display” e usiamo l’ --valueopzione per restituire solo il valore. Non vogliamo avere la stringa “Display=” nella risposta da loginctl. Tutto ciò ci fornisce un ID di sessione.

Passiamo l’ID di sessione all’outer loginctle utilizziamo il show-sessioncomando per visualizzare gli attributi della sessione. Utilizziamo l’ -popzione (property) per limitare l’output alle informazioni sul tipo di sessione e utilizziamo l’ --valueopzione per mostrare il valore senza l’etichetta “Type=”.

Su un computer che utilizza Wayland, vedrai:

Utilizzando il comando loginctl su Fedora Linux, per determinare se Wayland o X11 è in uso

Se stai utilizzando il sistema X Window, vedrai:

Utilizzando il comando loginctl su Manjaro inux, per determinare se Wayland o X11 è in uso

Dovresti usare Wayland o X11?

A meno che tu non abbia problemi, puoi anche attenersi a ciò che stai già utilizzando. Ma se noti instabilità o aggiornamenti dello schermo a scatti, puoi provare a passare a quello che non stai utilizzando.

Su GNOME, se vuoi cambiare sistema e provare l’altro sistema, nella schermata di accesso fai clic sul tuo nome utente, quindi fai clic sull’icona della ruota dentata nell’angolo in basso a destra del display.

Il menu a discesa in GNOME che consente di scegliere un'esperienza desktop basata su Wayland o X11

Un menu ti offrirà diverse versioni di GNOME. Le opzioni che menzionano “Xorg” usano il sistema X Window e quelle che non usano Wayland.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *