Le noyau de Linux dépasse les 11.5 millions de lignes de codes
Grâce à sa large communauté de développeurs actifs

Le , par Katleen Erna, Expert éminent sénior
Le noyau de Linux dépasse les 11.5 millions de lignes de codes

Red Hat, IBM et Novell restent les principaux soutiens du noyau Linux, un projet open-source qui s'est étoffé de 2.7 millions de lignes de code depuis les 16 derniers mois.

Le créateur de Linux (Linus Torvalds) a quant à lui disparu de la liste des 30 personnes contribuant le plus au système si ne sont pris en compte que les données relatives au noyau. Torvalds s'investit d'avantage dans d'autres domaines et il est toujours le principal contribuant dans les chiffres globaux.

Les données proviennent du rapport de développement du projet rédigé par Greg Kroah-Hartman de Novell, Jonathan Corbet de LWN.net et Amanda McPherson de la Fondation Linux.

Le précédent rapport datait de 2008. Depuis la publication de ce dernier, une dizaine de nouveaux développeurs à rejoint l'équipe gérant le cycle des sorties de chaque noyau (tous les deux ou trois mois environ). De plus, le nombre de lignes de codes ajoutées quotidiennement au noyau à presque triplé, ce qui donne un total dépassant les 11.5 millions de lignes : 10.923 lignes de code ont ainsi été ajoutées ( +70%) ; 5.547 ont été supprimées (+ 68%) et 2.243 autres ont été changées (+ 32 %) chaque jour par la communauté de développement. Le taux est supérieur à n'importe quel projet de programme de n'importe quelle taille.

Les entreprises Red Hat, Novell et IBM sont celles qui contribuent le plus aux changements appliqués au noyau avec un total de 24 % des changements réalisés par leurs employés au cours des 16 derniers mois. Les changements sont implémentés dans les noyaux à la fin de chaque cycle, tous les 81 jours.

Le rapport démontre aussi que depuis 2005, ce sont plus de 5000 développeurs appartenant à près de 500 compagnies qui ont contribué à sa réalisation. Leur nombre a doublé depuis 2006, mais le rapport montre que ce n'est qu'un relativement petit nombre d'entre eux qui réalise le plus gros du travail.

La conclusion du rapport salue la constante augmentation du nombre de contributeurs et l'accélération du développement du projet qui traduisent "une communauté vibrante, active, constamment responsable de l'évolution du noyau en réponse aux nombreux environnements différents dans lequel il est utilisé."

Source : Rapport de la Linux Foundation sur les auteurs du noyau (PDF)

Autant de développeurs différents, venant d'univers n'ayant rien en commun, n'est-ce pas nuisible à l'élaboration d'un projet qui, justement, est commun ?

Le nombre élévé de lignes de code n'est-il pas génant pour la maintenance ?

La fréquence de sortie de nouveaux Kernel étant si élevée, n'est-elle pas préjudiciable à la stabilité des systèmes ?


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


 Poster une réponse

Avatar de nouknouk nouknouk - Modérateur http://www.developpez.com
le 21/08/2009 à 9:48
11.5 M de lignes de code, c'est un beau chiffre en soit. Mais il représente quoi exactement ?

Le noyau uniquement, ou bien (ce que je pense) la pléthore de modules spécialisés dans de support de matériels plus ou moins spécifiques ?

Il serait intéressant de connaître la taille du code uniquement dévolue au noyau sans tenir compte des modules spécifiques. Trois exemples de ce qui a le même nom (module) mais qui n'ont absolument pas la même valeur à mes yeux:

- CONFIG_SCHED_MC (Multi-core scheduler support)
- CONFIG_EXT3_FS (Ext3 journalling file system support)
- CONFIG_FB_3DFX (3Dfx Banshee/Voodoo3 display support)

Le premier est un élément central du noyau, quasi indispensable. On pourrait mettre dans le même panier le scheduler dans son ensemble, la gestion des interruptions, ... sans eux, pas de kernel viable.

Le second est une fonctionnalité du kernel, mais absolument pas indispensable à son fonctionnement (quelqu'un peut très bien n'utiliser que FAT et NTFS par exemple).

Le dernier est un pilote spécifique pour un matériel spécifique.

Alors, comment sont comptés ces 11.5 millions de lignes ?

