Le modèle de version stable du noyau Linux a commencé en 2005, lorsqu'il a été déterminé que le modèle de développement du noyau existant (une nouvelle version tous les 2-3 mois) ne répondait pas aux besoins de la plupart des utilisateurs. Les utilisateurs voulaient que des corrections de bogues soient apportées au cours de ces 2 à 3 mois, et les distributions Linux avaient du mal à maintenir les noyaux à jour sans les commentaires de la communauté du noyau. En général, les tentatives pour sécuriser les noyaux individuels et avec les dernières corrections de bogues ont été un effort important et déroutant de la part de nombreuses personnes différentes.
Les versions stables du noyau sont basées directement sur les versions de Linus Torvalds et sont publiées environ toutes les semaines, en fonction de divers facteurs externes (période de l'année, correctifs disponibles, charge de travail du responsable, etc.). La numérotation des versions stables commence par le numéro de la version du noyau, et un numéro supplémentaire est ajouté à la fin de celui-ci. Par exemple, le noyau 4.4 est publié par Linus, puis les versions stables du noyau basées sur ce noyau sont numérotées 4.4.1, 4.4.2, 4.4.3, etc. Cette séquence est généralement abrégée avec le numéro 4.4.y lorsqu'il s'agit d'une arborescence de version stable du noyau. Chaque arbre de version stable du noyau est maintenu par un seul développeur de noyau, qui est responsable de la sélection des correctifs nécessaires pour la version et de la gestion du processus de révision/publication.
Des noyaux stables sont maintenus pendant toute la durée du cycle de développement actuel. Une fois que Linus a publié un nouveau noyau, l'arborescence de version du noyau stable précédente est arrêtée et les utilisateurs doivent passer au noyau le plus récent.
Noyaux stables à long terme
Après un an de ce nouveau processus de publication stable, il a été déterminé que de nombreux utilisateurs différents de Linux souhaitaient qu'un noyau soit pris en charge pendant plus de quelques mois. En réponse, la version du noyau LTS (Long Term Supported) a été créée, avec le premier noyau LTS (2.6.16) publié en 2006. Depuis lors, un nouveau noyau LTS a été sélectionné une fois par an et la communauté du noyau maintient ce noyau pendant un certain temps. minimum de 2 ans.
Au moment d'écrire ces lignes, les noyaux LTS sont les versions 4.4.y, 4.9.y, 4.14.y, 4.19.y, 5.4.y et 5.10.y. Un nouveau noyau est publié chaque semaine. En raison des besoins de certains utilisateurs et distributions, quelques noyaux plus anciens supplémentaires sont maintenus par les développeurs du noyau à un cycle de publication plus lent. Des informations sur tous les noyaux stables à long terme, qui en est responsable et combien de temps ils seront maintenus, peuvent être trouvées sur la page des versions de kernel.org .
Les versions du noyau LTS acceptent en moyenne 6 à 8 correctifs par jour, tandis que les versions normales du noyau stable contiennent 10 à 15 correctifs par jour. Le nombre de correctifs fluctue par version en fonction de l'heure actuelle de la version du noyau de développement correspondante et d'autres variables externes. Plus un noyau LTS est ancien, moins il y a de correctifs qui lui sont applicables, car de nombreuses corrections de bogues récentes ne concernent pas les noyaux plus anciens. Cependant, plus un noyau est ancien, plus il est difficile de rétroporter les changements qui doivent être appliqués, en raison des changements dans la base de code. Ainsi, bien qu'il puisse y avoir un nombre inférieur de correctifs globaux appliqués, l'effort impliqué dans la maintenance d'un noyau LTS est supérieur à la maintenance du noyau stable normal.
Règles de correctif du noyau stable
Les règles de ce qui peut être ajouté à une version stable du noyau sont restées presque identiques depuis son introduction et sont résumées ci-dessous :
- Doit être évidemment correct et testé.
- Ne doit pas dépasser 100 lignes.
- Doit réparer une seule chose.
- Doit résoudre quelque chose qui a été signalé comme étant un problème.
- Peut être un nouvel identifiant d'appareil ou une bizarrerie pour le matériel, mais n'ajoute pas de nouvelles fonctionnalités majeures.
- Doit déjà être fusionné dans l'arbre de Linus Torvalds.
La dernière règle, "Doit déjà être fusionné dans l'arborescence de Linus Torvalds", empêche la communauté du noyau de perdre des correctifs. La communauté ne veut jamais qu'un correctif entre dans une version stable du noyau qui ne figure pas déjà dans l'arborescence de Linus Torvalds, de sorte que quiconque met à niveau ne devrait jamais voir une régression. Cela évite de nombreux problèmes que d'autres projets qui maintiennent une branche stable et de développement peuvent avoir.
Mises à jour du noyau
La communauté du noyau Linux a promis à sa base d'utilisateurs qu'aucune mise à jour ne cassera jamais tout ce qui fonctionne actuellement dans une version précédente. Cette promesse est toujours vraie aujourd'hui. Des régressions se produisent, mais ce sont les bogues les plus prioritaires et sont soit rapidement corrigés, soit le changement qui a provoqué la régression est rapidement annulé de l'arborescence du noyau Linux.
Cette promesse est vraie pour les mises à jour incrémentielles du noyau stable, ainsi que pour les mises à jour majeures plus importantes qui se produisent tous les trois mois. Cependant, la communauté du noyau ne peut faire cette promesse que pour le code fusionné dans l'arborescence du noyau Linux. Tout code fusionné dans le noyau d'un périphérique qui ne figure pas dans les versions de kernel.org est inconnu et les interactions avec celui-ci ne peuvent jamais être planifiées, ni même envisagées.
Les appareils basés sur Linux qui ont de grands ensembles de correctifs peuvent avoir des problèmes majeurs lors de la mise à jour vers des noyaux plus récents, en raison du grand nombre de modifications entre chaque version (10 à 14 000 modifications par version). Les ensembles de correctifs SoC sont particulièrement connus pour avoir des problèmes de mise à jour vers des noyaux plus récents en raison de leur grande taille et de la modification importante du code du noyau spécifique à l'architecture, et parfois du noyau. En conséquence, la plupart des fournisseurs de SoC commencent à normaliser l'utilisation des versions LTS pour leurs appareils, permettant à ces appareils de recevoir des mises à jour de bogues et de sécurité directement de la communauté du noyau Linux.
Sécurité
Lors de la publication des versions du noyau, la communauté du noyau Linux ne déclare presque jamais des modifications spécifiques en tant que correctifs de sécurité . Cela est dû au problème fondamental de la difficulté à déterminer si un correctif est un correctif de sécurité ou non au moment de sa création. De plus, de nombreuses corrections de bogues ne sont considérées comme liées à la sécurité qu'après un certain temps, la communauté du noyau recommande donc fortement de toujours prendre toutes les corrections de bogues publiées.
Lorsque des problèmes de sécurité sont signalés à la communauté du noyau, ils sont corrigés dès que possible et diffusés publiquement dans l'arborescence de développement et les versions stables. Comme décrit ci-dessus, les changements ne sont presque jamais décrits comme un "correctif de sécurité", mais ressemblent plutôt à n'importe quel autre correctif de bogue pour le noyau. Ceci est fait pour permettre aux parties concernées de mettre à jour leurs systèmes avant que le signaleur du problème ne l'annonce.
Pour plus de détails sur le signalement des bogues de sécurité à la communauté du noyau afin de les résoudre et de les corriger dès que possible, reportez-vous à Bogues de sécurité dans le guide de l'utilisateur et de l'administrateur du noyau Linux sur www.kernel.org .
Étant donné que les bogues de sécurité ne sont pas annoncés au public par l'équipe du noyau, les numéros CVE pour les problèmes liés au noyau Linux sont généralement publiés des semaines, des mois et parfois des années après la fusion du correctif dans les branches stable et de développement.
Maintenir un système sécurisé
Lors du déploiement d'un appareil qui utilise Linux, il est fortement recommandé que toutes les mises à jour du noyau LTS soient prises par le fabricant et transmises à leurs utilisateurs après que des tests appropriés aient montré que la mise à jour fonctionne bien. Cela a plusieurs avantages :
- Les versions ont été examinées par les développeurs du noyau dans leur ensemble, et non par parties individuelles.
- Il est difficile, voire impossible, de déterminer quels correctifs résolvent les problèmes de "sécurité" et lesquels ne le font pas. Presque chaque version LTS contient au moins un correctif de sécurité connu, et beaucoup sont encore "inconnus".
- Si les tests révèlent un problème, la communauté des développeurs du noyau réagira rapidement pour résoudre le problème.
- Les tentatives de filtrer uniquement les modifications que vous exécutez entraîneront une arborescence du noyau qu'il est impossible de fusionner correctement avec les futures versions en amont.