Unter Linux ist die grafische Benutzeroberfläche nicht Teil des Betriebssystems. Die grafische Benutzeroberfläche der meisten Linux-Desktops wird von der Software X Window System bereitgestellt , die eine geräteunabhängige Methode für den Umgang mit Bildschirmen, Tastaturen und Zeigergeräten definiert.
X Window definiert ein Netzwerkprotokoll für die Kommunikation, und jedes Programm, das dieses Protokoll "sprechen" kann, kann es verwenden. Es ist eine C - Bibliothek namens Xlib , die es einfacher zu verwenden dieses Protokoll macht, so Xlib Art ist der nativen GUI - API. Xlib ist nicht die einzige Möglichkeit, auf einen X Window-Server zuzugreifen. Es gibt auch XCB .
Toolkit-Bibliotheken wie GTK + (von GNOME verwendet ) und Qt (von KDE verwendet ), die auf Xlib basieren, werden verwendet, weil sie einfacher zu programmieren sind. Sie bieten beispielsweise ein einheitliches Erscheinungsbild für alle Anwendungen, vereinfachen die Verwendung von Drag & Drop, stellen Standardkomponenten für eine moderne Desktop-Umgebung bereit und so weiter.
Wie X intern auf dem Bildschirm zeichnet, hängt von der Implementierung ab. X.org hat einen geräteunabhängigen Teil und einen geräteabhängigen Teil. Ersteres verwaltet Bildschirmressourcen wie Windows, während letzteres mit dem Grafikkartentreiber kommuniziert, normalerweise einem Kernelmodul. Die Kommunikation kann über direkten Speicherzugriff oder über Systemaufrufe an den Kernel erfolgen. Der Treiber übersetzt die Befehle in eine Form, die die Hardware auf der Karte versteht.
Ab 2013 heißt ein neues Fenstersystem Wayland nutzbar, und viele Distributionen haben angekündigt, dass sie irgendwann darauf migrieren werden, obwohl es noch keinen klaren Zeitplan gibt. Dieses System basiert auf der OpenGL / ES-API, was bedeutet, dass OpenGL in Zukunft die "native GUI-API" unter Linux sein wird. Es wird daran gearbeitet, GTK + und QT nach Wayland zu portieren, sodass die derzeit gängigen Anwendungen und Desktop-Systeme nur minimale Änderungen benötigen. Die Anwendungen, die nicht portiert werden können, werden über einen X11-Server unterstützt, ähnlich wie OS X X11-Apps über Xquartz unterstützt. Der GTK + -Port wird voraussichtlich innerhalb eines Jahres fertiggestellt sein , während Qt 5 bereits vollständige Wayland-Unterstützung bietet.
Um die Sache noch komplizierter zu machen, hat Ubuntu angekündigt, ein neues System namens Mir zu entwickeln, da sie Probleme mit Wayland haben. Dieses Fenstersystem basiert ebenfalls auf der OpenGL / ES-API.