Bei Linux ist die grafische Benutzeroberfläche nicht Teil des Betriebssystems. Die grafische Benutzeroberfläche, die auf den meisten Linux-Desktops zu finden ist, wird von einer Software namens X Window System die einen geräteunabhängigen Umgang mit Bildschirmen, Tastaturen und Zeigern definiert.
X Window definiert ein Netzwerkprotokoll für die Kommunikation, und jedes Programm, das weiß, wie man dieses Protokoll "spricht", kann es verwenden. Es gibt eine C-Bibliothek namens Xlib die die Verwendung dieses Protokolls erleichtert, so dass Xlib eine Art die native GUI-API. Xlib ist nicht die einzige Möglichkeit, auf einen X Window Server zuzugreifen; es gibt auch XCB .
Toolkit-Bibliotheken wie z.B. GTK+ (verwendet von GNOME ) und Qt (verwendet von KDE ), die auf der Xlib aufbauen, werden verwendet, weil sie einfacher zu programmieren sind. Sie sorgen beispielsweise für ein einheitliches Erscheinungsbild in allen Anwendungen, erleichtern die Verwendung von Drag-and-Drop, bieten Standardkomponenten für eine moderne Desktop-Umgebung und so weiter.
Wie X intern auf dem Bildschirm gezeichnet wird, hängt von der Implementierung ab. X.org hat einen geräteunabhängigen Teil und einen geräteabhängigen Teil. Ersterer verwaltet Bildschirmressourcen wie Windows, während letzterer mit dem Grafikkartentreiber kommuniziert, in der Regel ein Kernelmodul. Die Kommunikation kann erfolgen über direkter Speicherzugriff oder durch Systemaufrufe zum Kernel. Der Treiber übersetzt die Befehle in eine Form, die von der Hardware auf der Karte verstanden wird.
Ab 2013 wird ein neues Fenstersystem namens Wayland wird allmählich brauchbar, und viele Distributionen haben angekündigt, dass sie irgendwann darauf migrieren werden, obwohl es noch keinen klaren Zeitplan gibt. Dieses System basiert auf OpenGL/ES API, was bedeutet, dass OpenGL in Zukunft die "native GUI API" in Linux sein wird. Es wird daran gearbeitet, GTK+ und QT auf Wayland zu portieren, so dass aktuelle populäre Anwendungen und Desktop-Systeme nur minimale Änderungen benötigen würden. Die Anwendungen, die nicht portiert werden können, werden durch einen X11-Server unterstützt, ähnlich wie OS X X X11-Anwendungen durch Xquartz unterstützt. Die GTK+-Portierung ist wird voraussichtlich innerhalb eines Jahres abgeschlossen sein , während Qt 5 bereits vollständige Wayland-Unterstützung bietet.
Um die Sache weiter zu verkomplizieren, hat Ubuntu angekündigt, ein neues System namens Mir wegen der Probleme, die sie mit Wayland sehen. Dieses Fenstersystem basiert ebenfalls auf der OpenGL/ES-API.