Linux, c'est juste le noyau
L’échange avec Vivian est parti d’un schéma de recrutement qui classait les profils sysadmin sur quatre “couches”, de l’OS de base jusqu’aux conteneurs. La critique du recrutement, je la lui accorde volontiers, elle tombe juste : beaucoup d’annonces disent “Linux” pour dire Debian plus systemd plus Docker et ne regardent jamais ce qu’il y a dessous. Mais pour bien ferrailler sur le sujet, il faut d’abord une pédanterie, celle qu’on me reproche gentiment et que j’assume : Linux, c’est juste le noyau.
La pédanterie utile
Linux, stricto sensu, c’est le noyau, le kernel et rien d’autre. Ce qu’on manipule au quotidien et qu’on appelle “une distribution Linux”, c’est le noyau empaqueté avec un espace utilisateur, le plus souvent celui du projet GNU, d’où le fameux GNU/Linux que Stallman nous rappelle à intervalles réguliers. Ce n’est pas un tic de puriste pour le plaisir de corriger : la distinction a des conséquences concrètes.
La preuve par l’absurde, c’est qu’une distribution peut fonctionner sans Linux. Debian, par exemple, a existé sous d’autres noyaux que Linux, avec Debian GNU/kFreeBSD (le noyau de FreeBSD) et Debian GNU/Hurd (le micro-noyau de GNU). Dans ces variantes, le noyau change, mais ce qui fait Debian reste identique : le système GNU au-dessus, le contrat social, le format de paquet, l’organisation de la distribution. Autrement dit, ce qu’on identifie comme “Debian” n’est justement pas le noyau, c’est tout le reste.
D’où l’intérêt d’un bon arbre des distributions, qui montre la généalogie réelle (qui dérive de quoi, Debian, Red Hat, Slackware, Arch et leurs enfants) plutôt qu’un classement par “niveau” qui ne veut pas dire grand-chose. Il en circule un sur Wikimedia, pas forcément à jour ni exhaustif, mais déjà plus cohérent que la plupart des schémas de recrutement.
Ce que les “couches” mesurent vraiment
Venons-en au fond, parce que la pédanterie n’était qu’un échauffement. Les quatre couches qu’on empile pour ranger les profils (l’OS de base, la distribution et son outillage, l’orchestration, les conteneurs) ne mesurent pas le système, elles mesurent la distribution. Elles décrivent à quel point vous connaissez tel écosystème (l’apt de Debian, le systemd d’un peu tout le monde, le Docker par-dessus) et c’est une information réelle, mais ce n’est pas ce que l’on croit classer quand on parle de maîtrise de Linux.
Parce que le dénominateur commun de tous ces systèmes, celui qu’on retrouve d’Alpine à Fedora en passant par Gentoo, c’est le noyau. Et c’est précisément la couche qu’on administre pour de vrai : on le configure, on le recompile quand il le faut, on le patche, on signe ses modules, on règle les sysctls. Ce travail-là ne dépend pas de la distribution, il passe intact d’Alpine à Fedora à Gentoo et c’est exactement pour cette raison que les quatre couches mesurent la distribution plutôt que le système.
Celui qui sait recompiler un noyau avec la bonne config, diagnostiquer un module qui refuse de se charger ou ajuster un sysctl pour tenir une charge réseau, emporte cette compétence partout, quel que soit le gestionnaire de paquets au-dessus. Celui qui ne connaît que l’apt et le systemctl de sa distribution favorite est, lui, réellement rangé dans une couche, mais ce n’est pas le système qu’il maîtrise, c’est un écosystème. La nuance n’est pas cosmétique, elle change ce qu’on évalue.
Au-dessus du noyau, encore moins une couche
Et tout ça, c’est avant même de parler d’Ansible, qui achève de faire exploser le classement en couches. Je le pilote depuis BSD et Linux vers des hôtes Windows (oui, sérieusement : WinRM, Kerberos, CredSSP, payloads PowerShell et toutes ces horreurs). Le jour où le même playbook pilote l’ensemble, du serveur Alpine au poste Windows, les quatre couches ne sont tout simplement plus ce qui définit le métier.
Parce que la compétence qui compte, à ce niveau, n’est plus “je connais telle distribution” mais “je sais amener un parc hétérogène vers un état désiré, de manière idempotente, quel que soit le système en face”. C’est une compétence transversale, qui se moque de savoir si la cible tourne sous Linux, sous BSD ou sous Windows et qui démontre à elle seule que les couches rangent l’outillage, pas le savoir-faire.
C’est pour ça que l’administration du noyau reste, pour moi, le vrai socle. On y descend quand il faut charger ou écrire un module (ce dont je parle dans les LKM ) et c’est aussi là, à la frontière entre l’espace utilisateur et le noyau, que se joue l’interface réelle du système, que je détaille dans les syscalls de Linux . Au-dessus de cette frontière, les distributions varient, l’outillage change de nom, mais le contrat reste le même.
Où atterrir
Je ne cherche pas à corriger tout le monde sur GNU/Linux et la provocation du schéma de départ était utile, je l’ai dit. Mais quand on veut classer des profils sysadmin, il faut savoir ce qu’on mesure : les couches habituelles disent à quel point vous êtes à l’aise dans un écosystème de distribution, ce qui est une vraie information, pas une compétence système. La compétence système se trouve plus bas, au noyau qu’on configure, recompile, patche et signe et plus haut, dans la capacité à conduire un parc hétérogène vers son état désiré. Entre les deux, il y a la distribution et c’est elle, pas le système, que les quatre couches rangent.