Cours Linux / Qu’est-ce que Linux ? Noyau, distributions et open source

Linux est, au sens strict, le noyau qui gère les ressources d’un ordinateur et permet aux programmes d’utiliser son matériel. Dans l’usage courant, « installer Linux » signifie installer une distribution : un système prêt à l’emploi qui réunit ce noyau, des outils, des logiciels et un dispositif de mises à jour.

Cette distinction explique pourquoi Ubuntu, Debian et Rocky Linux appartiennent à la même famille sans proposer exactement les mêmes commandes d’administration, logiciels par défaut ou politiques de maintenance. Pour débuter, il est utile de séparer trois notions : le noyau, les programmes qui s’appuient sur lui et la distribution qui organise l’ensemble.

À quoi sert le noyau Linux ?

Le noyau est une partie centrale du système d’exploitation. Il répartit le temps du processeur entre les programmes, gère la mémoire, fournit les interfaces des systèmes de fichiers et du réseau, et communique avec les périphériques à l’aide de pilotes. Un pilote est un composant qui permet au système de prendre en charge une catégorie de matériel ou un périphérique particulier.

Lorsqu’une application ouvre un fichier, elle demande au système de réaliser cette opération au moyen d’interfaces prévues à cet effet, souvent à travers une bibliothèque. Le noyau applique notamment les règles d’accès et travaille avec les couches de stockage concernées. Le programme ne doit donc pas réimplémenter lui-même chaque pilote de disque pour lire un document.

Le noyau ne comprend pas à lui seul tout ce que vous voyez à l’écran. Un navigateur, un serveur web, un terminal et un environnement de bureau sont des programmes distincts. La documentation du noyau Linux distingue notamment les interfaces destinées aux programmes des mécanismes internes utilisés pour développer le noyau et ses pilotes.

Distinguer matériel, noyau et espace utilisateur

L’espace utilisateur désigne l’environnement dans lequel s’exécutent les programmes ordinaires, séparément de l’exécution privilégiée du noyau. Il comprend des applications, des services, des bibliothèques et des outils comme le shell, c’est-à-dire l’interpréteur dans lequel vous saisissez des commandes.

Schéma des trois niveaux : le matériel, le noyau Linux qui gère les ressources, et les programmes de l’espace utilisateur qui utilisent ses fonctions

Le schéma présente une vue simplifiée. Il aide à distinguer les rôles ; il ne décrit pas toutes les étapes du démarrage, toutes les bibliothèques intermédiaires ou tous les mécanismes de protection.

Niveau Exemples Rôle à retenir
Matériel Processeur, mémoire, disque, carte réseau Fournir les ressources physiques
Noyau Linux Ordonnancement, gestion mémoire, pilotes, interfaces réseau Gérer les ressources et exposer les fonctions du système
Espace utilisateur Shell, gestionnaire de paquets, navigateur, serveur web Réaliser les tâches de l’utilisateur et les services du système

Beaucoup de distributions utilisent des composants du projet GNU, par exemple Bash et des utilitaires de ligne de commande. GNU et Linux sont toutefois des projets distincts, et tous les programmes d’un système Linux ne proviennent pas de GNU. Le projet GNU emploie le nom « GNU/Linux » pour souligner leur association ; sa FAQ sur GNU et Linux, en anglais explique cette position. Certains systèmes fondés sur le noyau Linux utilisent d’autres ensembles d’outils.

Qu’ajoute une distribution Linux ?

Une distribution sélectionne et assemble les composants nécessaires pour obtenir un système installable et maintenable. Elle fournit habituellement un installateur ou des images prêtes à démarrer, des dépôts de logiciels, un gestionnaire de paquets, des réglages par défaut, des mises à jour et une documentation. Un paquet rassemble un logiciel et les informations nécessaires à son installation et à son suivi ; un dépôt est une source organisée de ces paquets.

Ce travail d’intégration est important : télécharger uniquement le code du noyau ne vous donne pas automatiquement un bureau graphique, un navigateur, des comptes utilisateurs et un mécanisme de mise à jour opérationnels. La présentation officielle de Debian décrit ainsi un système complet, accompagné de logiciels, plutôt qu’un noyau isolé.

Deux distributions peuvent employer Linux tout en choisissant des formats de paquets, des outils d’administration et des calendriers de maintenance différents. Ubuntu utilise notamment l’écosystème de paquets Debian et APT ; Rocky Linux utilise des paquets RPM et DNF. Cela ne signifie pas que le rôle fondamental du noyau change, mais que la manière d’installer et d’entretenir les logiciels diffère.

