Noyau Linux, son rapport d'histoire de 29 ans

2020/08/25, Linux Foundation [2020 Linux Kernel History Report](https://www.linuxfoundation.org/blog/2020/08/download-the -2020-linux-kernel-history-report /) a été publié. Il résume les 29 ans d'histoire du noyau Linux, de sa première version le 17 septembre 1991 à Linux 5.8, sortie le 2 août 2020.

Alors je l'ai lu en gros en diagonale. Veuillez faire quelque chose à propos du PDF que vous ne pouvez pas copier et coller.

Linux Kernel History Report

Ce rapport explore toute l'histoire de Linux. De la première version du noyau le 17 septembre 1991 au 2 août 2020, lorsque le dernier noyau 5.8 a été publié, BitKeeper et git ont plus d'un million d'histoires de commit. ..

Kernel Archeology

La première version ne contenait que 88 fichiers, 10 000 lignes et 2964 jetons. Bien qu'il y ait très peu de traces de l'original, il y a encore un premier commit par Linus lui-même le 17/09/199 1 dans vsprintf.c.

01.png

Plus de la moitié du noyau Linux 5.8 est du code écrit au cours des sept dernières années.

02.png

Impact of Development Process Best Practices

Pour promouvoir les meilleures pratiques de développement, CII a créé le système de badge des meilleures pratiques (https://github.com/coreinfrastructure/best-practices-badge) en 2015. Linux Core a été l'un des premiers projets à obtenir ce badge, et en juin 2020, il a obtenu le titre le plus élevé, le badge d'or.

Cela dit, mais comme CII est une organisation au sein de la Fondation Linux, je ne peux pas m'empêcher de me sentir comme une pompe à allumettes.

Adoption of Maintainer Hierarchy

Le fichier «MAINTAINERS» a été validé pour la première fois à 1.3.68 en 1996. Avec seulement 107 lignes, il n'y a que 3 mainteneurs. Alan Cox, Jon Naylor et Linus Torvalds.

MAINTAINERS


REST:
P: Linus Torvalds
S: Buried alive in email

Puisque les premières discussions sur le développement du noyau Linux ont été faites dans plusieurs ML, les discussions avant 1997 ne sont que fragmentaires. Certains des éléments collectés sont publiés sur http://lkml.iu.edu/hypermail/linux/, mais ils sont également manquants. Si quelqu'un a un journal de cette époque, veuillez le fournir.

À son tour, le 5.8 «MAINTAINERS» a 19033 lignes et 1501 mainteneurs sont répertoriés.

MAINTAINERS


THE REST
M: Linus Torvalds <[email protected]>
L: [email protected]
S: Buried alive in reporters
Q: http://patchwork.kernel.org/project/LKML/list/
T: git git://git.kernel.org/pub/scm/linux/
kernel/git/torvalds/linux.git
F: *
F: */

Version Control Systems

03.png

Avant BitKeeper, il n'était pas très clair qui a contribué et dans quelle mesure. Une véritable histoire a commencé vers 2002, et avant cela, elle est déduite de l'histoire laissée dans chaque document.

En 2005 diverses choses BitKeeper est devenu inutilisable, donc Linus a créé un Git à partir de zéro et y est allé. Migré.

Le recrutement de développeurs est un défi éternel, et la Linux Foundation continue de soutenir les programmes Outreachy et LKMP. Nous avons également fait des efforts pour augmenter le nombre de cotisants.

04.png

Removing Unused Code

Les efforts pour supprimer le code inutilisé sont en cours, par exemple, 4.17 en 2018 a supprimé 18000 lignes de 8 architectures.

Il semble que ce soit le cas, mais ce n'est qu'un petit montant par rapport au montant de l'augmentation.

05.png

Highly Diversified Corporate Contributors

Le noyau Linux a été fourni par de nombreuses entreprises. De 2007 à 2019, il y a eu 780048 engagements de 1730 entreprises. Les 20 premières entreprises représentent 68%.

06.png

Au cours des 10 dernières années, environ 400 entreprises ont contribué chaque année.

07.png

Release Model with Predictable Release Cycle Cadence

Il existe quatre types de modèles de version Linux. ・ Prepatch (RC) ・ Ligne principale ・ Stable ・ Stable à long terme

Le dernier noyau peut être trouvé sur https://www.kernel.org/.

Il y a eu beaucoup de débats sur le cycle de publication, mais depuis 2011, un modèle de publication généralement fonctionnel a été construit. En commençant par une fenêtre de fusion de deux semaines, de nouvelles fonctionnalités seront testées et introduites dans le référentiel git. Lorsque la balise «RC1» est ajoutée, elle entre dans un cycle de test d'intégration, de débogage et d'optimisation, et la «RC» est mise à jour chaque semaine jusqu'à ce que la qualité et la stabilité soient assurées. Lorsque de nouvelles fonctionnalités sont publiées, la prochaine fenêtre de fusion redémarrera.

08.png

Improving Automated Testing the Kernel

Les tests du noyau sont basés sur les efforts de la communauté. Sparse, Smatch, coccicheck fonctionnent en tant que test automatique BOT, et Trinity, syzbot fonctionnent en tant que test de décoloration. De nombreux bugs ont été découverts par ces derniers.

09.png

Stable Release Process

La version stable est publiée environ une fois par semaine.

En prenant Linux 5.7.9 comme exemple, la version candidate RC est d'abord annoncée à ML par e-mail. Il y a 166 correctifs dans cette RF, tous notifiés individuellement dans ML. Chaque développeur et outil de test automatisé teste sa méthode de publication et renvoie les résultats dans un e-mail. S'il y a un problème avec RC, RC2, RC3 et ses successeurs seront créés, mais RC2 est rarement créé.

Automatic Build BOT construit pour plus de 30 architectures. La version stable se construit pour 31 architectures et 56 configurations. Et de nombreux tests tels que LKFT, LTP, Linux Kernel Selftests, Linux Perf sont effectués. Il sera publié lorsque le test sera complètement terminé et la notification sera envoyée à ML.

Longterm Release Kernels

Avec l'introduction du support à long terme, Linux est devenu encore plus populaire dans les produits embarqués. Des distributions telles que SUSE, Ubuntu et Red Hat ont été les premières à introduire ce concept et à prouver son utilité dans le noyau.

Les bogues trouvés dans le noyau stable seront d'abord appliqués à la version stable, mais seront rétroportés s'il est déterminé qu'il est applicable au LTS. Le jugement quant à savoir si la version stable du correctif peut être appliquée à LTS est amélioré d'année en année en raison du développement d'outils d'apprentissage automatique par Sasha Levin. Il y a eu 18668 backports en 2019, plus que les changements apportés au noyau stable il y a 15 ans.

Certains marchés recherchent un support SLTS à ultra-long terme encore plus long que LTS, et certains développeurs ont décidé de prendre en charge Linux 4.4 et 4.19 en tant que SLTS.

Conclusion

Les noyaux Linux actuels sont utilisés dans tous les domaines de la sécurité et de la sécurité, des appareils médicaux aux vaisseaux spatiaux. L'amélioration de l'infrastructure pour assurer une sécurité et une sécurité appropriées avant d'utiliser Linux est l'un des prochains défis majeurs.

Le noyau Linux a une base solide pour continuer à être le leader mondial en créant les meilleures pratiques pour améliorer l'ensemble de l'industrie OSS.

Thanks

Je suis hors de vue.

10.png

Impressions

Linux est une partie indispensable du monde, mais c'était un matériau intéressant qui donne une idée approximative de sa trajectoire de croissance. Le nombre de committers, le nombre de commits, la quantité de code et l'augmentation spectaculaire de ces dernières années montrent clairement l'importance de ce projet.

Cependant, il n'y a que du matériel qui est proche du public, et il n'y a que du contenu qui peut être rendu public. Retour Side Historique Ce serait amusant d'avoir un rapport sur History.

Récemment, dans le cloud sans serveur, l'existence d'un système d'exploitation de bas niveau tente de le cacher dans les coulisses, mais dès que quelque chose se produit, je dois creuser des commandes et des journaux, j'ai donc besoin de connaissances sur Linux après tout. Est toujours le même. Le monde où vous n'aurez pas à vous soucier de l'existence et du type d'OS viendra-t-il vraiment un jour?

Recommended Posts

Noyau Linux, son rapport d'histoire de 29 ans
À propos des paramètres du noyau Linux
Version du noyau Linux 5.x (2/4)
Vérifiez la version du noyau Linux
Version du noyau Linux 5.x (3/4)
Version du noyau Linux 5.x (4/4)
Version du noyau Linux 5.x (1/4)
Compilation du noyau Linux pour DE10nano
Noyau Linux auto-construit avec clang
[Reconstruction du noyau LINUX] Mise à jour (4.18.0 → 5.8.8)