撰稿丨諾亞
眾所周知,Linux內(nèi)核很復雜。除了普通的穩(wěn)定內(nèi)核版本,還會有 LTS(長期支持)版本。通常,每年都有一個 LTS 內(nèi)核版本,其支持期要比普通版本長得多。
最近,關(guān)于Linux內(nèi)核的LTS的支持期限有了新的動向。
在日前召開的歐洲開源峰會上,Linux Weekly News執(zhí)行編輯Jonathan Corbet宣布,Linux內(nèi)核的LTS 周期將從原先的六年縮短至兩年。
1、6年變2年,為何要縮短LTS周期
當然這一調(diào)整肯定不是說變就變。目前Linux內(nèi)核有六個LTS版本,分別是 6.1、5.15、5.10、5.4、4.19 和 4.14。這些版本仍在遵循當前既定的生命周期結(jié)束時間表。
但對于新的長期內(nèi)核來說,只會得到兩年的預計EOL(End of Life,生命周期結(jié)束)。
至于為何縮短這一周期,Corbet提到了兩點原因。
其一,使用舊版本的Linux內(nèi)核的人并不是很多?!熬S護(舊內(nèi)核)那么長時間真的沒有意義,因為人們沒有使用它們?!?/p>
其二,維護者的工作量過大。當前Linux 內(nèi)核社區(qū)有6個LTS 支持版本,但維護負責人只有Greg Kroah-Hartman和Sasha Levin兩位,在支持力量上實在有些力不從心。
在Corbet看來,維護人員的工作不僅是無償?shù)?,而且由于采用Fuzzing(模糊測試)技術(shù),固然很有成效,但有時揭露出的小問題需要耗費維護人員更多精力。
縱然這一調(diào)整會引起部分人的不滿,但在Corbet看來是有必要的。另外,他建議,維護人員或許可以考慮與雇主溝通,把Linux內(nèi)核維護工作轉(zhuǎn)為付費工作。
此外,Corbet還提到,LTS內(nèi)核的維護“可能需要從使用Linux中受益的諸多公司獲得更多支持”。這些公司需要意識到,他們必須對Linux有所回饋。
事實上,所謂兩年的支持期限也是有彈性的。
根據(jù)發(fā)布頁面的FAQ,“每個新的長期內(nèi)核通常只有一個2年的預計EOL,但如果整個行業(yè)有足夠的興趣來幫助支持它更長的時間,可以進一步延長?!币簿褪钦f,可以同意某個LTS 內(nèi)核的維護時間超過兩年,但需要根據(jù)必要性、所獲得的支持以及參與人員來評估達成。
2、反復橫跳:Android或成為重災區(qū)
對LTS版本進行維護是一項耗時耗力的工作,這次變革很大程度上是為了給不堪重負的維護人員“減負”,但一些依賴于舊版本Linux內(nèi)核的系統(tǒng)可能會因此承擔一定的風險,比如無法獲得關(guān)鍵更新。
在有可能受到影響的項目中,Android肯定是“重災區(qū)”。兩年對于PC來說或許是一個很合宜的支持窗口,但對于Android來說,遠遠不夠。
最初的LTS擴展主要是針對Android和物聯(lián)網(wǎng)設備開發(fā)的,由谷歌高級工程師Iliyan Malchev在Android Linux演講中宣布。問題在于,在PC上,兩年只代表內(nèi)核更新之間的時間間隔。但嵌入式設備傾向于不更新內(nèi)核,所以兩年時間需要覆蓋整個開發(fā)周期和消費者支持窗口,顯然這不夠長。
在這一背景下,Linux內(nèi)核的長期支持版在維護期限上經(jīng)歷了“反復橫跳”。一開始,LTS版本的維護期就是兩年。
直到2017年9月,在Linaro Connect 大會上,Malchev宣布,Linux內(nèi)核團隊已經(jīng)同意將Linux的LTS版本的維護期從兩年延長到六年。
“所有的 Android 設備都是基于LTS內(nèi)核的,LTS以前的維護期只有兩年,如果你幸運的話,可能會趕上一年的LTS支持,但如果不快速支持的話,它可能已經(jīng)結(jié)束了。”
Android內(nèi)核的開發(fā)過程是一個完整的分支:首先,谷歌從一個新的Linux LTS中分離出來,形成“Android Common”內(nèi)核,然后將其發(fā)送給像高通這樣的SoC供應商,并為每種型號的SoC進行分支,然后將該分支發(fā)送給設備制造商,后者再為每種型號的設備進行分支。這需要一段時間。
圖片
由于只有兩年的Linux內(nèi)核支持(如圖中藍色條),在Android設備開發(fā)完成并準備發(fā)布時,內(nèi)核的支持窗口幾乎已經(jīng)結(jié)束
在谷歌的設想中,手機需要兩年的時間才能開發(fā)出來,內(nèi)核在工程的開始階段就被鎖定了。當手機最終發(fā)布面市時,LTS內(nèi)核的支持期就差不多到時限了,也就是說客戶在其設備的生命周期內(nèi)使用的是過時的內(nèi)核。所以兩年時間實在不足以覆蓋從開發(fā)到消費的全生命周期。但如果延長到六年的話,就為設備開發(fā)和產(chǎn)品的所有權(quán)生命周期提供了充足的支持時間。
圖片
不過,LTS內(nèi)核的維護畢竟是一項艱巨的工程。因此,彼時就有人強調(diào),這一舉措并不意味著所有未來的 Linux LTS版本都將有六年的支持期限。果不其然,到了2023年的當下,Linux內(nèi)核的LTS周期又從原先的六年恢復至兩年。
3、結(jié)語
Linux內(nèi)核是系統(tǒng)的底座。對于所有的上層技術(shù)而言,內(nèi)核是基石,是支柱。內(nèi)核的性能、穩(wěn)定性乃至技術(shù)創(chuàng)新方向,都會對整個Linux生態(tài)產(chǎn)生重要影響。這就是為什么要不遺余力去重視Linux內(nèi)核的維護。
問題的癥結(jié)在于,向后移植是一項繁重的工作,將維護負擔交給無薪志愿者,倦怠在所難免。所以有這樣一種聲音:向后移植的負荷應該讓從長達6年的服務中獲利的公司承擔才合理。
正如一位前SUSE員工所說的那樣:這不是性感的工作!客戶如果需要穩(wěn)定性和長期支持,可以考慮選擇RedHat或SUSE這樣的公司,它們的重點是為這些組件提供10年以上的維護。
需要正視的是,對于從Linux受益甚多的公司,主動承擔更多Linux LTS 支持責無旁貸。
參考鏈接:
https://arstechnica.com/gadgets/2023/09/linux-gives-up-on-6-year-lts-thats-fine-for-pcs-bad-for-android/
https://kernel.org/category/releases.html
https://linux.cn/article-16211-1.html