Si vous êtes un utilisateur Linux depuis longtemps, vous saurez que les distributions Linux ont des versions uniques et que chaque version a un nom de code spécifique. Le noyau Linux a également différents numéros de version, qui agissent comme un identifiant pour la série à laquelle appartient le noyau. Cependant, il y a une différence entre la façon dont les versions du noyau ont été formées auparavant et la façon dont Linus Torvalds les nomme maintenant.

À la fin, vous serez plus familiarisé avec le schéma de gestion des versions du noyau Linux et vous vous sentirez plus à l'aise pour lire les numéros de version du noyau et identifier les différentes fonctionnalités associées à un version spécifique.

La version traditionnelle du noyau Linux

Lorsque Linus a commencé à développer le noyau, le système de gestion des versions utilisé consistait simplement en un schéma de variables incrémentielles commençant par zéro (0.x). Initialement, Linus était le seul à travailler sur le projet, et ce système de gestion des versions suffisait au besoin de documenter et de distribuer les nouvelles versions du noyau.

Voici quelques-unes des versions du noyau qui ont suivi ce schéma de nommage:

Crédit d'image: Wikipédia

Plus tard, à mesure que de plus en plus de développeurs ont commencé à contribuer au projet et que le nombre de révisions et de correctifs augmenté de manière significative, il a été décidé que ce schéma de version n'était pas adapté à des logiciels tels qu'un noyau. Et à partir de la version 1.0, Linus a adopté un nouveau schéma avec quelques variables supplémentaires.

Introduction d'un système de gestion des versions plus descriptif

En 1994, avec la sortie du noyau Linux 1.00, Linus a commencé à utiliser un nouveau système de gestion des versions qui employait trois variables dans la syntaxe: "abc". Ces variables (a, b et c) représentent respectivement la version majeure, la version mineure et le numéro de révision pour la version spécifique du noyau.

Prenons l'exemple du noyau Linux 1.1.95. Vous pouvez le décoder en tant que première version majeure, première version mineure et 95e révision.

À l'époque, même les numéros de version mineurs désignaient des versions stables du noyau, tandis que les numéros impairs représentaient des versions de développement. Il était important d'avoir des branches séparées pour que les développeurs puissent ajouter et tester de nouvelles fonctionnalités dans le noyau sans affecter la branche stable.

Les développeurs de noyau ajoutent et améliorent de nouvelles fonctionnalités dans la branche de développement jusqu'à ce qu'elle devienne suffisamment stable pour être publiée en tant que noyau LTS. Le noyau LTS 3.2 a été développé en stabilisant les nouvelles fonctionnalités de la version 3.1, et de même, un nouveau le noyau de développement 3.3 est dérivé du 3.2 pour faire place à de nouvelles fonctionnalités qui seraient ensuite introduites dans Linux 3.4.

À partir du noyau Linux 2.4, une quatrième variable dans le nom du noyau désignait les versions de correctifs. Vous pouvez dire que la version 2.4.37.10 est la dixième version de correctif pour le noyau 2.4.37.

Une version de correctif ne signifie pas le nombre de problèmes corrigés dans une version du noyau. Au lieu de cela, il compte le nombre de fois qu'un noyau mis à jour a été publié après avoir corrigé les problèmes trouvés.

Jusqu'à Linux 2.6, ce système de gestion des versions était utilisé et il était efficace pour distinguer une version spécifique des autres. L'ajout du nombre de révisions et des versions de correctifs dans le numéro de version était descriptif, mais cela signifiait avoir des versions de noyau plus longues et plus complexes. Et encore une fois, un nouveau et meilleur schéma était nécessaire.

Comment les versions du noyau Linux sont-elles nommées maintenant ?

Avec Linux version 3.0, Linus a supprimé la quatrième variable du numéro de version. Maintenant, la version du noyau est formée selon la syntaxe: abc, où a, b et c sont respectivement la version majeure, la version mineure et le nombre de révisions. Ce schéma de version est similaire à celui utilisé entre les versions de noyau 1.0 et 2.4.

En raison des progrès de systèmes de contrôle de version, les contributeurs pouvaient désormais travailler de manière transparente sur des branches stables et ajouter de nouvelles fonctionnalités sans interrompre accidentellement les versions stables déjà opérationnelles. Par conséquent, l'utilisation de numéros de version mineurs pairs et impairs pour les branches stables et de production du noyau est devenu superflu après l'introduction de la version 4.0 du noyau et de la première version LTS (4.1) en la 4.x série avait un numéro de version mineur impair.

Vous remarquerez peut-être également certains caractères à la fin du numéro de version, comme RCX. Les candidats à la révision (ou "rc" en abrégé) sont des versions de prévisualisation et des versions pré-correctives du noyau que les développeurs doivent corriger pour supprimer les bogues et autres problèmes. Celles-ci remplacent les versions de développement qui étaient auparavant désignées par un numéro de version mineure impair.

Bien que ces versions soient spécifiquement réservées aux développeurs du noyau afin qu'ils puissent résoudre les problèmes signalés et implémenter de nouvelles fonctionnalités, vous pouvez également téléchargez et testez ces candidats à la révision du noyau si vous le souhaitez, mais ce n'est généralement pas recommandé étant donné que c'est là que se déroule la majeure partie du développement arrive. La dernière version de prévisualisation du noyau au moment de la rédaction de cet article est 5.19-rc6.

Pour créer de nouvelles versions, la variable précédente est incrémentée lorsque la valeur d'une variable atteint un nombre spécifique. Par exemple, la version majeure est mise à jour au chiffre suivant chaque fois que le nombre de versions mineures approche de 20.

Linus mentionné dans son courrier de développement du noyau 5.0 qu'il a simplement mis à jour le nombre majeur à cinq parce que le nombre de versions mineures est devenu trop important pour compter sur les doigts et les orteils (20 !). De même, selon kernel.org, le numéro de version principal est incrémenté lorsque le numéro après le premier point commence à paraître "trop ​​gros". La version finale du noyau dans le 3.x la série était 3.19 et le dernier majeur 4.x la série du noyau était 4.20, qui a ensuite été augmentée à 5.0.

Depuis la version 3.0, le noyau Linux a suivi ce schéma de gestion des versions et il s'est avéré efficace aussi longtemps que trois versions majeures du noyau (versions 3.x, 4.x, et 5.x).

Identification d'une version du noyau Linux à l'aide des numéros de version

Compte tenu du grand nombre de versions du noyau Linux publiées, un système approprié est nécessaire pour identifier et différencier une version spécifique des autres. Avec le nouveau schéma de gestion des versions du noyau, les versions du noyau peuvent désormais être efficacement identifiées et comparées, et il est facile de savoir quelle version du noyau est la plus récente et laquelle a été publiée plus tôt.

Si vous souhaitez vérifier la version du noyau Linux actuellement installée sur votre système, vous pouvez le faire en utilisant uname, une commande Linux qui vous permet de répertorier les informations relatives au système. Selon la distribution que vous utilisez, le numéro de version affiché par uname peut être différent des versions réelles du noyau Linux.