¿Cuál es el propósito de los parches del kernel de Linux?

21

Para cada versión del kernel de Linux, hay un archivo de parche disponible para descargar. Por ejemplo, linux-3.12.22 tiene un parche-3.12.22 correspondiente .

¿Cuál es el propósito de ese parche? ¿Para parchar siempre el kernel correspondiente antes de compilarlo, o para actualizar una versión anterior del kernel con el kernel que coincide con el parche (3.12.22, en este caso)?

Elena
fuente

Respuestas:

31

El propósito es ahorrar mucho tráfico.

El tarball de Linux es de alrededor de 75 MB, mientras que los parches generalmente solo tienen unos pocos KB.

Entonces, si compila su propio kernel y actualiza a cada nueva versión menor el día de su lanzamiento, en lugar de volver a descargar un nuevo tarball de 75 MB para cada actualización menor, simplemente descargue (por ejemplo) el tarball principal para una versión determinada una vez y luego el parche para la versión que realmente quieres. Cuando hay una actualización, reutiliza el tarball principal ya descargado.

linux-3.14.tar.xz+ patch-3.14.{1..n}.xzestá por debajo de 100 MB en total.

linux-3.14.tar.xz+ linux-3.14.{1..n}.tar.xzes varias veces 100MB.

Los parches no tienen inconvenientes, el resultado final es idéntico, a menos que haga algo mal.

Frostschutz
fuente
99
Como está escrito, esto no responde la pregunta. Para ser explícito, el propósito del parche es que aplicarlo a la versión n-1 de la fuente lo "actualiza" a la versión n. La ventaja es que ahorra mucho tráfico, como lo describe la respuesta.
David Richerby
1
No soy un hablante nativo. Pero la ventaja me parece demasiado débil de alguna manera. Ahorrar ancho de banda / tráfico es importante para cualquier servidor. Tiene un proposito.
frostschutz
La parte que no respondió explícitamente es: "¿Para parchar siempre el kernel correspondiente antes de compilarlo, o para actualizar una versión anterior del kernel con el kernel que coincide con el parche (3.12.22, en este caso)? " El parche 3.12.22 es actualizar de la versión 3.12.21 a .22, no se debe aplicar a las fuentes 3.12.22 antes de compilarlas.
David Richerby
Los parches son generalmente para .0, por ejemplo VERSION = 3 PATCHLEVEL = 12 -SUBLEVEL = 0 +SUBLEVEL = 22. Sería molesto pasar por 20 parches ...
frostschutz
¿Cómo sería mejor ese esquema de ahorro de tráfico que, por ejemplo, tener un clon git del repositorio y hacerlo git pullcuando se lanza una nueva versión?
Ruslan
5

Estos se llaman "patchset". Patchset son grupos de parches que sirven a la misma funcionalidad, están relacionados o implementan una función en pasos. Estos, en particular, son la diferencia entre una revisión mayor del núcleo (XY) y las revisiones menores / de mantenimiento posteriores (XY Z ) con varias propuestas:

  • Ahorre espacio en los servidores.
  • Ahorre ancho de banda.
  • Ser fácilmente aplicable y distribuible

Recuerde que esos parches son incrementales. Primero debe aplicar el parche .1 antes del parche .2, y luego puede aplicar .3.

Braiam
fuente