Le noyau Linux a presque 25 ans . Si je devais proposer la version courte de l'historique de développement du noyau Linux depuis 1991 (sa date de création), et en particulier depuis 1994 (1.0.0) jusqu'à aujourd'hui, eh bien je ne pourrais pas. Le mieux que je puisse faire avant de lire toutes les notes de publication du noyau serait de fournir les éléments suivants, qui sont les fonctionnalités générales de la version ajoutées au noyau jusqu'à la version 3.11 (notes et liens omis):
- La version 1.0 du noyau Linux est sortie le 14 mars 1994. Cette version du noyau Linux ne prend en charge que les systèmes informatiques à processeur unique i386. La portabilité est devenue une préoccupation et la version 1.2 (publiée le 7 mars 1995) a donc pris en charge les systèmes informatiques utilisant des processeurs basés sur les architectures Alpha, SPARC et MIPS.
- La version 2.0 est sortie le 9 juin 1996. Il y avait 41 versions dans la série. La principale caractéristique de 2.0 était la prise en charge SMP (c'est-à-dire la prise en charge de plusieurs processeurs dans un seul système) et la prise en charge de plusieurs types de processeurs.
- La version 2.2 (publiée le 26 janvier 1999) a supprimé le verrou tournant global et a fourni une prise en charge améliorée de SMP, et a ajouté la prise en charge des architectures m68k et PowerPC ainsi que de nouveaux systèmes de fichiers (y compris une prise en charge en lecture seule pour NTFS de Microsoft).
- La version 2.4.0 , publiée le 4 janvier 2001, contenait la prise en charge des cartes ISA Plug and Play, USB et PC. Il comprenait également la prise en charge du processeur PA-RISC de Hewlett-Packard. Le développement de la version 2.4.x a légèrement changé en ce sens que davantage de fonctionnalités ont été mises à disposition pendant toute la durée de la série, notamment: la prise en charge de Bluetooth, Logical Volume Manager (LVM) version 1, la prise en charge RAID, les systèmes de fichiers InterMezzo et ext3.
- La version 2.6.0 est sortie le 18 décembre 2003. Le développement de 2.6.x a évolué vers l'inclusion de nouvelles fonctionnalités tout au long de la série. Parmi les modifications apportées à la série 2.6, on peut citer: l'intégration de µClinux dans les sources du noyau principal, la prise en charge de PAE, la prise en charge de plusieurs nouvelles lignes de CPU, l'intégration d'ALSA dans les sources du noyau principal, la prise en charge de 2 32 utilisateurs maximum ( à partir de 2 16 ), prise en charge de jusqu'à 2 29 ID de processus (64 bits uniquement, arches 32 bits toujours limités à 2 15), a considérablement augmenté le nombre de types de périphériques et le nombre de périphériques de chaque type, amélioré la prise en charge 64 bits, la prise en charge des systèmes de fichiers qui prennent en charge des tailles de fichier allant jusqu'à 16 téraoctets, la préemption dans le noyau, la prise en charge de la bibliothèque de threads POSIX native (NPTL), intégration Linux en mode utilisateur dans les sources du noyau principal, intégration SELinux dans les sources du noyau principal, prise en charge d'InfiniBand, et bien plus encore. A noter également l'ajout de plusieurs systèmes de fichiers dans les versions 2.6.x: FUSE, JFS, XFS, ext4 et plus. Des détails sur l'historique de la série de noyaux 2.6 peuvent être trouvés dans les fichiers ChangeLog sur la zone de sortie du code source de la série 2.6 de kernel.org.
- La version 3.0 est sortie le 22 juillet 2011. Torvalds a annoncé que le grand changement était, "RIEN. Absolument rien." Le 30 mai 2011, Torvalds a annoncé: "... assurons-nous vraiment de faire la prochaine version non seulement un tout nouveau numéro brillant, mais aussi un bon noyau." Après le processus de développement prévu de 6 à 7 semaines, il devrait sortir près du 20e anniversaire de Linux.
- En décembre 2012, Torvalds a décidé de réduire la complexité du noyau en supprimant la prise en charge des processeurs i386, faisant de la série de noyaux 3.7 la dernière prenant toujours en charge le processeur d'origine. Prise en charge unifiée de la même série pour le processeur ARM.
- La version 3.11 , publiée le 2 septembre 2013, ajoute de nombreuses nouvelles fonctionnalités telles que le nouveau drapeau O_TMPFILE pour open (2) pour réduire les vulnérabilités des fichiers temporaires, la gestion expérimentale dynamique de la puissance AMD Radeon, l'interrogation du réseau à faible latence et zswap (cache de swap compressé).
Je pourrais aussi ajouter que depuis de nombreuses années la Fondation Linux a été rapporte sur le développement du noyau. Voici les points saillants du développement du noyau 2012-2013:
- Près de 92 000 ensembles de modifications ont été fusionnés à partir de 3 738 développeurs individuels représentant 536 sociétés (que nous connaissons).
- Une vaste gamme de nouvelles fonctionnalités importantes a été fusionnée dans la ligne principale. Ceux-ci incluent un fonctionnement complet sans ticking, des espaces de noms utilisateur, la virtualisation KVM et Xen pour ARM, le suivi de la charge par entité dans le planificateur, le point de contrôle / redémarrage de l'espace utilisateur, la prise en charge de l'architecture ARM 64 bits, le système de fichiers Flash F2FS, de nombreuses améliorations de réseau visant aux problèmes de latence et de bufferbloat, deux sous-systèmes indépendants fournissant une mise en cache rapide pour les périphériques de stockage en bloc, et bien plus encore.
- La querelle de longue date sur les fonctionnalités du noyau spécifiques à Android s'est complètement estompée en arrière-plan. La fonctionnalité "wakelocks" très discutée a été tranquillement remplacée par une solution principale différente qui est utilisée dans les derniers appareils Android.
- L'utilisation d'outils automatisés pour trouver des bogues dans les noyaux de développement a considérablement augmenté au cours de cette période. Des outils comme le testeur de fuzz "trinity" et le système de construction et de démarrage zero-day découvrent un grand nombre de bogues dans les noyaux de pré-version, raccourcissant le cycle de développement et permettant à la communauté de fournir des versions de meilleure qualité.
- Les contributions des secteurs mobile et embarqué continuent d'augmenter. Linaro, Samsung et TI, par exemple, ont contribué ensemble 4,4% des changements dans la version précédente de ce document; pour la période allant jusqu'à 3,10, ils ont contribué à près de 11% de tous les changements.
- Le projet noyau a participé pour la première fois au programme de sensibilisation des femmes, ce qui a conduit à 41 candidatures pour 7 postes disponibles. Au cours du processus de demande, 374 correctifs ont été soumis au noyau, et plus du tiers de ces correctifs ont été acceptés dans la version 3.10 du noyau. Le processus interne est en cours, mais les résultats ne commenceront pas à apparaître avant les prochaines versions du noyau.
De plus, quantifier ce qui arrive au noyau n'est pas très difficile car nous avons des métriques au-delà des commits individuels . Par exemple, nous savons que le noyau 1.0.0 en 1994 avait 176 250 lignes de code; et nous savons qu'un noyau contemporain comme 3.10 a 15 803 499 lignes de code. Beaucoup plus. La fréquence de libération du noyau a augmenté (63 jours pour 3.10), ainsi que le taux de changement (9 commits par heure ou plus en ce moment). Pour citer la Linux Foundation:
La capacité de maintenir ce taux de changement pendant des années est sans précédent dans aucun projet de logiciel public précédent.
Mais tout cela n'apporte que peu de renseignements à mon avis. Par conséquent, je demanderais:
- Cette évolution d'un quart de siècle peut-elle être sommairement qualifiée au-delà de l'ajout linéaire de toutes les fonctionnalités répertoriées qui composent ce noyau au fil du temps?
- Et cela nous donne-t-il une idée de ce qu'est le noyau Linux ou de sa destination? Après 25 ans de développement, certaines conclusions peuvent certainement être tirées à ce sujet?
Vous cherchez une réponse abstraite en termes simples qui dit tout sans recourir à tout dire.