Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Pile graphique GNU Linux

La pile graphique de GNU/Linux

par Jiel

Cette documentation a pour but de présenter les composants logiciels qui permettent d'afficher des choses à l'écran sous GNU/Linux : c'est ce que l'on appelle la pile graphique.


Dans les systèmes d’exploitation de type Unix, l’affichage graphique est assuré par un serveur X, qui suit le protocole X11. Le serveur X présent sous les distributions GNU/Linux s'appelle X.Org. C'est l'élement majeur, central, qui permet l'affichage. Pour la petite histoire, X.Org est un fork de XFree86, utilisé jusque 2004.

Traditionnellement, un logiciel appelé gestionnaire de fenêtre communique avec X.Org et se charge de l'affichage et du placement des fenêtres d'applications (Firefox, LibreOffice) à l'écran. Il en existe de très nombreux sous GNU/Linux.

Au plus haut niveau, les développeurs d'applications ont utilisé des bibliothèques logicielles pour « dessiner » leurs applications, les rendre plus ergonomiques, créer des menus etc. Sous GNU/Linux ces bibliothèques sont généralement installées par défaut ou en dépendance des applications. Il s'agit en particulier de GTK+, Qt, wxWidgets.


Au fil du temps, de nombreuses choses sont venues compléter X.Org. Il s'agit par exemple de XRender qui gère la transparence ou XRandR qui gère les paramètres d'affichage des écrans. X.Org s'appuie aussi sur de nombreuses bibliothèques : Mesa 3D (OpenGL, OpenCL), Cairo (manipulation d'images vectorielles), FreeType et Pango (rendu de polices de caractères)...

Des gestionnaires de fenêtres appelés compositeurs tels que Compiz, Kwin (KDE) ou Mutter (GNOME) sont également venus compléter X.org pour réaliser des effets graphiques avancés comme la transparence, des effets 3D et d'ombres etc.

La communauté GNU/Linux souhaite à moyen terme remplacer X.Org par un protocole d'affichage plus moderne : Wayland. Ubuntu développe parallèlement son propre serveur, Mir.

Pile graphique.jpg

À bas niveau, le noyau Linux se charge aussi d'une partie du travail de l'affichage graphique, en particulier grâce à Kernel-based mode-setting (KMS). Le noyau s'appuie aussi Video4Linux (V4L), qui se charge de la vidéo, evdev qui gère les périphériques d'entrée tels que les claviers et les souris, Graphics Execution Manager (GEM), qui gère la mémoire des processeurs graphiques.

Tous ces composants systèmes doivent fonctionner avec un pilote, spécifique à chaque carte graphique. En effet, au niveau du matériel, c'est la carte graphique qui va produire l'image affichable sur un écran. Le processeur graphique de la carte, souvent appelé GPU (pour Graphical Processing Unit), va servir à libérer le micro-processeur de la carte mère en prenant en charge certains calculs, notamment ceux spécifiques à l’affichage et la coordination de graphismes.

Aujourd'hui, DRI2 (pour Direct Rendering Interface) permet aux applications Mesa 3D d'accéder directement au processeur graphique sans passer par un serveur X. Côté noyau, cela est géré par le pilote noyau DRM (Direct Rendering Manager) spécifique à chaque matériel.

AMD-Radeon-HD-7870.png Une carte AMD Radeon HD 7870.

Les principaux constructeurs de cartes graphiques sont AMD/ATI, Nvidia et Intel. Il existe des pilotes libres pour ces cartes, notamment via le projet Nouveau (Nvidia) et le projet radeon (AMD). La plupart de ces pilotes sont disponibles directement dans le noyau sans nécessiter d'installation complémentaire, cependant pour certaines fonctionnalités (par exemple : accélération 3D), il faudra parfois installer un pilote à part, éventuellement non libre.



@ Retour à la rubrique Environnement graphique


Copyright

© 2014 Jiel Beaumadier

Tête de GNU Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la GNU Free Documentation License, Version 1.2 ou n'importe quelle version ultérieure publiée par la Free Software Foundation; sans section invariante, sans page de garde, sans entête et sans page finale. Pour plus d'informations consulter le site de l'APRIL.
Affichages
Outils personnels

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons CC-BY-SA