À quoi servent les correctifs du noyau Linux?

21

Pour chaque version du noyau Linux, un fichier correctif est disponible en téléchargement. Par exemple, linux-3.12.22 a un patch-3.12.22 correspondant .

Quel est le but de ce patch? Pour toujours patcher le noyau correspondant avant de le compiler, ou pour mettre à jour une ancienne version du noyau avec le noyau auquel le patch correspond (3.12.22, dans ce cas)?

Elena
la source

Réponses:

31

Le but est d'économiser beaucoup de trafic.

L'archive tar Linux est d'environ 75 Mo, alors que les correctifs n'ont généralement que quelques Ko.

Donc, si vous compilez votre propre noyau et mettez à jour chaque nouvelle version mineure le jour de sa sortie, au lieu de retélécharger une nouvelle archive tar de 75 Mo pour chaque mise à jour mineure, il vous suffit de télécharger (par exemple) l'archive tar principale d'une version donnée une fois puis le patch pour la version que vous voulez réellement. Lorsqu'il y a une mise à jour, vous réutilisez l'archive principale déjà téléchargée.

linux-3.14.tar.xz+ patch-3.14.{1..n}.xzest inférieur à 100 Mo au total.

linux-3.14.tar.xz+ linux-3.14.{1..n}.tar.xzest plusieurs fois de 100 Mo.

Il n'y a pas d'inconvénient à patcher, le résultat final est identique, sauf si vous faites quelque chose de mal.

frostschutz
la source
9
Tel qu'il est écrit, cela ne répond pas tout à fait à la question. Pour être explicite, le but du correctif est que son application à la version n-1 de la source le "met à niveau" vers la version n. L' avantage est qu'il permet d'économiser beaucoup de trafic, comme la réponse le décrit.
David Richerby
1
Je ne suis pas natif. Mais l'avantage me semble trop faible d'une manière ou d'une autre. La sauvegarde de la bande passante / du trafic est importante pour tout serveur. Cela a un but.
frostschutz
La partie à laquelle vous n'avez pas répondu explicitement est: "Pour toujours patcher le noyau correspondant avant de le compiler, ou pour mettre à jour une ancienne version du noyau avec le noyau auquel le patch correspond (3.12.22, dans ce cas)? " le patch-3.12.22 doit être mis à niveau de la version 3.12.21 vers .22, et ne pas être appliqué aux sources 3.12.22 avant de les compiler.
David Richerby
Les correctifs sont généralement pour .0, par exemple VERSION = 3 PATCHLEVEL = 12 -SUBLEVEL = 0 +SUBLEVEL = 22. Ce serait ennuyeux de passer par 20 patchs ...
frostschutz
Comment un tel système d'économie de trafic serait-il meilleur que d'avoir un clone git du référentiel et de le faire git pullquand une nouvelle version est publiée?
Ruslan
5

Ceux-ci sont appelés "patchset". Les jeux de correctifs sont des groupes de correctifs qui servent la même fonctionnalité, sont liés ou implémentent une fonction par étapes. Ce sont en particulier la différence entre une révision majeure du noyau (XY) et des révisions ultérieures mineures / de maintenance (XY Z ) avec plusieurs propositions:

  • Économisez de l'espace sur les serveurs.
  • Économisez de la bande passante.
  • Être facilement applicable et distribuable

N'oubliez pas que ces patchs sont incrémentiels. Vous devez d'abord appliquer le patch .1 avant le patch .2, puis appliquer le .3.

Braiam
la source