Qual è lo scopo delle patch del kernel Linux?


21

Per ogni versione del kernel Linux, è disponibile per il download un file patch. Ad esempio, linux-3.12.22 ha una corrispondente patch-3.12.22 .

Qual è lo scopo di quella patch? Aggiornare sempre il kernel corrispondente prima di compilarlo o aggiornare una versione precedente del kernel con il kernel che corrisponde alla patch (3.12.22, in questo caso)?

Risposte:


31

Lo scopo è quello di risparmiare molto traffico.

Il tarball di Linux è di circa 75 MB, mentre le patch di solito hanno solo pochi KB.

Quindi, se si compila il proprio kernel e si aggiorna ad ogni nuova versione minore il giorno in cui viene rilasciato, invece di scaricare nuovamente un nuovo tarball da 75 MB per ogni aggiornamento minore, è sufficiente scaricare (ad esempio) il tarball principale per una determinata versione una volta e poi la patch per la versione desiderata. Quando c'è un aggiornamento riutilizzi il tarball principale già scaricato.

linux-3.14.tar.xz+ patch-3.14.{1..n}.xzè inferiore a 100 MB in totale.

linux-3.14.tar.xz+ linux-3.14.{1..n}.tar.xzè più volte 100MB.

Non ci sono aspetti negativi nel patching, il risultato finale è identico, a meno che tu non faccia qualcosa di sbagliato.


9
Come scritto, questo non risponde alla domanda. Per essere espliciti, lo scopo della patch è che applicarla alla versione n-1 del sorgente "la aggiorna" alla versione n. Il vantaggio è che consente di risparmiare molto traffico, come descritto nella risposta.
David Richerby,

1
Non sono un madrelingua. Ma il vantaggio sembra in qualche modo troppo debole per me. Il salvataggio della larghezza di banda / del traffico è importante per qualsiasi server. Ha uno scopo.
frostschutz,

La parte a cui non hai risposto esplicitamente è: "Patchare sempre il kernel corrispondente prima di compilarlo, o aggiornare una versione precedente del kernel con il kernel che la patch corrisponde (3.12.22, in questo caso)? " patch-3.12.22 è l'aggiornamento dalla versione 3.12.21 a .22, da non applicare alle fonti 3.12.22 prima di compilarle.
David Richerby,

Le patch di solito sono per .0es VERSION = 3 PATCHLEVEL = 12 -SUBLEVEL = 0 +SUBLEVEL = 22. Sarebbe fastidioso passare attraverso 20 patch ...
frostschutz,

In che modo tale schema di risparmio del traffico sarebbe migliore rispetto ad esempio avere un clone git del repository e fare git pullquando viene rilasciata una nuova versione?
Ruslan,

5

Questi sono chiamati "patchset". Patchset sono gruppi di patch che offrono la stessa funzionalità, sono correlati o implementano una funzione in passaggi. Queste in particolare, fanno la differenza tra una revisione maggiore del kernel (XY) e le successive revisioni minori / di manutenzione (XY Z ) con diverse proposte:

  • Risparmia spazio sui server.
  • Risparmia larghezza di banda.
  • Essere facilmente applicabile e distribuibile

Ricorda che quei set di patch sono incrementali. Devi prima applicare la patch .1 prima della patch .2 e successivamente puoi applicare .3.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.