Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

0PARTAGES

1  0 
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 ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de gannher
Membre averti https://www.developpez.com
Le 21/08/2009 à 1:43
Citation Envoyé par Katleen Erna Voir le message

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 ?
Je trouve que les développeurs venant d'horizon différent est une bonne chose dans la mesure où chacun peut apporter son expérience et son savoir.

Pour le nombre de lignes, je me posais en effet la question. Ca ne doit pas être facile de s'y retrouver mais je suppose que tout est bien organisé en modules je pense.

La sortie de nombreux kernel ne veut pas dire qu'on est obligé de mettre à jour son système. Je pense d'ailleurs qu'aucun environnement en production ne s'amuse à mettre à jour le kernel (sauf cas exceptionnel).
1  0 
Avatar de entreprise38
Inactif https://www.developpez.com
Le 21/08/2009 à 2:11
'soir

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 ?
=> Tout dépend de comment le projet est géré. En général, on ne laisse pas tout le monde concevoir et coder comme il l'entend => c'est le rôle des chefs de projets que de manager tout ça.
J'aimerai bien coder selon mes principes, et pourtant je dois bien respecter les décisions de mon chef de projet et de mon patron, que je sois d'accord ou non (haaaa.... le jour où je serai aussi chef de projet ).

Le nombre élévé de lignes de code n'est-il pas génant pour la maintenance ?
=> Avant de dire s'il est élevé ou non, il faudrait commencer par comparer ce chiffre avec ceux de grandes applications.
Sachant de dans nombre de programmes on dépasse facilement le millier de lignes par fichier source, ça grimpte très très vite. Si en plus on compte les commentaires, on explose tout
Donc bon, 11.5 M, ça n'a absolument rien d'extraordinaire.

C'est comme quand on dit qu'une voiture rejette XX tonnes de CO² par kilomètre: ça ne veut RIEN dire s'il n'y a pas de référence (une tonne de CO², ça a l'air de faire beaucoup, ça choque, et pourtant c'est si peu....).

La fréquence de sortie de nouveaux Kernel étant si élevée, n'est-elle pas préjudiciable à la stabilité des systèmes ?
=> Pourquoi ?
De plus, une sortie tous les 2~3 mois, ce n'est pas spécialement élevé.
Notons aussi qu'il faut bien faire attention aux versions des noyaux : ils indiquent facilement s'il sagit d'une version stable (utilisable en production) ou non stable (pour tester, ou nos amis les geeks).
Résultat : aucun problème.

Et pour le fun :
Le taux est supérieur à n'importe quel projet de programme de n'importe quelle taille.
N'importe nawak
1  0 
Avatar de smyley
Expert éminent https://www.developpez.com
Le 21/08/2009 à 2:27
Citation Envoyé par entreprise38 Voir le message

=> Avant de dire s'il est élevé ou non, il faudrait commencer par comparer ce chiffre avec ceux de grandes applications.
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/Comparison_of_operating_systems
1  0 
Avatar de Thorna
Membre éprouvé https://www.developpez.com
Le 21/08/2009 à 7:24
Citation Envoyé par entreprise38 Voir le message
Le nombre élévé de lignes de code n'est-il pas génant pour la maintenance ?
=> Avant de dire s'il est élevé ou non, il faudrait commencer par comparer ce chiffre avec ceux de grandes applications.
Sachant de dans nombre de programmes on dépasse facilement le millier de lignes par fichier source, ça grimpte très très vite. Si en plus on compte les commentaires, on explose tout
Donc bon, 11.5 M, ça n'a absolument rien d'extraordinaire.
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".
1  0 
Avatar de gulain
Membre habitué https://www.developpez.com
Le 21/08/2009 à 8:28
C'est pas la taille qui compte, c'est la façon dont on s'en sert.
1  0 
Avatar de Lyche
Expert confirmé https://www.developpez.com
Le 21/08/2009 à 8:56
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!
Sous entend tu que Linux est le top du top et que rien ne peut lui être comparé?
1  0 
Avatar de nirgal76
Membre chevronné https://www.developpez.com
Le 21/08/2009 à 8:57
Tout dépends de la façon de coder. Si c'est clair, bien commenté, bien découpé, y'a pas de soucis. mais les contributions étant nombreuses, on peut se demander si c'est le cas car chacun à ça façon de coder, d'organiser, de penser. ça doit être assez inégal.
Après, faudrait savoir le pourcentage de ligne de code modifiées la dedans. est-ce qu'il n'y a que du nouveau code (module, drivers..) et quasiment pas de maintenance sur le noyau (car c'est la que l'on voit si le code est bien fichu, s'il est facilement maintenable derrière).
je n'ai jamais pris la peine de vraiment regarder des sources de projet opensource comme linux mais le peu que j'ai regardé, ça me semblait pas très "propre" mais c'était des petits softs parmis les milliers de paquets de la distrib et il y en a forcément qui ne sont pas des exemples. J'imagine que le kernel, c'est plus encadré et strict, sinon, il n'aurait pas la stabilité qui est la sienne.
1  0 
Avatar de Leonhart
Membre confirmé https://www.developpez.com
Le 21/08/2009 à 9:22
11.5 M de lignes de code pour un projet informatique collaboratif et Open-source ... ça force l'admiration !

Et même si MS ou APL peut atteindre dix fois plus, ils n'ont pas les même moyens !

Une petite retro des versions de Linux serait la bienvenu pour voir le chemin qu'a parcouru ce projet. Parceque l'on aime ou non, Linux est un OS sérieux bourré de qualité a qui on ne donnait pas une chance sur 11 millions de réussite.
1  0 
Avatar de gege2061
Rédacteur https://www.developpez.com
Le 21/08/2009 à 9:47
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
Quelques statistiques : https://www.ohloh.net/p/linux/analyses/latest

On peut, entre autre, voir que le nombre de ligne a doublé en 4 ans !

Après un rapide comptage, les dossiers drivers/ et firmware/ comptent à eux seuls près de 5.9 millions de lignes.

Et histoire de comparer avec des outils que l'on a l'habitude de manipuler/développer, gedit compte 100 000 lignes, donc le nombre de ligne de code de Linux ne me semble pas énorme, ce qui est confirmé par les statistiques de smyley.
1  0 
Avatar de nouknouk
Modérateur https://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 ?
1  0