Quando si parla di Linux e sistemi Unix-like, due nomi ricorrono spesso nelle discussioni tra appassionati e sviluppatori: X11 e Wayland. Sono i protagonisti di uno dei cambi di paradigma più importanti nel mondo del software libero, eppure per molti utenti rimangono concetti nebulosi. Cosa sono esattamente? A cosa servono? E perché è così difficile smettere di usare il vecchio in favore del nuovo?
Il ruolo del display server: cosa c’è sotto la finestra
Prima di parlare di X11 e Wayland bisogna capire cosa fa un display server. Quando apri un’applicazione sul tuo desktop Linux — un browser, un editor di testo, un terminale — qualcuno deve occuparsi di disegnare quella finestra sullo schermo, ricevere i tuoi click e i tuoi tasti, e coordinare le informazioni tra il kernel, la scheda grafica e le applicazioni stesse. Questo “qualcuno” è il display server, o più precisamente il windowing system.
Il display server funge da intermediario tra il software applicativo e l’hardware grafico. Senza di lui, ogni programma dovrebbe gestire direttamente il framebuffer della scheda video — un caos impraticabile. Grazie al display server, le applicazioni parlano un linguaggio standard e il sistema si occupa del resto.
X11: quarant’anni di storia sulle spalle
X Window System, la cui versione 11 è comunemente chiamata X11 o semplicemente X, nacque al MIT nel 1984 da un progetto chiamato Athena. L’implementazione di riferimento più usata oggi si chiama X.Org Server ed è diretta discendente del codice XFree86, che dominò la scena Linux negli anni Novanta e Duemila.
L’idea fondante di X era rivoluzionaria per l’epoca: separare completamente il display dall’applicazione, permettendo di eseguire programmi su una macchina remota e visualizzarne l’interfaccia grafica su un’altra, attraverso la rete. Questo modello client-server in cui il “client” è l’applicazione e il “server” è chi gestisce il display sembrava visionario nel 1984, quando le reti locali erano una novità.
X11 funziona attraverso un protocollo: le applicazioni comunicano con il server X inviando richieste per disegnare forme, testo, immagini. Il server le interpreta e le manda allo schermo. Nel mezzo si trovano i window manager — programmi separati che decidono dove posizionare le finestre, come decorarle, come gestire il focus — e i compositing manager, arrivati più tardi, che si occupano degli effetti visivi, della trasparenza e della sincronizzazione dei frame.
I limiti di X11: un’architettura che mostra l’età
Portare avanti quarant’anni di compatibilità ha un costo. X11 porta con sé scelte architetturali pensate per un mondo che non esiste più: macchine lente, reti lente, nessuna accelerazione GPU moderna, nessun touchscreen, nessun display ad alta densità di pixel.
Il problema più grave è la sicurezza. In X11 qualsiasi applicazione può, per impostazione predefinita, leggere l’input di un’altra finestra, registrare tasti premuti in background, fare screenshot di qualsiasi finestra sullo schermo. Questo perché il modello originale di X non prevedeva ambienti multi-utente in senso moderno né la minaccia di software malevolo.
Un altro limite è la latenza e il tearing. X11 nasce prima delle GPU moderne e non è stato progettato pensando alla sincronizzazione verticale e alla fluidità dei 60 o 120 frame al secondo. I compositing manager come Compiz o Mutter hanno tamponato il problema, ma aggiungendo uno strato di complessità su un’architettura già contorta.
Infine, il codice: X.Org è diventato nel tempo enormemente complesso, difficile da mantenere e da estendere. Molti sviluppatori lo descrivevano come un sistema che “nessuno capisce davvero più nella sua interezza”.
Wayland: ripartire da zero con idee chiare
Wayland non è un aggiornamento di X11: è una riprogettazione completa, nata nel 2008 da un gruppo di sviluppatori stanchi di rattoppare l’esistente. Il nome viene da Wayland, una città del Massachusetts vicino a dove lavorava Kristian Høgsberg, il principale autore iniziale del progetto.
L’idea centrale di Wayland è semplice e radicale: eliminare il display server come entità separata. In Wayland il compositor — il programma che compone l’immagine finale sullo schermo — è anche il server. Non c’è intermediario tra l’applicazione e chi disegna. Le applicazioni rendono i loro contenuti in un buffer di memoria, e il compositor li preleva e li assembla direttamente, sfruttando appieno la GPU tramite interfacce moderne come KMS/DRM.
Questo approccio porta vantaggi concreti: sicurezza migliore (le applicazioni non possono più spiare le altre), latenza ridotta, nessun tearing per costruzione, codice più pulito e mantenibile. Ogni applicazione vive nel proprio sandbox grafico.
Le differenze principali a confronto
La distinzione più importante è quella architetturale: X11 separa nettamente server, window manager e compositor in componenti distinti che comunicano attraverso un protocollo di rete; Wayland fonde queste responsabilità in un unico compositor, eliminando livelli di indirezione.
Sul piano della sicurezza il divario è significativo. In Wayland un’applicazione non può leggere l’input di un’altra, non può catturare lo schermo senza permesso esplicito dell’utente, non può iniettare eventi di tastiera o mouse in altri programmi. In X11 tutto questo è possibile di default, il che rende molto più difficile costruire un sistema davvero isolato.
Dal punto di vista delle prestazioni, Wayland riduce la latenza perché il percorso tra l’applicazione e il display è più corto. La sincronizzazione dei frame è gestita in modo nativo, il che si traduce in animazioni più fluide e assenza di artefatti visivi nei casi tipici.
Il tallone d’Achille di Wayland è la compatibilità. X11 ha quarant’anni di applicazioni, strumenti di accessibilità, software di cattura schermo, e ambienti di desktop costruiti sopra le sue API. Migrare tutto richiede tempo. Esiste uno strato di compatibilità chiamato XWayland che permette alle applicazioni X11 di girare sotto Wayland, ma non è sempre trasparente e in certi casi introduce problemi di scala o di input.
La transizione in corso: dove siamo oggi
L’ecosistema Linux si trova in una fase di transizione matura. GNOME ha scelto Wayland come sessione predefinita già dal 2017; KDE Plasma ha seguito a ruota con Plasma 6 nel 2024, rendendo Wayland il default anche lì. Distribuzioni come Fedora, Ubuntu e Arch Linux usano Wayland per impostazione predefinita su hardware supportato.
X11 non è morto e non lo sarà presto: server come X.Org ricevono ancora manutenzione, e alcune categorie di utenti — chi usa GPU NVIDIA con driver proprietari vecchi, chi ha bisogno di funzionalità di accessibilità non ancora portate, chi lavora con software CAD o professionale legacy — preferiscono o sono costretti a restare su X11.
La convivenza dei due sistemi, resa possibile da XWayland, è la norma attuale. Non si tratta di una battaglia con un vincitore assoluto, ma di una migrazione generazionale che il mondo open source sta gestendo con pragmatismo: tenere il vecchio abbastanza a lungo da non rompere niente, mentre il nuovo matura abbastanza da poter stare in piedi da solo.
Un’ultima riflessione
La storia di X11 e Wayland è in fondo la storia di qualsiasi grande infrastruttura software: nasce per risolvere un problema reale, funziona bene per decenni, accumula peso, e a un certo punto qualcuno deve avere il coraggio di ricominciare. Non perché il vecchio fosse sbagliato, ma perché il mondo intorno è cambiato abbastanza da rendere necessario un nuovo linguaggio con cui parlarci.
Il diagramma illustra bene il punto centrale: dove X11 richiede quattro componenti distinti che si parlano attraverso protocolli separati, Wayland collassa tutto in un unico blocco, rendendo il sistema più diretto, più sicuro e più facile da ottimizzare.