Sous Linux, l'interface utilisateur graphique ne fait pas partie du système d'exploitation. L'interface utilisateur graphique présente sur la plupart des ordinateurs de bureau Linux est fournie par un logiciel appelé le système X Window , qui définit une manière indépendante de l'appareil de gérer les écrans, les claviers et les appareils pointeurs.
X Window définit un protocole réseau pour la communication, et tout programme qui sait "parler" ce protocole peut l'utiliser. Il y a une bibliothèque C appelée Xlib qui le rend plus facile à utiliser ce protocole, donc Xlib est une sorte de l' API graphique native. Xlib n'est pas le seul moyen d'accéder à un serveur X Window; il y a aussi XCB .
Les bibliothèques de boîtes à outils telles que GTK + (utilisées par GNOME ) et Qt (utilisées par KDE ), construites sur Xlib, sont utilisées car elles sont plus faciles à programmer. Par exemple, ils vous donnent une apparence cohérente dans toutes les applications, facilitent l'utilisation du glisser-déposer, fournissent des composants standard à un environnement de bureau moderne, etc.
La façon dont X dessine sur l'écran en interne dépend de l'implémentation. X.org a une partie indépendante du périphérique et une partie dépendante du périphérique. Le premier gère les ressources d'écran telles que Windows, tandis que le second communique avec le pilote de la carte graphique, généralement un module noyau. La communication peut se produire via un accès direct à la mémoire ou via des appels système au noyau. Le pilote traduit les commandes sous une forme que le matériel de la carte comprend.
À partir de 2013, un nouveau système de fenêtres appelé Wayland commence à devenir utilisable, et de nombreuses distributions ont déclaré qu'elles y migreraient à un moment donné, bien qu'il n'y ait toujours pas de calendrier clair. Ce système est basé sur OpenGL / ES API, ce qui signifie qu'à l'avenir OpenGL sera "l'API GUI native" sous Linux. Des travaux sont en cours pour porter GTK + et QT vers Wayland, de sorte que les applications et les systèmes de bureau courants n'auraient besoin que de modifications minimes. Les applications qui ne peuvent pas être portées seront prises en charge via un serveur X11, tout comme OS X prend en charge les applications X11 via Xquartz. Le port GTK + devrait être terminé d'ici un an , tandis que Qt 5 dispose déjà d'une prise en charge complète de Wayland.
Pour compliquer encore les choses, Ubuntu a annoncé qu'ils développaient un nouveau système appelé Mir en raison de problèmes qu'ils perçoivent avec Wayland. Ce système de fenêtres est également basé sur l'API OpenGL / ES.