Texte original : 9 leçons de 25 ans de développement du noyau Linux
Par Greg Kroah-Hartman
Traduction : Yan Jinghan
La communauté du noyau Linux a célébré son vingt-cinquième anniversaire en 2016, et de nombreuses personnes sont venues nous demander le secret de la longévité et du succès du projet. J'ai l'habitude de rire et de dire en plaisantant que je n'avais vraiment aucune idée que 25 ans s'étaient écoulés. Le projet a toujours été confronté à des désaccords et à des défis. Mais sérieusement, notre capacité à y parvenir dépend beaucoup de la capacité de la communauté à réfléchir et à changer.
Il y a environ 16 ans, la plupart des développeurs du noyau ne s'étaient jamais rencontrés, nous communiquions uniquement par e-mail, alors Ted T'so a eu l'idée d'un sommet du noyau. Désormais, chaque année, les développeurs du noyau se réunissent pour résoudre des problèmes techniques et, plus important encore, passer en revue ce que nous avons bien fait et ce que nous n'avons pas bien fait au cours de l'année écoulée. Les développeurs peuvent discuter ouvertement de la manière dont ils communiquent entre eux et du fonctionnement du processus de développement. Ensuite, nous améliorerons le processus, nous développerons de nouveaux outils comme Git et continuerons à changer notre façon de collaborer.
Bien que nous n'ayons pas entièrement compris toutes les raisons clés du succès du noyau Linux, certaines expériences méritent encore d'être partagées.
1. Un cycle de publication plus court est important
Au début du projet Linux, chaque version majeure du noyau mettait plusieurs années à être publiée, ce qui signifiait que les utilisateurs devaient attendre longtemps pour profiter des nouvelles fonctionnalités, ce qui était assez frustrant pour les utilisateurs et les revendeurs. Et, plus important encore, un cycle aussi long signifie qu’une grande quantité de code doit être intégrée en même temps. Consolider autant de code en une seule version est stressant.
Des cycles plus courts peuvent résoudre tous ces problèmes. Le nouveau code peut être incorporé dans la version stable en moins de temps. L'intégration d'un nouveau code sur une version de base presque stable permet d'introduire des changements fondamentaux avec un impact minimal sur le système. Les développeurs savent que s'ils manquent ce cycle de publication, il y en aura un autre dans deux mois, ils fusionnent donc rarement le code prématurément.
2. L'expansion des processus nécessite un modèle de développement distribué en couches
Il y a longtemps, toutes les demandes de modification étaient adressées directement à Linus Torvalds, mais cela s'est vite avéré inapproprié car personne ne pouvait pleinement comprendre un projet aussi complexe que le noyau du système d'exploitation. Très tôt, les responsables de différents domaines du noyau ont eu l'idée d'attribuer des parties du noyau à des personnes familiarisées avec ce domaine. Par exemple, les réseaux, le sans fil, les sous-systèmes de pilotes comme PCI ou USB, ou les systèmes de fichiers comme ext2 ou vfat. Cela s'étend ensuite à des centaines de responsables responsables de la révision et de l'intégration du code, permettant d'inclure des milliers de modifications dans chaque version sans sacrifier la qualité du produit.
3. L'importance des outils
Le développement du noyau a tenté d'élargir le champ d'action des développeurs jusqu'à l'émergence de BitKeeper, un système de gestion de code source. Les pratiques de la communauté ont changé presque du jour au lendemain, et l'émergence de Git a apporté un autre bond en avant. Sans les bons outils, un projet tel que le noyau ne fonctionnera pas correctement et s'effondrera sous son propre poids.
4. Un modèle solide d'orientation de l'opinion publique est très important
De manière générale, si un développeur senior rejette une modification soumise, la modification ne sera pas fusionnée. Il est très frustrant lorsqu'un développeur découvre que le code qu'il a soumis il y a des mois a été rejeté sur la liste de diffusion. Mais cela garantit également que le développement du noyau peut s'adapter à un grand nombre d'utilisateurs et de problèmes. Aucune communauté d'utilisateurs ne peut apporter des changements aux dépens des autres groupes. Nous disposons d’une base de code qui peut tout prendre en charge, des microsystèmes aux superordinateurs, et qui peut être appliquée à de nombreux scénarios.
5. Une règle stricte de « non-retour » est également importante
Il y a environ dix ans, la communauté de développement du noyau avait promis que si un noyau donné fonctionnait correctement dans un environnement spécifique, toutes les versions ultérieures du noyau fonctionneraient également correctement dans cet environnement. Si la communauté découvre qu’un changement a causé d’autres problèmes, elle résoudra rapidement le problème. Cette règle promet aux utilisateurs que les mises à niveau du système ne détruiront pas leurs systèmes d'origine. Par conséquent, les responsables sont prêts à conserver ce noyau tout en développant de nouvelles fonctionnalités.
6. Il est crucial que les entreprises participent au processus de développement, mais aucune entreprise ne peut dominer le développement du noyau
Depuis la sortie de la version 3.18 du noyau en décembre 2014, environ 5 062 développeurs individuels issus de près de 500 entreprises ont contribué au noyau Linux. La plupart des développeurs sont payés pour leur travail et les changements qu’ils apportent servent l’entreprise pour laquelle ils travaillent. Cependant, bien que n'importe quelle entreprise puisse améliorer le noyau en fonction de besoins spécifiques, aucune entreprise ne peut conduire le développement à faire des choses qui nuisent aux autres ou limitent les fonctionnalités du noyau.
7. Il ne devrait y avoir aucune frontière interne dans le projet
Les développeurs du noyau doivent se concentrer sur des parties spécifiques du noyau, mais tout développeur peut apporter des modifications à n'importe quelle partie du noyau tant que la modification est justifiée. En conséquence, les problèmes sont résolus lorsqu’ils surviennent plutôt que évités. Les développeurs ont des opinions nombreuses et variées sur le noyau dans son ensemble, et même les responsables les plus obstinés ne peuvent pas indéfiniment mettre de côté les améliorations nécessaires dans un sous-système donné.
8. Les fonctions importantes démarrent petit à petit
Le noyau de la version 0.01 d'origine ne contenait que 10 000 lignes de code ; désormais, plus de 10 000 lignes sont ajoutées tous les deux jours. Certaines petites fonctionnalités de base que les développeurs ajoutent maintenant pourraient devenir des sous-systèmes importants à l’avenir.
9. Pour résumer, les 25 ans d'histoire du développement du noyau montrent qu'une coopération continue peut apporter des ressources communes, qui ne peuvent pas être développées par un seul groupe
Depuis 2005, environ 14 000 développeurs individuels issus de plus de 1 300 entreprises ont contribué au noyau. Par conséquent, le noyau Linux est devenu une ressource publique à grande échelle grâce aux efforts de nombreuses entreprises qui se font une concurrence féroce.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!