Mục đích của các bản vá của kernel linux là gì?


21

Đối với mỗi phiên bản nhân Linux, có một tệp vá có sẵn để tải xuống. Chẳng hạn, linux-3.12.22 có một bản vá tương ứng -3.12.22 .

Mục đích của bản vá đó là gì? Để luôn vá kernel tương ứng trước khi biên dịch nó, hoặc để đưa phiên bản kernel cũ cập nhật với kernel mà patch phù hợp (3.12.22, trong trường hợp này)?

Câu trả lời:


31

Mục đích là để tiết kiệm rất nhiều lưu lượng.

Tarball Linux là khoảng 75 MB, trong khi các bản vá thường chỉ có vài KB.

Vì vậy, nếu bạn biên dịch kernel của riêng mình và cập nhật lên từng phiên bản nhỏ mới vào ngày phát hành, thay vì tải lại tarball 75 MB mới cho mỗi bản cập nhật nhỏ, bạn chỉ cần tải xuống (ví dụ) tarball chính cho một phiên bản nhất định một lần và sau đó Bản vá cho phiên bản bạn thực sự muốn. Khi có bản cập nhật, bạn sử dụng lại tarball chính đã tải xuống.

linux-3.14.tar.xz+ patch-3.14.{1..n}.xzlà dưới 100 MB trong tổng số.

linux-3.14.tar.xz+ linux-3.14.{1..n}.tar.xzlà vài lần 100MB.

Không có nhược điểm để vá, kết quả cuối cùng là giống hệt nhau, trừ khi bạn làm điều gì đó sai.


9
Như đã viết, điều này không hoàn toàn trả lời câu hỏi. Để rõ ràng, mục đích của bản vá là áp dụng nó cho phiên bản n-1 của nguồn "nâng cấp" nó lên phiên bản n. Các lợi thế là nó tiết kiệm rất nhiều giao thông, là câu trả lời mô tả.
David Richerby

1
Tôi không phải là người bản ngữ. Nhưng lợi thế nghe có vẻ quá yếu đối với tôi bằng cách nào đó. Tiết kiệm băng thông / lưu lượng là quan trọng đối với bất kỳ máy chủ. Nó có mục đích.
frostschutz

Phần bạn không trả lời rõ ràng là: "Để luôn vá kernel tương ứng trước khi biên dịch nó, hoặc đưa phiên bản kernel cũ cập nhật với kernel mà bản vá khớp với (3.12.22, trong trường hợp này)? " patch-3.12.22 là nâng cấp từ phiên bản 3.12.21 lên .22, không được áp dụng cho các nguồn 3.12.22 trước khi biên dịch chúng.
David Richerby

Các bản vá thường dành cho .0, ví dụ VERSION = 3 PATCHLEVEL = 12 -SUBLEVEL = 0 +SUBLEVEL = 22. Sẽ rất khó chịu khi trải qua 20 bản vá ...
frostschutz

Làm thế nào sơ đồ tiết kiệm lưu lượng như vậy sẽ tốt hơn ví dụ như có một bản sao git của kho lưu trữ và thực hiện git pullkhi một phiên bản mới được phát hành?
Ruslan

5

Chúng được gọi là "patchset". Patchset là nhóm các bản vá phục vụ cùng chức năng, có liên quan hoặc thực hiện chức năng theo các bước. Cụ thể, đây là sự khác biệt giữa một phiên bản chính của hạt nhân (XY) và các sửa đổi nhỏ / bảo trì tiếp theo (XY Z ) với một số đề xuất:

  • Tiết kiệm không gian trên các máy chủ.
  • Tiết kiệm băng thông.
  • Dễ dàng áp dụng và phân phối

Hãy nhớ rằng những miếng vá đó là gia tăng. Trước tiên bạn phải áp dụng bản vá .1 trước bản vá .2 và sau đó bạn có thể áp dụng .3.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.