La présence d’une interface graphique est également un choix d’installation et de logiciels. Un serveur sans bureau graphique reste un système Linux ; un ordinateur de bureau avec une interface graphique utilise toujours le noyau en arrière-plan. Pour choisir une distribution, examinez donc le matériel visé, les logiciels nécessaires, la documentation et la politique de support, plutôt que le seul nom du noyau.

Que signifie « open source » ?

Un logiciel open source est distribué sous une licence qui accorde des droits précis, notamment l’accès au code source et la possibilité de le modifier et de le redistribuer dans les conditions de cette licence. Le code source est la forme du programme destinée à être lue et modifiée par les développeurs.

Un code simplement visible n’est pas automatiquement open source : sa licence peut interdire la redistribution ou certains usages. La définition de l’Open Source Initiative fixe plusieurs critères qui vont au-delà de la seule consultation du code.

Open source ne signifie pas nécessairement gratuit. Une entreprise peut facturer une distribution, des services, une assistance ou une maintenance. Inversement, le téléchargement gratuit d’un logiciel ne vous donne pas forcément le droit de le modifier et de le redistribuer.

Les composants d’une distribution n’ont pas tous la même licence. Certains pilotes, micrologiciels ou logiciels ajoutés peuvent avoir des conditions différentes. Les possibilités de modification, de redistribution et les obligations associées se vérifient donc pour les composants concernés, et non à partir de la seule étiquette « Linux ».

Identifier le noyau et la distribution sur votre machine

Si vous disposez déjà d’une session Linux, ouvrez son application Terminal ou connectez-vous à sa console. Les commandes suivantes lisent des informations ; elles n’installent rien et ne demandent normalement pas de droits administrateur. Exécutez-les dans le système que vous voulez identifier : le terminal Windows et celui d’une machine virtuelle Linux ne décrivent pas nécessairement le même environnement.

Pour afficher la version du noyau en cours d’exécution :

uname -r

Le résultat est une chaîne de version qui peut comporter des suffixes propres à la distribution. Il identifie le noyau actif ; il ne donne pas à lui seul le nom et la version de la distribution. Deux installations peuvent partager une famille de noyau tout en ayant des logiciels et des politiques de support différents.

Pour lire l’identification fournie par une distribution qui utilise le format os-release :

cat /etc/os-release
  • PRETTY_NAME fournit un nom lisible destiné à l’affichage.
  • ID est un identifiant de distribution adapté à un traitement automatisé.
  • VERSION_ID indique sa version lorsqu’elle est définie ; ce champ n’est pas obligatoire.

Ne confondez pas la version indiquée dans os-release avec celle affichée par uname. La première décrit l’environnement de distribution ; la seconde décrit le noyau en cours d’exécution. Un noyau plus récent installé sur une distribution ne transforme pas automatiquement celle-ci en une autre distribution.

Selon la spécification officielle d’os-release, /etc/os-release a priorité sur /usr/lib/os-release. Si le premier fichier n’existe pas, vous pouvez lire le second ; ne fusionnez pas leurs contenus pour inventer une identification. Dans un environnement minimal ou particulier, les deux peuvent être absents. Un message d’erreur de cat n’établit donc pas, à lui seul, que le noyau n’est pas Linux.

Dans un conteneur, comme l’explique la distinction entre conteneurs et machines virtuelles dans la documentation Docker, ces deux informations peuvent aussi désigner des niveaux différents : l’environnement utilisateur du conteneur et le noyau fourni par son hôte. Dans une machine virtuelle, le système invité dispose de son propre noyau. Commencez toujours par préciser où vous avez ouvert le terminal avant de comparer les résultats.

Ce qu’il faut comprendre avant de commencer

Retenez la relation entre les composants : le matériel fournit des ressources, le noyau Linux les gère et les programmes utilisent les fonctions du système pour accomplir leurs tâches. Une distribution assemble ces éléments et organise leur installation et leur maintenance. L’open source concerne les droits accordés par les licences, et non une apparence particulière ou l’absence de prix.

Pour approfondir le contexte de ces projets, l’histoire d’Unix, GNU et Linux distingue leurs origines et leurs contributions. Lors de vos premiers essais, savoir identifier la distribution et le noyau vous permettra surtout de choisir la bonne documentation et d’éviter d’appliquer une commande d’administration prévue pour une autre famille de systèmes.