Que peut représenter ce chiffre si en fonction de ce qui est activé ou pas, il peut probablement y avoir un facteur 10 entre le nombres de lignes de code compilées avec une config incluant le minimum viable ou au contraire tous les modules ?

Comment vouloir faire une comparaison avec d'autres OS quand on voit que pour Windows par exemple, un driver de carte vidéo ne fait en aucun cas partie de ce qui est compté comme partie intégrante du kernel (hors driver générique VGA j'imagine) ?
Devrait-on ajouter au compte du kernel windows tout le code des drivers dispos sur windows update ?
Avatar de clavier12AZQSWX clavier12AZQSWX - Membre confirmé http://www.developpez.com
le 21/08/2009 à 10:00
11.5M de lignes de code c'est aussi 11.5M de possibilité de bug ou failles !
et quoi d'autres ? plus il y a de drivers ou matos, plus il y a de lignes de code ?
et est-ce que le code est factorisé correctement ?
une appli à 1000 lignes sans factorisation à moins de valeur qu'une appli à 5 lignes factorisée.

valoriser une produit sur son nombre de lignes de code est une stupidité complète !

c'est comme l'interprétation de cette information :
"ie8 10 failles corrigées, ff3 2 failles corrigées " : quelle est le plus sécu des 2 ? IE8 forcément car c'est le plus corrigé!

donc faut arrêter de valoriser un produit suivant un critère quantitatif!
ça n'a vraiment aucun sens , c'est juste pour faire parler les journaux et média.
Avatar de argonath argonath - Membre actif http://www.developpez.com
le 21/08/2009 à 10:12
Citation Envoyé par Thorna  Voir le message
Euh... Oui et non! Ce n'est pas parce qu'on se compare à des plus mauvais qu'on est forcément bon!
11 millions de lignes c'est monstrueux à maintenir, surtout par une équipe distribuée tant géographiquement que par rapport aux domaines de compétence. Ca n'a plus rien à voir avec le Linux des origines. Certes, il n'avait rien de transcendant mais là, ce qu'on a, c'est une usine à gaz, pour laquelle on doit maintenir des tas de lignes dont, sans doute, une bonne partie n'est jamais (plus) utilisée. Bref, on tend lentement vers la situation qui fait dire à tous les détracteurs de Windows que leur truc est "une usine à gaz, pour laquelle on doit maintenir des tas de lignes dont, sans doute, une bonne partie n'est jamais (plus) utilisée".

C'est pour cela que sont publiées également le taux de lignes de codes supprimées et modifiées... le noyau linux est un projet sans cesse relu... ce qui rend moins inquiétant sa prise en volume
Avatar de Floréal Floréal - Membre éclairé http://www.developpez.com
le 21/08/2009 à 10:21
Je vais faire du mauvais esprit, c'est donc à prendre au second degré: ça veut dire qu'il y a plus de bugs qu'avant?

D'ailleurs je me demande s'il existe une loi mathématique ou un théorème qui dit que l'augmentation des anomalies d'un programme est proportionnelle / exponentielle / logarithme du nombre de ligne de code.

Citation Envoyé par smyley  Voir le message
Linux : ~ 9 million (Kernel) ~283 million (Debian GNU/Linux) - Donc apparemment 11,5 million maintenant pour le kernel
Mac OS X : ~86 million
OpenSolaris : (pourquoi pas) ~10 million
Windows : ~ 40(XP)/64(Vista) million
...

Source : http://en.wikipedia.org/wiki/Compari...rating_systems

