Les 25 années de développement du noyau Linux peuvent-elles être qualifiées ou abstraites en termes simples? [fermé]

12

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:

  1. 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?
  2. 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.


la source
"Prise en charge d'un maximum de 229 ID de processus" m'a en quelque sorte sauté aux yeux, j'ai donc cherché sur Google et la seule référence est, semble-t-il, la source d'origine de ce paragraphe . Je pensais que les identifiants de processus ont une plage de 16 bits (signée), c'est-à-dire ~ 16 000, mais cela peut en fait être beaucoup plus que cela . Ce n'est certainement pas quelques centaines.
goldilocks
3
Cette question est trop large car elle recherche l'article Wikipedia sur le sujet.
Gilles 'SO- arrête d'être méchant'
Avez-vous l'intention d'écrire un article ici? C'est bien, mais il serait utile, si vous êtes précis, de savoir ce que vous essayez de faire. Je suppose que ce n'est pas seulement pour avoir un bon résumé prêt pour votre prochaine soirée au point d'eau local;)
goldilocks
1
Je me souviens vaguement qu'il y avait au moins quelques personnes qui prévoyaient d'écrire des dissertations à ce sujet, ou similaire. Je soupçonne que vous trouverez de la littérature académique sur le sujet ... Outre le fait de pointer vers des publications existantes, il semble que vos questions nécessiteraient des mois de recherche pour répondre.
derobert
Sur votre question, vous devrez peut-être nous parler des termes du profane, afin d'obtenir une bonne réponse ici. En dehors de cela, postez-le sur le lkml et obtenez leurs commentaires sur votre chronologie. Si vous avez raté quelque chose d'important, ils vous le feront savoir.
Bananguin

Réponses:

11

Tu demandes:

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?

Je doute que ces questions aient des réponses bien définies. Cependant, je pense qu'il n'est pas difficile de comprendre les forces qui conduisent au développement du noyau Linux.

Premièrement, les ordinateurs sont des choses de plus en plus importantes. Chomsky remarque quelque part qu'ils sont au cœur de toute économie industrialisée. Un ordinateur n'est rien sans un système d'exploitation, ce qui rend donc les systèmes d'exploitation importants.

Pendant un certain temps dans les années 80 et 90, les systèmes d'exploitation propriétaires sont devenus ascendants. C'était en quelque sorte un état de fait contre nature. Windows de Microsoft a été pendant un temps dominant, et l'est toujours dans un sens, mais il n'a conservé sa position qu'en exploitant les effets de réseau.

Avec l'essor d'Internet, il est devenu possible de produire un système d'exploitation communautaire. Cependant, un tel système d'exploitation ne serait utile que s'il ne pouvait à son tour être propriétaire. La famille de systèmes d'exploitation BSD n'était pas dans cette catégorie. D'où la montée du noyau Linux au cœur d'un système d'exploitation communautaire qui ne pouvait pas être propriétaire.

Notez que beaucoup de grands fournisseurs d'ordinateurs ont soutenu le noyau Linux. Pourquoi? Les individus se soucient de la liberté. Les communautés se soucient de la liberté. Les entreprises ne se soucient que du profit et des stratégies associées. Je crois que de nombreuses sociétés informatiques ont fait la paix avec la notion d'un système d'exploitation «banalisé», un «terrain de jeu égal», si vous voulez. Ils ont examiné l'exemple de Microsoft qui gagne beaucoup d'argent en s'appropriant un système d'exploitation, mais tout le monde ne peut pas être Microsoft, et avoir un seul fournisseur dans une telle position de pouvoir est, pour le moins, problématique, ne serait-ce que parce que cela donne un avantage indu du point de vue des autres sociétés.

Donc, je pense que puisque la plupart des entreprises ne sont pas en mesure de devenir Microsoft, et ne veulent peut-être pas l'être, ont décidé de prendre en charge un système d'exploitation "de base". Encore une fois, des règles du jeu équitables. Ainsi, tout le monde peut utiliser ce système d'exploitation à toutes fins utiles, et personne dans le groupe n'est avantagé par rapport à quelqu'un d'autre. Une autre façon de voir les choses est qu'avoir quelque chose d'aussi basique qu'un système d'exploitation devient propriétaire est une grave interférence avec les principes du marché libre. En général, les sociétés ne sont pas spécialement en faveur des marchés libres si elles peuvent être gagnantes, mais si elles ne le peuvent pas, elles le sont.

La plupart des caractéristiques du noyau Linux peuvent vraiment être déduites de ces dynamiques. Par exemple, la nature modulaire et malléable d'un système d'exploitation de type Unix est bien adaptée à un système d'exploitation conçu pour être un "produit". En outre, la nature évolutive rapide du projet de noyau est en partie due au fait qu'il essaie de satisfaire toutes ces nombreuses exigences des entreprises pour être ce dont elles ont besoin. Bien qu'une grande partie de l'activité soit centrée sur le support matériel / les pilotes, il y a aussi beaucoup d'activité en dehors de cette zone; développement constant de nouvelles fonctionnalités et maintenance et amélioration de celles existantes.

Bien sûr, nous ne devons pas ignorer les désirs de la communauté, communément appelée communauté du logiciel libre, ou parfois FOSS (Free et Open Source Software), d'avoir un système d'exploitation gratuit pour les gens ordinaires à utiliser, qui n'est pas contrôlé par les entreprises. Après tout, des projets comme Debian et Fedora sont gérés par des bénévoles qui croient en ces valeurs. Cependant, je pense que le rôle joué par les entreprises ne doit pas non plus être sous-estimé.

Faheem Mitha
la source
1
+1 Pour avoir soulevé la question des forces sociopolitiques qui ont rendu Linux combiné avec GNU déroutant dans le courant dominant. Je pense que c'est un aspect très important des origines, qui bien que cela puisse sembler être un "problème non technique", est en fait une caractéristique déterminante du développement pratique de l'OS - voir en particulier les écrits d' Eric S. Raymond - et une partie importante de la dynamique de son adoption par un large éventail de fabricants de matériel et en tant que plate-forme historiquement prédominante d'Internet.
goldilocks
^ Notez que beaucoup de gens ont un noyau Linux chez eux et ne le savent même pas à cause de cela (votre routeur, votre boîtier DVR, etc.)
goldilocks
Je salue votre réponse d'avoir situé le noyau dans le temps et d'avoir fait appel à la dynamique qui a prévalu - l'évolution de l'informatique; l'attrait commercial; les forces du marché; l'Internet; liberté de l'informatique; licences; et comment tout ce qui précède a un impact sur l'implémentation dans le noyau, avec une perspective sur Linux dans son ensemble. Je dois lire dans votre déclaration sur un «état de fait non naturel» que nous pouvons manquer de perspective historique pour bien évaluer cela - et c'est important. Bien que j'étais vraiment concentré sur le noyau en soi, je réfléchirai davantage à vos points et commentaires ci-dessus. Merci!
1
@goldilocks: Sans parler de vos téléphones Android.
slebetman