In Linux l'interfaccia utente grafica non fa parte del sistema operativo. L'interfaccia utente grafica presente sulla maggior parte dei desktop Linux è fornita da un software chiamato X Window System , che definisce un modo indipendente dal dispositivo di gestire schermi, tastiere e dispositivi di puntamento.
X Window definisce un protocollo di rete per la comunicazione e qualsiasi programma che sappia "parlare" questo protocollo può usarlo. V'è una libreria C chiamata Xlib che rende più facile da usare questo protocollo, in modo da Xlib è una specie di l' API GUI nativa. Xlib non è l'unico modo per accedere a un server X Window; c'è anche XCB .
Le librerie di toolkit come GTK + (usato da GNOME ) e Qt (usato da KDE ), costruite su Xlib, sono usate perché sono più facili da programmare. Ad esempio, offrono un aspetto coerente tra le applicazioni, semplificano l'utilizzo del trascinamento della selezione, forniscono componenti standard per un ambiente desktop moderno e così via.
Il modo in cui X disegna sullo schermo internamente dipende dall'implementazione. X.org ha una parte indipendente dal dispositivo e una parte dipendente dal dispositivo. Il primo gestisce le risorse dello schermo come Windows, mentre il secondo comunica con il driver della scheda grafica, generalmente un modulo del kernel. La comunicazione può avvenire tramite accesso diretto alla memoria o tramite chiamate di sistema al kernel. Il driver traduce i comandi in una forma comprensibile all'hardware sulla scheda.
A partire dal 2013, un nuovo sistema di finestre chiamato Wayland sta iniziando a diventare utilizzabile e molte distribuzioni hanno affermato che a un certo punto migreranno verso di esso, sebbene non ci sia ancora un programma chiaro. Questo sistema si basa sull'API OpenGL / ES, il che significa che in futuro OpenGL sarà l '"API GUI nativa" in Linux. Si sta lavorando per trasferire GTK + e QT su Wayland, in modo che le attuali applicazioni e sistemi desktop popolari necessitino di modifiche minime. Le applicazioni che non possono essere trasferite saranno supportate tramite un server X11, proprio come OS X supporta le app X11 tramite Xquartz. Il porto GTK + dovrebbe essere completato entro un anno , mentre Qt 5 ha già il supporto completo per Wayland.
Per complicare ulteriormente le cose, Ubuntu ha annunciato che stanno sviluppando un nuovo sistema chiamato Mir a causa dei problemi che percepiscono con Wayland. Questo sistema di finestre si basa anche sull'API OpenGL / ES.