S'agit-il des lignes de code pour les noyaux / équivalent de noyaux, ou bien des "distributions"? Je pose simplement cette question car en premier lieux on lit d'abord le nombre de ligne pour le noyaux Linux, et ensuite le nombre de ligne pour les outils de base de Debian (d'après ce que je comprends).
Et en suite on ne sait plus si on parle du "core" des systèmes ou si -par exemple- notepad est compris dans les 64 Millions de lignes de Vista
Avatar de smyley smyley - Expert éminent http://www.developpez.com
le 21/08/2009 à 13:58
Citation Envoyé par Michael REMY  Voir le message
valoriser une produit sur son nombre de lignes de code est une stupidité complète !



Citation Envoyé par Michael REMY  Voir le message
donc faut arrêter de valoriser un produit suivant un critère quantitatif!
ça n'a vraiment aucun sens , c'est juste pour faire parler les journaux et média.

C'est peut être simplement pour donner une information quand à la taille du projet du noyau Linux rien de plus ...

Citation Envoyé par Floréal  Voir le message
D'ailleurs je me demande s'il existe une loi mathématique ou un théorème qui dit que l'augmentation des anomalies d'un programme est proportionnelle / exponentielle / logarithme du nombre de ligne de code.

Statistiquement je dirais que c'est bien proportionnel

Citation Envoyé par Floréal  Voir le message
S'agit-il des lignes de code pour les noyaux / équivalent de noyaux, ou bien des "distributions"?

Je ne sais pas comment sont compté les lignes de code.
Pour Mac OS X ça sort d'une keynote où Steve Jobs affirme qu'ils ont porté 86 millions de lignes de code sur une nouvelle architecture.
Pour Windows on retrouve un peut les mêmes résultats un peu partout sur Internet.
Par contre, savoir exactement ce qui est compté je ne sais pas si on peut vraiment en être sur en dehors d'un projet OpenSource.

Il faut aussi tenir compte que (selon Wikipedia) Linux a un noyau monolithique alors que Windows et Mac fonctionnent sur un noyau Hybride qui peut peut être également altérer l'interprétation des résultats ...
Avatar de clavier12AZQSWX clavier12AZQSWX - Membre confirmé http://www.developpez.com
le 21/08/2009 à 18:29
lol

si les codeurs de Linux programme comme moi : 10 lignes de commentaires pour 2 lignes de code alors ça m'étonne pas qu'il y ait 11 millions de lignes de code !
au moins les gars programmes, pardon, documentent bien leur code !
Avatar de Firwen Firwen - Membre expérimenté http://www.developpez.com
le 22/08/2009 à 11:10
Il faut aussi tenir compte que (selon Wikipedia) Linux a un noyau monolithique alors que Windows et Mac fonctionnent sur un noyau Hybride qui peut peut être également altérer l'interprétation des résultats ...

A ma connaissance, Windows possede un micro-Kernel enrichi et non un noyau hybride

En pratique ça se rapproche d'assez prêt du modèle monolithique modulaire des Linuxien d'ailleurs ( ne leur en déplaise ) à la différence prêt qu'une bonne quantité des services qui sont en espace utilisateur sur Win32 sont en espace Kernel sur Linux.
Avatar de smyley smyley - Expert éminent http://www.developpez.com
le 22/08/2009 à 13:00
Citation Envoyé par Firwen  Voir le message
micro-Kernel enrichi

C'est pas justement ça un noyau hybride ?
A hybrid kernel is a kernel architecture based on combining aspects of microkernel and monolithic kernel architectures used in computer operating systems.
the reason NT is not a microkernel system is because most of the system components run in the same address space as the kernel, as would be the case with a monolithic design

Avatar de Firwen Firwen - Membre expérimenté http://www.developpez.com
le 22/08/2009 à 13:49
c'est justement sujet à polémique ça

Certains puristes considèrent que l'on ne peut nommer "noyaux" hybrides uniquement les noyaux comme XNU de MAC OS X qui sont un assemblage des deux concepts : monolithiques et micro-noyau. Le noyau monolithique étant placé "au dessus" du micro-noyau

D'autres considèrent qu'un noyau monolithique modulaire comme Linux ou qu'un micro-noyau enrichi comme NT peuvent être considérés comme hybride car ce sont des modèles qui s'éloignent du concept de base
Avatar de smyley smyley - Expert éminent http://www.developpez.com
le 22/08/2009 à 14:01
Loin de cette polémique j'étais plus du genre à penser que tout ce qui n'est pas soit microkernel, soit monolithique est hybride
Avatar de fanning fanning - Membre régulier http://www.developpez.com
le 25/08/2009 à 0:05
Au delà du nombre de lignes, ce qui est impréssionant c'est le cycle ddes noyaux.
Offres d'emploi IT
Chargé(e) de mission au CERT Société Générale (H/F)
Société Générale - Ile de France - Val-de-Marne
Développeur - software craftsman (H/F)
Société Générale - Ile de France - Hauts-de-Seine
Data scientist inspection générale (H/F)
Société Générale - Ile de France - Hauts-de-Seine

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil