Le terme "pilote graphique" est utilisé pour désigner plusieurs choses différentes. L'un d'eux est un pilote de noyau. Le pilote du noyau définit principalement le mode vidéo et facilite le transfert de données vers / depuis la carte. Il télécharge également généralement le firmware dans le GPU de la carte. Le firmware est un programme que le GPU exécute lui-même, mais malheureusement, les fournisseurs de graphiques ne le fournissent que sous la forme d'un blob binaire, vous ne pouvez donc pas consulter son code source.
Au-dessus de cela, vous avez généralement Xorg en cours d'exécution, qui a son propre pilote qui traduit les appels de dessin génériques X11 ou OpenGL en commandes que la carte comprend, et les envoie à la carte pour les exécuter. Il peut également effectuer une partie du travail lui-même en fonction des commandes que le GPU prend en charge et ne prend pas en charge. Dans le cas des appels OpenGL, l'infrastructure de rendu direct permet à cette partie du pilote de s'exécuter directement dans l'application client plutôt que sur le serveur X, afin d'obtenir des performances acceptables. Il permet également au pilote de l'application client d'envoyer ses commandes directement au processeur graphique, grâce à la coordination et à l'aide de Xorg et du pilote du noyau au démarrage.
Wayland et Mir sont censés remplacer Xorg en tant que type de serveur d'affichage simplifié.
Unity est à la fois un shell (fournit un bureau / lanceur) et un gestionnaire de fenêtres de composition en un.
GNOME et KDE sont des environnements de bureau. Ce sont de grands projets composés de nombreux composants. Le noyau d'entre eux sont leurs kits d'outils d'application respectifs, qui sont GTK pour GNOME et Qt pour KDE. Il s'agit d'un cadre de bibliothèque avec lequel une application est écrite et fournit la base sur laquelle tout le reste est construit. Certains des services de base qu'ils fournissent sont la gestion des événements et des objets, Windows, les fonctions de dessin de base, les E / S et bien plus encore.