Kernel Release Process¶
WIP
Trang này mới ở mức giới thiệu, sẽ được bổ sung chi tiết sau. Về hiện trạng các bản kernel cụ thể, xem bài Hiện trạng các dòng Linux kernel.
Tổng quan¶
Linux kernel phát triển theo mô hình time-based release: cứ khoảng 9–10 tuần có một bản mainline mới, không chờ đủ tính năng mới phát hành. Linus Torvalds là người phát hành bản mainline; các subsystem maintainer thu thập patch của mình rồi gửi lên Linus.
Một chu kỳ phát triển¶
| Giai đoạn | Thời gian | Nội dung |
|---|---|---|
| Merge window | khoảng 2 tuần | Maintainer gửi các tính năng mới đã chuẩn bị sẵn (đã qua linux-next); kết thúc bằng -rc1 |
| Stabilization | -rc2 đến -rc7 (đôi khi -rc8), mỗi tuần một bản |
Chỉ nhận bản sửa lỗi và regression, không nhận tính năng mới |
| Release | cuối chu kỳ | Linus tag bản chính thức vX.Y, merge window của bản kế tiếp mở ngay sau đó |
Các nhánh (tree) chính¶
- Mainline (
torvalds/linux.git): nơi phát hànhvX.Yvà các-rcN. - linux-next: tree tích hợp của các subsystem, dùng để phát hiện xung đột trước khi vào merge window.
- Subsystem tree: tree riêng của từng maintainer (net, mm, drm, ...).
- Stable: các bản
X.Y.Zchỉ chứa bản sửa lỗi, do stable maintainer quản lý. - Longterm (LTS): một số bản stable được hỗ trợ lâu hơn, thường mỗi năm có một bản được chọn làm LTS.
Stable và LTS¶
- Bản sửa lỗi vào mainline trước, sau đó được backport sang stable. Patch cần
backport được đánh dấu
Cc: stable@vger.kernel.orgvà/hoặc có thẻFixes:. - Bản stable bình thường chỉ được hỗ trợ cho tới khi bản mainline kế tiếp ra đời một thời gian ngắn.
- Bản LTS được cập nhật trong nhiều năm, phù hợp cho sản phẩm nhúng. Thời hạn từng bản xem tại kernel.org/releases.
- Dự án CIP (Civil Infrastructure Platform) hỗ trợ một số bản LTS lâu hơn nữa cho hạ tầng công nghiệp.
Đánh số phiên bản¶
Số phiên bản có dạng X.Y.Z (ví dụ 6.6.30):
X.Y: bản mainline.Z: số thứ tự bản stable/LTS.- Số major
Xtăng theo quy ước, không đánh dấu breaking change; kernel giữ nguyên tắc không phá vỡ user space. -rcN: release candidate;-next-YYYYMMDD: snapshot của linux-next.
Chọn kernel cho sản phẩm nhúng¶
- Thường chọn bản LTS do vendor SoC/BSP hoặc Yocto cung cấp, rồi cập nhật
theo các bản
X.Y.Zđể nhận bản vá bảo mật. - Kernel của vendor thường là bản LTS cộng thêm patch riêng; cần cân nhắc chi phí khi muốn nâng lên bản mới hơn.
- Theo dõi CVE và bản vá stable thay vì giữ nguyên một bản kernel cố định.
Nội dung sẽ bổ sung¶
- Quy trình gửi patch (
git send-email,checkpatch.pl,get_maintainer.pl). - Cách đọc
MAINTAINERS,Documentation/process/. - Quy trình backport và kiểm tra stable-rc.
- Mối liên hệ với Yocto/Petalinux (chọn
linux-yocto,linux-xlnx...).