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