En général, les bases de code, surtout pour les gros projets comme Linux, augmentent au fil des versions pour intégrer de nouvelles fonctionnalités et améliorations pour une meilleure expérience pour les utilisateurs et développeurs. Mais parfois, on laisse derrière des codes superflus qui augmentent inutilement la taille de la base de code, un problème auquel le projet Linux a décidé de s'attaquer au début de cette année, en envisageant de supprimer d'anciennes architectures ainsi que des compilateurs obsolètes dans le noyau.
« Le processus de développement du noyau tend à se concentrer sur l'ajout : chaque nouvelle version prend en charge plus de pilotes, plus de fonctionnalités et souvent de nouvelles architectures de processeurs. En conséquence, presque toutes les versions du noyau ont été plus volumineuses que leurs prédécesseurs. Mais parfois, même le noyau a besoin de s'amincir un peu », expliquait Jonathan Corbet, rédacteur en chef de LWN.net et membre du comité consultatif technique de la Linux Foundation. « Les versions à venir du noyau verront probablement la suppression du support d'un certain nombre d'architectures non utilisées et... la suppression de la prise en charge de certains compilateurs plus anciens », a-t-il annoncé fin février, en expliquant que le développeur du noyau Arnd Bergmann avait proposé de supprimer certaines architectures.
La première RC de Linux 4.17, publiée il y a quelques jours, a permis de constater ce travail. En annonçant sa sortie à travers la liste de diffusion du noyau Linux, Linus Torvalds a confirmé, comme Arnd Bergmann l'avait suggéré, qu'un certain nombre d'architectures qui semblent ne plus être importantes ont été supprimées. « Les architectures disparues sont blackfin, cris, frv, m32r, metag, mn10300, score et tile », dit-il. « S'il s'avère que quelqu'un veut ressusciter l'une d'entre elles, leurs codes sont tous dans l'historique Git, mais vous devrez faire le travail et montrer que vous allez le maintenir et qu'il a des utilisateurs. »
La suppression des anciennes architectures a donc permis de réduire une bonne quantité de lignes de code dans le noyau Linux, même si une nouvelle architecture a été ajoutée : nds32, une architecture 32 bits conçue par Andes Technology, une entreprise qui développe des processeurs et des plateformes SoC associées. Mais ce n'est pas tout : « Nous avons aussi supprimé une bonne quantité d'autres éléments et nettoyé le code. J'ai été agréablement surpris par le nombre de pull requests qui ont fini par enlever beaucoup de lignes de code », explique Torvalds. « Le résultat final est que nous avons effectivement supprimé plus de lignes que nous en avons ajouté : 13 538 fichiers modifiés, 627 723 insertions (+), 818 855 suppressions (-), ce qui est probablement une première jamais réalisée dans l'histoire de l'Univers. Ou au moins dans les versions du noyau », estime le créateur du noyau Linux.
Linus Torvalds
En annonçant la sortie de Linux 4.17 RC-1, Torvalds laisse également croire que la prochaine version du noyau pourrait être numérotée 5.0... Ou non, parce qu'il ne veut pas être « trop prévisible. » La numérotation de noyau Linux ne suit pas en fait de règle définie. Du moins, on ne sait pas à l'avance quand on passera à la prochaine version majeure.
« [Linux 4.17] ne semble pas être une version particulièrement importante, et il semble n'y avoir rien de spécial à son sujet. La chose la plus spéciale qui s'est produite est que nous avons franchi la barre de six millions d'objets Git, et c'est une raison suffisante pour appeler le prochain noyau 5.0. Sauf que je ne le ferai probablement pas, parce que je ne veux pas être trop prévisible », dit-il.
Notons en effet que les versions 3.0 et 4.0 ont été publiées quand Linux a franchi respectivement les barres de 2 millions et 4 millions d'objets Git. Alors, Linus Torvalds ne veut pas sortir de version 5.0 après l'étape de 6 millions d'objets Git, parce que cela pourrait être considéré comme une règle de passage à une nouvelle version majeure du noyau. Il assure toutefois que la version 5.0 va arriver, mais elle ne devrait pas être « significative », donc probablement sans fonctionnalités majeures.
Source : Linus Torvalds, LWN.net
Et vous ?
Que pensez-vous du nettoyage du code du noyau Linux ?
Faut-il maintenant passer à la version 5.0 ?
Voir aussi :
Linus Torvalds publie Linux 4.17 RC-1 qui s'accompagne de nombreuses améliorations côté graphique, et d'une meilleure gestion de l'énergie
Linux kernel 4.16 est disponible avec des correctifs contre Meltdown et Spectre, pour l'architecture arm64 et de nombreux autres ajouts