為什么你的發(fā)行版仍然在使用“過時的”Linux內(nèi)核?
檢查一下你的系統(tǒng)所使用的 Linux 內(nèi)核版本,你十有八九會發(fā)現(xiàn),按照 Linux 內(nèi)核官網(wǎng)提供的信息,該內(nèi)核版本已經(jīng)達到使用壽命終期(EOL)了。
一個軟件一旦達到了使用壽命終期,那么就意味著它再也不會得到 bug 修復(fù)和維護了。
這自然會引發(fā)一連串問題:為什么我的 Linux 發(fā)行版會使用一個已經(jīng)達到使用壽命終期的內(nèi)核呢?這樣做有沒有安全風(fēng)險?我的系統(tǒng)還安全嗎?
下面將逐一解答這些問題。
總結(jié)
上游內(nèi)核維護與你的發(fā)行版的內(nèi)核維護是兩個不同的概念。
例如,根據(jù) Linux 內(nèi)核官網(wǎng),Linux 內(nèi)核 4.15 版本可能已經(jīng)達到使用壽命終期了,但是在 2023 年 4 月之前,Ubuntu 18.04 長期維護版本將會繼續(xù)使用這個版本,并通過向后移植安全補丁和修復(fù) bug 來提供維護。
檢查 Linux 內(nèi)核版本,以及是否達到使用壽命終期
首先,查看你的系統(tǒng)所使用的 Linux 內(nèi)核版本:
uname -r
我使用的是 Ubuntu 18.04,輸出的 Linux 內(nèi)核版本如下:
abhishek@itsfoss:~$ uname -r5.0.0-37-generic
接下來,可以到 Linux 內(nèi)核官網(wǎng)上看看哪些 Linux 內(nèi)核版本仍然在維護狀態(tài)。在網(wǎng)站主頁上就可以看到相關(guān)信息。
你看到的內(nèi)核版本狀態(tài)應(yīng)該類似于下圖:
Linux 內(nèi)核狀態(tài)
如果你的內(nèi)核版本沒有列在內(nèi)核官網(wǎng)主頁上,就說明該版本已經(jīng)達到了使用壽命終期。
可以看到,5.0 內(nèi)核版本并不在列,這說明該內(nèi)核版本已經(jīng)不再得到維護。事實上,該版本在 2019 年 6 月就已經(jīng)達到使用壽命終期了。
不幸的是,Linux 內(nèi)核的生命周期沒有任何規(guī)律可循。不是說常規(guī)的內(nèi)核穩(wěn)定發(fā)布版可以得到 X 月的維護、長期維護版本(LTS)可以得到 Y 年的維護。沒有這回事。
根據(jù)實際需求,可能會存在內(nèi)核的多個 LTS 版本,其使用壽命終期各不相同。在這個頁面上可以查到這些 LTS 版本的相關(guān)信息,包括計劃的使用壽命終期。
那么問題來了:既然 Linux 內(nèi)核官網(wǎng)上明確表示 5.0 版本的內(nèi)核已經(jīng)達到了使用壽命終期,Ubuntu 為什么還在提供這個內(nèi)核版本呢?
你的發(fā)行版使用的 Linux 內(nèi)核已經(jīng)達到了使用壽命終期,但是沒關(guān)系!
你是否想過,為什么 Ubuntu/Debian/Fedora 等發(fā)行版被稱為 Linux “發(fā)行版”?這是因為,它們“發(fā)行” Linux 內(nèi)核。
這些發(fā)行版會對 Linux 內(nèi)核進行不同的修改,并添加各種 GUI 元素(包括桌面環(huán)境、顯示服務(wù)器等)以及軟件,然后再呈現(xiàn)給用戶。
按照通常的工作流,Linux 發(fā)行版會選擇一個內(nèi)核,提供給其用戶,然后在接下來的幾個月、幾年中,甚至是達到內(nèi)核的使用壽命終期之后,仍然會繼續(xù)使用該內(nèi)核。
這樣能夠保障安全嗎?其實是可以的,因為 發(fā)行版會通過向后移植全部的重要修補來維護內(nèi)核。
換句話說,你的 Linux 發(fā)行版會確保 Linux 內(nèi)核沒有漏洞和 bug,并且已經(jīng)通過向后移植獲得了重要的新特性。在“過時的舊版本 Linux 內(nèi)核”上,其實有著數(shù)以千計的改動。
如果 Linux 內(nèi)核網(wǎng)站上說某個內(nèi)核版本已經(jīng)達到了使用壽命終期,那么就意味著 Linux 內(nèi)核的核心維護團隊不會再對該內(nèi)核版本進行升級和打補丁了。
但與此同時,Debian/Ubuntu 或者其他發(fā)行版的開發(fā)者們會繼續(xù)工作,通過從(由內(nèi)核核心團隊維護的)更新的內(nèi)核版本中遷移相關(guān)的修改,維持這個老版本的生命力。
重點在于,即使你的發(fā)行版看上去是在使用一個已經(jīng)過時的 Linux 內(nèi)核,其實該內(nèi)核也得到了良好的維護,并非是真的過時了。
你是否應(yīng)該使用最新的穩(wěn)定內(nèi)核版本?
新的 Linux 內(nèi)核穩(wěn)定版本每隔 2 到 3 個月發(fā)布一次,有不少用戶躍躍欲試。
實話說,除非有十分充分的理由,否則不應(yīng)該使用最新版本的穩(wěn)定內(nèi)核。你使用的發(fā)行版并不會提供這個選項,你也不能指望通過在鍵盤上敲出 sudo apt give-me-the-latest-stable-kernel 解決問題。
此外,手動安裝主流 Linux 內(nèi)核版本本身就是一個挑戰(zhàn)。即使安裝成功,之后每次發(fā)布 bug 修復(fù)的時候,負(fù)責(zé)更新內(nèi)核的就會是你了。此外,當(dāng)新內(nèi)核達到使用壽命終期之后,你就有責(zé)任將它升級到更新的內(nèi)核版本了。和常規(guī)的 Ubuntu 更新不同,內(nèi)核升級無法通過 apt upgrade 完成。
同樣需要記住的是,切換到主流內(nèi)核之后,可能就無法使用你的發(fā)行版提供的一些驅(qū)動程序和補丁了。
正如 Greg Kroah-Hartman所言,“你能使用的最好的內(nèi)核,就是別人在維護的內(nèi)核。”除了你的 Linux 發(fā)行版之外,又有誰更勝任這份工作呢!
希望你對這個主題已經(jīng)有了更好的理解。下回發(fā)現(xiàn)你的系統(tǒng)正在使用的內(nèi)核版本已經(jīng)達到使用壽命終期的時候,希望你不會感到驚慌失措。
歡迎在下面的評論區(qū)中留下你的疑問或建議。

















 
 
 





 
 
 
 