Linux 核心發行生命週期

最後更新: 2021-08-07 19:49:51 +0800 +0800
原文以英文撰寫。您正在閱讀AI翻譯版本。

Linux 開發遵循以時間為基礎的週期,圍繞 Linus Torvalds 維護的主線 Git 樹進行。主線開發、穩定版回移植與發行版核心彼此相關,但屬於不同的發行串流。

主線開發 #

大多數修補程式會經過階層,而不是直接送給 Linus。開發者將修補程式發佈至相關郵件清單;審查者與子系統維護者進行評估;維護者將接受的工作暫存於子系統樹。較低層級的樹可以餵給較高層級的樹,例如驅動程式樹餵給網路樹。整合至 linux-next 會在子系統樹抵達主線前暴露彼此衝突。在合併視窗期間,頂層維護者會將簽署的提取請求送至 Linus 的樹。

主線發行會為下一版開始約兩週的合併視窗。該視窗中合併的變更通常已經開發、審查並測試完成。關閉視窗會產生 <major>.<minor>-rc1;之後約每週發布候選版本,同時維護者修正回歸與整合缺陷。除非是異常的低風險情況,否則新功能會延後。最終發行通常在 -rc7 之後完成,但嚴重的未解決缺陷可能需要額外候選版本。因此完整週期約需 9–10 週。

發行候選版本是測試快照,不是穩定更新分支。例如,6.12-rc3 是主線 6.12 的第三個候選版本,而 6.12.3 是最終 6.12 發行後的第三次穩定更新。

穩定版與長期支援版本 #

主線最終發行後,指定的穩定版維護者會負責其 .y 分支。目前的穩定版規則要求修正或等效修正必須先存在於主線。候選修正必須經過測試、明顯正確、包含上下文不超過 100 行,且必須處理真實的使用者可見錯誤或加入裝置 ID。沒有使用者效益的功能開發與清理不符合資格。接受的回移植會在下一個 <major>.<minor>.<patch> 發行前經過公開審查週期。

部分穩定分支會被選為長期支援版本。選擇不會編碼在版本號中,也不會事先承諾未來的發行版本。維護者能力、使用者與供應商需求,以及該發行版本的適用性都會影響選擇。預計的生命週期結束日期可能延長或縮短,因為它代表維護承諾,而非 ABI 保證。

發行版供應商可以從主線或長期支援版本開始,加入修補程式並發布不同的支援時程。因此,像 6.12.18-200.fc41.x86_64 這樣的字串表示供應商建置,而不是上游穩定標籤。

版本號與生命週期結束 #

目前上游最終發行使用 <major>.<minor>,穩定更新則加入第三個元件。主要版本遞增不表示 ABI 中斷;kernel.org 說明,次要版本號變得不便於使用時才會變更主要版本。2.6 以前的奇偶開發慣例已過時,因為現在使用 -rc 識別預發行版本。

使用下列命令檢查執行中的建置:

sh
uname -r

輸出中的本機與供應商後綴是建置發行字串的一部分。請使用 Git 標籤比較底層上游版本,不要將任意後綴當成上游修補版本號排序。

kernel.org 發行頁面是目前主線、穩定與長期系列、其維護者以及預計生命週期結束日期的權威來源。系列達到生命週期結束後,上游不再為其發布修正;繼續使用需要供應商的維護承諾,或遷移至受支援的系列。

來源參考 #

評論

在 GitHub 上閱讀或評論(發表評論需要登入)