In Linux l'interfaccia utente grafica non fa parte del sistema operativo. L'interfaccia utente grafica che si trova 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. Esiste una libreria C chiamata Xlib che semplifica l'utilizzo di questo protocollo, quindi Xlib è una specie di il API GUI nativa. Xlib non è l'unico modo per accedere a un server X Window; c'è anche XCB.
Librerie di toolkit come GTK+ (usate da GNOME) e Qt (usate da KDE), costruite su Xlib, sono usate perché sono più facili da programmare. Ad esempio, ti danno 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 internamente sullo schermo 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, solitamente 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 per l'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 ad esso, sebbene non ci sia ancora un programma chiaro. Questo sistema è basato sull'API OpenGL/ES, il che significa che in futuro OpenGL sarà l'"API GUI nativa" in Linux. Si sta lavorando per portare GTK + e QT su Wayland, in modo che le applicazioni e i sistemi desktop attualmente 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 porting GTK+ dovrebbe essere completato entro un anno, mentre Qt 5 ha già il supporto completo di 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. Anche questo sistema di finestre si basa sull'API OpenGL/ES.
Linux è un kernel, non un sistema operativo completo. Esistono diversi sistemi di finestre e gui che girano su Linux per fornire finestre. In genere X11 è il sistema a finestre utilizzato dalle distribuzioni Linux.
Vale la pena menzionare anche Wayland, in quanto viene principalmente definito un "futuro killer X11".
Tieni inoltre presente che Android e alcuni altri sistemi operativi mobili non includono X11 sebbene abbiano un kernel Linux, quindi in questo senso X11 non è nativo di tutti i sistemi Linux.
Essere multipiattaforma non ha nulla a che fare con l'essere nativo. Cocoa è stato anche portato su altre piattaforme tramite GNUStep, ma è ancora nativo di OS X / macOS.