Les distributions GNU/Linux et leur organisation

Boîtier d'ordinateur ouvert

Une distribution GNU/Linux assemble en un ensemble installable le noyau Linux, les outils du projet GNU, un système d'initialisation, un gestionnaire de paquets, un ou plusieurs environnements de bureau et plusieurs milliers de programmes compilés pour une architecture donnée. Le noyau seul ne suffit pas à faire un système utilisable : il faut une bibliothèque C, un chargeur de démarrage, des pilotes, un interpréteur de commandes et des programmes d'administration. Le travail d'une équipe de distribution consiste à choisir les versions de ces composants, à vérifier qu'elles fonctionnent ensemble, à appliquer des correctifs de sécurité et à les diffuser sous une forme que l'utilisateur peut installer sans compiler quoi que ce soit. C'est ce travail d'intégration, et non le développement du noyau, qui différencie les distributions entre elles.

Les grandes familles

Trois lignées couvrent la plus grande partie des installations. La lignée Debian regroupe Debian elle-même, Ubuntu qui en dérive, et un grand nombre de systèmes construits à partir d'Ubuntu, dont Linux Mint. La lignée Red Hat comprend Red Hat Enterprise Linux, Fedora qui sert de terrain d'essai aux technologies reprises ensuite, et les reconstructions compatibles comme Rocky Linux et AlmaLinux. La lignée Arch et SUSE forme un troisième ensemble, plus restreint, où Arch Linux laisse l'installation entièrement à la charge de l'utilisateur et openSUSE propose un outil d'administration centralisé. Une distribution dérivée hérite du format de paquets, des dépôts et souvent du calendrier de son ascendante, ce qui explique que la documentation d'une distribution s'applique fréquemment à ses descendantes.

Gestionnaires de paquets et dépôts

Le gestionnaire de paquets installe, met à jour et supprime les programmes en résolvant leurs dépendances. Les systèmes de la lignée Debian utilisent le format deb avec les outils dpkg et apt, ceux de la lignée Red Hat le format rpm avec dnf. Les paquets sont signés cryptographiquement et distribués par des dépôts, serveurs dont la liste figure dans la configuration du système. Une commande de mise à jour interroge ces dépôts, compare les versions installées et télécharge ce qui a changé, y compris pour les bibliothèques partagées par plusieurs programmes. Des formats transversaux se sont ajoutés depuis, Flatpak, Snap et AppImage, qui embarquent leurs dépendances et s'installent indépendamment de la distribution, au prix d'un espace disque plus important.

Cycles de publication

Deux rythmes de publication s'opposent. La publication par versions figées fixe un jeu de composants pour plusieurs années et n'y applique ensuite que des correctifs de sécurité : Debian stable et Red Hat Enterprise Linux fonctionnent ainsi, avec un support qui se compte en années. La publication continue met à jour chaque composant dès qu'une nouvelle version est jugée prête, sans numéro de version du système : Arch Linux et openSUSE Tumbleweed suivent ce modèle. Ubuntu occupe une position intermédiaire avec une publication tous les six mois et une version à support étendu tous les deux ans.

Environnements de bureau

L'interface graphique n'est pas liée à la distribution et peut être changée après l'installation. GNOME et KDE Plasma sont les deux environnements complets les plus répandus, chacun avec son jeu d'applications et ses conventions d'interface. Xfce, LXQt et MATE demandent moins de mémoire et sont retenus sur les machines anciennes. Le serveur d'affichage évolue par ailleurs de X.Org vers Wayland, transition qui explique certaines différences de comportement entre deux installations par ailleurs identiques.

Usage sur serveur

Sur les serveurs, les distributions à versions figées dominent, pour une raison simple : l'exploitant veut que le comportement du système reste identique pendant toute la durée de vie de l'application qu'il héberge. Debian, Ubuntu à support étendu et les reconstructions de Red Hat Enterprise Linux y sont les plus courantes. Les images de conteneurs reprennent les mêmes bases, souvent dans des variantes réduites comme Alpine Linux, qui remplace la bibliothèque C habituelle par une implémentation plus petite.