Le noyau Linux fait le ménage dans sa base de code et devient plus léger
Faut-il donc passer à la version 5.0 ? Linus Torvalds aborde le sujet

Le , par Michael Guilloux, Chroniqueur Actualités
Depuis 2008, Linux Foundation publie régulièrement un rapport sur le développement du noyau Linux. Dans ce document qui est publié presque chaque année, la fondation met en avant certains indicateurs clés traduisant non seulement la croissance de la communauté Linux et open source, mais également le travail abattu par les contributeurs au noyau Linux. Parmi ces indicateurs figure le nombre de lignes de code du noyau qui dans le dernier rapport était d'environ 24,8 millions pour Linux 4.13.

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


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Spleeen Spleeen - Membre du Club https://www.developpez.com
le 17/04/2018 à 17:55
Une version majeure sans fonctionnalités majeures
Avatar de steel-finger steel-finger - Membre habitué https://www.developpez.com
le 17/04/2018 à 19:56
Il n'y a que moi qui suis choqué par le faite qu'il change le numéro de version pour ne pas être prévisible !!!
Avatar de Uther2 Uther2 - Inactif https://www.developpez.com
le 17/04/2018 à 21:08
il ferais mieu de faire des versions par années.

Comme Windows Server 2003,2008,2012,2016,2019 ou Windows 95,98,2000...
au moins c'est logique

donc linux 2018, linux 2019...etc
Et si la version qu'il sort bug, il sort une SE second édition "Linux 2018 SE" ou bien des services pack Linux 2018 service pack 1,2,3,4,5,6...etc.

j'ai jamais compris pourquoi les grand groupe nommait mal leurs versions.
Mac OS x a été X pendat 10ans... et windows 10 on vas se le taper combien de temps ?

