Apa tujuan tambalan dari kernel linux?

21

Untuk setiap versi kernel Linux, ada file tambalan yang tersedia untuk diunduh. Sebagai contoh, linux-3.12.22 memiliki patch-3.12.22 yang sesuai .

Apa tujuan tambalan itu? Untuk selalu menambal kernel yang sesuai sebelum mengkompilasinya, atau untuk memperbarui versi kernel dengan kernel yang cocok dengan patch (3.12.22, dalam kasus ini)?

Elena
sumber

Jawaban:

31

Tujuannya untuk menghemat banyak traffic.

Tarbal Linux sekitar 75MB, sedangkan tambalan biasanya hanya memiliki beberapa KB.

Jadi jika Anda mengkompilasi kernel Anda sendiri, dan memperbarui ke setiap versi minor baru pada hari itu dirilis, alih-alih mengunduh ulang tarball 75MB baru untuk setiap pembaruan minor, Anda cukup mengunduh (misalnya) tarball utama untuk versi yang diberikan satu kali dan kemudian tambalan untuk versi yang Anda inginkan. Ketika ada pembaruan Anda menggunakan kembali tarball utama yang sudah diunduh.

linux-3.14.tar.xz+ di patch-3.14.{1..n}.xzbawah total 100MB.

linux-3.14.tar.xz+ linux-3.14.{1..n}.tar.xzbeberapa kali 100MB.

Tidak ada kerugian untuk menambal, hasil akhirnya identik, kecuali jika Anda melakukan sesuatu yang salah.

frostschutz
sumber
9
Seperti yang ditulis, ini tidak cukup menjawab pertanyaan. Secara eksplisit, tujuan dari patch adalah menerapkannya pada versi n-1 dari sumber "memutakhirkan" ke versi n. The keuntungan adalah bahwa hal itu menghemat banyak lalu lintas, sebagai jawabannya menjelaskan.
David Richerby
1
Saya bukan penutur asli. Tetapi entah bagaimana, keuntungan terdengar terlalu lemah bagi saya. Menyimpan bandwidth / lalu lintas penting untuk server mana pun. Itu memiliki tujuan.
frostschutz
Bagian yang tidak Anda jawab secara eksplisit adalah, "Untuk selalu menambal kernel yang sesuai sebelum mengkompilasinya, atau untuk memperbarui versi kernel sebelumnya dengan kernel yang cocok dengan patch tersebut (3.12.22, dalam kasus ini)? " patch-3.12.22 adalah untuk memutakhirkan dari versi 3.12.21 ke .22, tidak untuk diterapkan ke sumber 3.12.22 sebelum mengkompilasinya.
David Richerby
Tambalan biasanya untuk .0, misalnya VERSION = 3 PATCHLEVEL = 12 -SUBLEVEL = 0 +SUBLEVEL = 22. Akan sangat menyebalkan melewati 20 tambalan ...
frostschutz
Bagaimana skema penghematan lalu lintas seperti itu lebih baik daripada misalnya memiliki klon git dari repositori dan melakukan git pullketika versi baru dirilis?
Ruslan
5

Ini disebut "patchset". Patchset adalah kelompok tambalan yang melayani fungsi yang sama, terkait, atau mengimplementasikan fungsi dalam langkah-langkah. Ini khususnya, adalah perbedaan antara revisi utama kernel (XY) dan revisi minor / pemeliharaan berikutnya (XY Z ) dengan beberapa usulan:

  • Hemat ruang di server.
  • Hemat bandwidth.
  • Mudah diaplikasikan dan didistribusikan

Ingat bahwa tambalan itu bersifat inkremental. Anda harus terlebih dahulu menerapkan patch .1 sebelum patch .2, dan setelah itu Anda dapat menerapkan .3.

Braiam
sumber