Qu'est-ce qui empêche les distributions d'utiliser le dernier noyau Linux? [fermé]

13

La plupart des distributions Linux sont livrées avec une certaine version du noyau et ne la mettent à jour que sur les versions ponctuelles ( x.y.zà x.y.(z+1)) et pour les mises à jour de sécurité.

D'un autre côté, je sais que Linux a une politique très stricte de ne pas changer le noyau ABI et de ne jamais casser l'espace utilisateur. En fait, Linus a eu de nombreuses crises de colère publiques dirigées contre les développeurs qui voulaient (intentionnellement ou accidentellement) changer le noyau de manière non rétrocompatible.

Je ne comprends pas pourquoi les distributions utilisent des noyaux "stables" au lieu de toujours mettre à jour vers le dernier noyau. Ce n'est pas une critique, je suis juste curieux de la raison.

imgx64
la source
1
parce que les derniers noyaux manquent de tests. il peut contenir des bogues qui peuvent affecter la stabilité du système et la stabilité est l'objectif principal de tout responsable de la distribution.

Réponses:

8

Les interfaces d' appel système du noyau Linux sont très stables. Mais le noyau a d'autres interfaces qui ne sont pas toujours compatibles.

  • /procest généralement stable, mais il y a eu quelques changements dans le passé (par exemple, certaines interfaces se déplaçant vers un /syscertain temps après la /syscréation).
  • Un certain nombre d'interfaces liées aux périphériques ont été supprimées dans le passé.
  • /syscontient des interfaces stables (répertoriées dans Documentation/ABI/stable) et d'autres qui ne le sont pas. Vous n'êtes pas censé utiliser ceux qui ne le sont pas, mais parfois les gens le font, et une simple mise à niveau de sécurité et de stabilité ne devrait pas leur casser les choses.
  • Il y a eu des incompatibilités avec les modules dans le passé (les noyaux plus récents nécessitant une version plus récente des modules), bien que je pense que c'était il y a longtemps.
  • Il y a également eu des incompatibilités en ce qui concerne le processus de démarrage sur certaines configurations inhabituelles. Même l'augmentation de la taille du noyau pourrait causer des problèmes sur certains systèmes embarqués.
  • Alors que les interfaces externes du noyau sont assez stables, les interfaces internes ne le sont pas. La règle pour les interfaces internes est que n'importe qui peut les casser tant qu'elles corrigent des utilisations internes, mais la réparation des modules tiers est de la responsabilité de l'auteur desdits modules. Dans l'ensemble, de nombreuses installations exécutent des modules tiers: des pilotes supplémentaires pour le matériel qui n'était pas pris en charge par le noyau (si le matériel est pris en charge par le nouveau noyau, c'est bien, mais si ce n'est pas le cas), des pilotes propriétaires ( alors que le monde serait un meilleur endroit si tous les pilotes étaient open source, ce n'est pas le cas; par exemple, si vous voulez de bonnes performances GPU 3D, vous êtes à peu près coincé avec des pilotes propriétaires), etc.
  • Certaines personnes ont besoin de recompiler leur noyau ou certains modules tiers. Les noyaux plus récents ne peuvent souvent pas être compilés avec des compilateurs plus anciens.

Dans l'ensemble, la principale raison pour ne pas passer à une version plus récente du noyau est les modules tiers.

Certaines distributions proposent néanmoins des noyaux récents en option. Par exemple, Debian met les noyaux des tests à la disposition des utilisateurs de la version stable via les rétroportages. De même, sur Ubuntu LTS, les noyaux des versions les plus récentes d'Ubuntu sont disponibles, mais pas utilisés par défaut. Ceci est surtout utile pour les nouvelles installations sur du matériel qui n'était pas encore pris en charge lors de la finalisation de la distribution.

Gilles 'SO- arrête d'être méchant'
la source
9

Je ne travaille pas pour une distribution, mais je peux penser à au moins deux raisons:

  • Certaines distributions appliquent leurs correctifs personnalisés au noyau qui ne sont pas encore fusionnés dans la ligne principale. Cela signifie que pour chaque mise à jour du noyau, ils doivent s'assurer que leurs correctifs ne cassent rien et fonctionnent toujours correctement.
  • Même la dernière version stable du noyau peut contenir un bogue, les distributions qui prennent la fiabilité au sérieux voudront passer par certaines procédures / processus de test avant de livrer un noyau à leurs clients.
rejouer
la source
2
De toute façon, les correctifs spécifiques à la distribution ne sont pas nécessairement destinés à l'amont. Et le dernier noyau en amont contiendra en moyenne plus de bogues que le noyau «stock» testé d'une distribution. Une grande partie de ce que fait le noyau distribué par une distribution est d'essayer d'éliminer / corriger autant de bogues que possible, sans changer le code plus que nécessaire.
Faheem Mitha
0

Des distributions plus conservatrices suivent (et participent activement) aux versions stables du noyau, par souci de stabilité. Les plus aventureux utilisent une version du noyau une ou deux derrière la dernière et la plus grande vanille, plus une éclaboussure de correctifs rétroportés à partir de l'astuce de développement (et certains maison).

La politique actuelle de développement du noyau est que la version de Linus va de l'avant avec de nouveaux jouets brillants et n'a pas peur des changements en gros. Certaines versions sont jugées suffisamment stables (en termes de développement) pour former la base de tests et de stabilisation rigoureux, donnant des séries stables.

Tout cela est possible grâce aux outils utilisés, tout le monde peut toiletter son propre arbre git , garder les branches et les arbres en amont intéressants synchronisés localement, piloter les commits des autres et partager librement les changements locaux.

vonbrand
la source
La série de noyaux stables n'est pas choisie en fonction de la stabilité d'une version particulière, elle est arbitraire. À partir de cette année, la série stable sera basée sur la première version publiée chaque année ... Chaque version du noyau est censée être stable et ne jamais rompre la compatibilité descendante.
Stephen Kitt