Linux內核新動作!安卓被卡脖子!

2023-09-22   51CTO

原標題:Linux內核新動作!安卓被卡脖子!

眾所周知,Linux內核很複雜。除了普通的穩定內核版本,還會有 LTS(長期支持)版本。通常,每年都有一個 LTS 內核版本,其支持期要比普通版本長得多。

最近,關於Linux內核的LTS的支持期限有了新的動向。

在日前召開的歐洲開源峰會上,Linux Weekly News執行編輯Jonathan Corbet宣布,Linux內核的LTS 周期將從原先的六年縮短至兩年。

1、6年變2年,為何要縮短LTS周期

當然這一調整肯定不是說變就變。目前Linux內核有六個LTS版本,分別是 6.1、5.15、5.10、5.4、4.19 和 4.14。這些版本仍在遵循當前既定的生命周期結束時間表。

但對於新的長期內核來說,只會得到兩年的預計EOL(End of Life,生命周期結束)。

至於為何縮短這一周期,Corbet提到了兩點原因。

其一,使用舊版本的Linux內核的人並不是很多。「維護(舊內核)那麼長時間真的沒有意義,因為人們沒有使用它們。」

其二,維護者的工作量過大。當前Linux 內核社區有6個LTS 支持版本,但維護負責人只有Greg Kroah-Hartman和Sasha Levin兩位,在支持力量上實在有些力不從心。

在Corbet看來,維護人員的工作不僅是無償的,而且由於採用Fuzzing(模糊測試)技術,固然很有成效,但有時揭露出的小問題需要耗費維護人員更多精力。

縱然這一調整會引起部分人的不滿,但在Corbet看來是有必要的。另外,他建議,維護人員或許可以考慮與僱主溝通,把Linux內核維護工作轉為付費工作。

此外,Corbet還提到,LTS內核的維護「可能需要從使用Linux中受益的諸多公司獲得更多支持」。這些公司需要意識到,他們必須對Linux有所回饋。

事實上,所謂兩年的支持期限也是有彈性的。

根據發布頁面的FAQ,「每個新的長期內核通常只有一個2年的預計EOL,但如果整個行業有足夠的興趣來幫助支持它更長的時間,可以進一步延長。」也就是說,可以同意某個LTS 內核的維護時間超過兩年,但需要根據必要性、所獲得的支持以及參與人員來評估達成。

2、反覆橫跳:Android或成為重災區

對LTS版本進行維護是一項耗時耗力的工作,這次變革很大程度上是為了給不堪重負的維護人員「減負」,但一些依賴於舊版本Linux內核的系統可能會因此承擔一定的風險,比如無法獲得關鍵更新。

在有可能受到影響的項目中,Android肯定是「重災區」。兩年對於PC來說或許是一個很合宜的支持窗口,但對於Android來說,遠遠不夠。

最初的LTS擴展主要是針對Android和物聯網設備開發的,由谷歌高級工程師Iliyan Malchev在Android Linux演講中宣布。問題在於,在PC上,兩年只代表內核更新之間的時間間隔。但嵌入式設備傾向於不更新內核,所以兩年時間需要覆蓋整個開發周期和消費者支持窗口,顯然這不夠長。

在這一背景下,Linux內核的長期支持版在維護期限上經歷了「反覆橫跳」。一開始,LTS版本的維護期就是兩年。

直到2017年9月,在Linaro Connect 大會上,Malchev宣布,Linux內核團隊已經同意將Linux的LTS版本的維護期從兩年延長到六年。

「所有的 Android 設備都是基於LTS內核的,LTS以前的維護期只有兩年,如果你幸運的話,可能會趕上一年的LTS支持,但如果不快速支持的話,它可能已經結束了。」

Android內核的開發過程是一個完整的分支:首先,谷歌從一個新的Linux LTS中分離出來,形成「Android Common」內核,然後將其發送給像高通這樣的SoC供應商,並為每種型號的SoC進行分支,然後將該分支發送給設備製造商,後者再為每種型號的設備進行分支。這需要一段時間。

圖片

由於只有兩年的Linux內核支持(如圖中藍色條),在Android設備開發完成並準備發布時,內核的支持窗口幾乎已經結束

在谷歌的設想中,手機需要兩年的時間才能開發出來,內核在工程的開始階段就被鎖定了。當手機最終發布面市時,LTS內核的支持期就差不多到時限了,也就是說客戶在其設備的生命周期內使用的是過時的內核。所以兩年時間實在不足以覆蓋從開發到消費的全生命周期。但如果延長到六年的話,就為設備開發和產品的所有權生命周期提供了充足的支持時間。

圖片

不過,LTS內核的維護畢竟是一項艱巨的工程。因此,彼時就有人強調,這一舉措並不意味著所有未來的 Linux LTS版本都將有六年的支持期限。果不其然,到了2023年的當下,Linux內核的LTS周期又從原先的六年恢復至兩年。

3、結語

Linux內核是系統的底座。對於所有的上層技術而言,內核是基石,是支柱。內核的性能、穩定性乃至技術創新方向,都會對整個Linux生態產生重要影響。這就是為什麼要不遺餘力去重視Linux內核的維護。

問題的癥結在於,向後移植是一項繁重的工作,將維護負擔交給無薪志願者,倦怠在所難免。所以有這樣一種聲音:向後移植的負荷應該讓從長達6年的服務中獲利的公司承擔才合理。

正如一位前SUSE員工所說的那樣:這不是性感的工作!客戶如果需要穩定性和長期支持,可以考慮選擇RedHat或SUSE這樣的公司,它們的重點是為這些組件提供10年以上的維護。

需要正視的是,對於從Linux受益甚多的公司,主動承擔更多Linux LTS 支持責無旁貸。