parceque Iphone 1,2,3,4,5,6,7,8 c'est plsu simple, Iphone 8>Iphone 7
Mais Mac OS X > a Mac OS X
Ou Windows 10 > Windows 10 ???
Avatar de Steinvikel Steinvikel - Membre actif https://www.developpez.com
le 18/04/2018 à 1:25
Serait-il possible de compiler le noyau Linux pour une unique architecture cible, et remplacer l'actuel... ou réinstaller la distribution avec ce dernier ? (par un non-développeur de métier)
Si oui, quel intérêt à réduire aussi drastiquement le noyau (outre la diminution de surface d'attaque, de bugs...) ?
Je me doute bien que ça compte pour l'embarqué pour réduire l'usage des ressources, ma question est plutôt orienté PC.

PS : je sais bien que compiler c'est possible (puisque open-source), la question porte plutôt sur l'implémentation de la compilation dans l'existant, et par extension, l'accessibilité d'une opération qui touche à quelque chose d'aussi délicat.

@steel-finger ,@Uther2
Non, moi aussi, jusqu'à maintenant j'étais convaincu que l'usage de numéros de versions répondait à un besoin d'informer... pas l'inverse.
Si la seule information que fourni le versionning de Linux est sa chronologie... autant utiliser des nom, comme Androïd et son nommage par ordre alphabétique, ou des années pour le préfixe comme tu le suggères.
-
Concernant "Mac OS" et "Mac OS X", il est important de noté que le X n'est pas le nom/n° de la version, mais fait parti du nom de l'OS, afin de marquer la transition profonde que représente la restructuration du Mac OS classic à un nouveau, centré cette fois-ci autour de freeBSD et UNIX. Si le X à été choisi également parce que Mac OS classic en était à sa v9, en marketing technologique ils raffolent des 3 dernières lettres de l'alphabet... j'ai jamais compris pourquoi d’ailleurs. ^^'
ex: CPU-Z, GPU Titan X, chipset X470/Z470, CPU machin X... un X qui marque qqch de différent, tablant sur l'inconnu, l'infini... rajoute à ça tout les diminutif anglophones avec "ex-" (prononcé "X").
il y en a plein d'autres très connu, je ne l'ai ai pas en tête au moment où j'écris ces lignes.

Citation Envoyé par Uther2 Voir le message
Ou Windows 10 > Windows 10 ???
étant donné qu'ils ont sauté la version 9, ils sont dans une sacré galère...
l'après 10 serait-il cette fois-ci fondé sur un Linux-like ?
Avatar de VinsS VinsS - Expert confirmé https://www.developpez.com
le 18/04/2018 à 8:09
@ Steinvikel
Serait-il possible de compiler le noyau Linux pour une unique architecture cible, et remplacer l'actuel... ou réinstaller la distribution avec ce dernier ?
Le hors série de Linux Magazine n° 87 propose exactement cela. Compiler son noyau avec uniquement ce que ta machine à besoin.
Avatar de chrtophe chrtophe - Responsable Systèmes https://www.developpez.com
le 18/04/2018 à 8:46
Il est à noter que si tu installes une distribution, ton noyau ne supporteras que l'architecture demandé. Exemple, si tu utilises un noyau i386, tu n'auras pas un noyau ARM d'installé. Sauf si tu l'installes de ton propre chef pour faire de la cross-compilation.
Avatar de MikeRowSoft MikeRowSoft - I.A. en bêta-test https://www.developpez.com
le 18/04/2018 à 12:55
Citation Envoyé par chrtophe Voir le message
Sauf si tu l'installes de ton propre chef pour faire de la cross-compilation.
Je retiens, très très pertinent. Avoir une distribution Linux sur la même partition que Windows c'est pareil ? (dual boot ? UEFI ?)
Vraisemblablement non... Intel propose des CPU au format "carte de crédit", x86 ou ARM serait à leur porté.

x86 mode jeu et ARM mode bureau.
Avatar de ok.Idriss ok.Idriss - Rédacteur https://www.developpez.com
le 18/04/2018 à 15:19
Citation Envoyé par Spleeen Voir le message
Une version majeure sans fonctionnalités majeures
Les versions c'est pas que par rapport aux features mais aussi par rapport à la compatibilité du code entre versions mineures (pour les reports de corrections de bugs entre autres).
Et si le code change beaucoup vaut mieux repartir sur une nouvelle version majeure.
Avatar de Steinvikel Steinvikel - Membre actif https://www.developpez.com
le 18/04/2018 à 17:31
@VinsS
Citation Envoyé par VinsS Voir le message
Le hors série de Linux Magazine n° 87 propose exactement cela. Compiler son noyau avec uniquement ce que ta machine à besoin.
merci beaucoup pour l'info, j'espère trouver ce numéro sur internet ou dans une bibliothèque... étant donné qu'ils en sont aujourd'hui au n°215. ^^'

Sinon, personne n'a de raisons pertinentes en tête sur les avantages à réduire la taille du noyau Linux ?
Puisque chaque partie est dédié à sa seule tâche... qu'il soit gros où petit ne devrait pas changer drastiquement son fonctionnement ?
>> fluidité, réactivité, consomation (Watt, mémoire...), parallélisme, etc.

Citation Envoyé par chrtophe Voir le message
Il est à noter que si tu installes une distribution, ton noyau ne supporteras que l'architecture demandé. Exemple, si tu utilises un noyau i386, tu n'auras pas un noyau ARM d'installé. Sauf si tu l'installes de ton propre chef pour faire de la cross-compilation.
J'ai bien ça en tête... seulement chaque fois que j’entends parler du noyau, on en parle comme si c'était un paquet non modulaire, présent dans tte les distros, en entier. Donc j'imagine que quand je télécharge Debian en version amd64, j'ai certes un OS qui ne fonctionne que sur CPU classique (desktop/laptop pour faire simple) mais qui contient un noyau pouvant tourner sur tout et n'importe quoi. C'est du moins ce que j'ai compris jusqu'à maintenant.
Puisque recompiler une application telle que " StockFish " (sur les échecs) pour une architecture unique permet d'en augmenter ses performances, j'en déduis donc légitimement que faire de même avec le noyau de la distribution amènerait au même résultat, en plus mesuré je suppose.

...à moins que ddl la version AMD64 de Debian, nous ddl une version compilé exclusivement pour amd64, noyau compris... auquel cas, ma problématique n'existe pas. ^^'
Avatar de LittleWhite LittleWhite - Responsable 2D/3D/Jeux https://www.developpez.com
le 18/04/2018 à 17:49
Bonjour,

Les environnement embarqués utilisent souvent des noyaux Linux qui, à cause de la limitation en place sur les puces du système, sont optimisés en taille.
Contacter le responsable de la rubrique Accueil