Categories
科技報導

為什麼你的發行版仍然在使用“過時的”Linux 內核?



檢查一下你的系統所使用的 Linux 內核版本,你十有八九會發現,按照 Linux 內核官網提供的信息,該內核版本已經達到使用壽命終期(EOL)了。一個軟件一旦達到了使用壽命終期,那麼就意味著它再也不會得到 bug 修復和維護了。

這自然會引發一連串問題:為什麼我的 Linux 發行版會使用一個已經達到使用壽命終期的內核呢?這樣做有沒有安全風險?我的系統還安全嗎?

下面將逐一解答這些問題。

總結

上游內核維護與你的發行版的內核維護是兩個不同的概念。

例如,根據Linux 內核官網,Linux 內核4.15 版本可能已經達到使用壽命終期了,但是在2023 年4 月之前,Ubuntu 18.04 長期維護版本將會繼續使用這個版本,並通過向後移植安全補丁和修復bug來提供維護。

檢查 Linux 內核版本,以及是否達到使用壽命終期

首先,查看你的系統所使用的 Linux 內核版本:

uname-r

我使用的是 Ubuntu 18.04,輸出的 Linux 內核版本如下:

[email protected]:~$ uname -r5.0.0-37-generic

接下來,可以到 Linux 內核官網上看看哪些 Linux 內核版本仍然在維護狀態。在網站主頁上就可以看到相關信息。

你看到的內核版本狀態應該類似於下圖:

為什麼你的發行版仍然在使用“過時的”Linux 內核? 1

Linux 內核狀態

如果你的內核版本沒有列在內核官網主頁上,就說明該版本已經達到了使用壽命終期。

可以看到,5.0 內核版本並不在列,這說明該內核版本已經不再得到維護。事實上,該版本在 2019 年 6 月就已經達到使用壽命終期了。

不幸的是,Linux 內核的生命週期沒有任何規律可循。不是說常規的內核穩定發布版可以得到 X 月的維護、長期維護版本(LTS)可以得到 Y 年的維護。沒有這回事。

根據實際需求,可能會存在內核的多個 LTS 版本,其使用壽命終期各不相同。在這個頁面上可以查到這些 LTS 版本的相關信息,包括計劃的使用壽命終期。

那麼問題來了:既然 Linux 內核官網上明確表示 5.0 版本的內核已經達到了使用壽命終期,Ubuntu 為什麼還在提供這個內核版本呢?

你的發行版使用的 Linux 內核已經達到了使用壽命終期,但是沒關係!

為什麼你的發行版仍然在使用“過時的”Linux 內核? 2

你是否想過,為什麼 Ubuntu/Debian/Fedora 等發行版被稱為 Linux “發行版”?這是因為,它們“發行” Linux 內核。

這些發行版會對 Linux 內核進行不同的修改,並添加各種 GUI 元素(包括桌面環境、顯示服務器等)以及軟件,然後再呈現給用戶。

按照通常的工作流,Linux 發行版會選擇一個內核,提供給其用戶,然後在接下來的幾個月、幾年中,甚至是達到內核的使用壽命終期之後,仍然會繼續使用該內核。

這樣能夠保障安全嗎?其實是可以的,因為 發行版會通過向後移植全部的重要修補來維護內核

換句話說,你的 Linux 發行版會確保 Linux 內核沒有漏洞和 bug,並且已經通過向後移植獲得了重要的新特性。在“過時的舊版本 Linux 內核”上,其實有著數以千計的改動。

如果 Linux 內核網站上說某個內核版本已經達到了使用壽命終期,那麼就意味著 Linux 內核的核心維護團隊不會再對該內核版本進行升級和打補丁了。

但與此同時,Debian/Ubuntu 或者其他發行版的開發者們會繼續工作,通過從(由內核核心團隊維護的)更新的內核版本中遷移相關的修改,維持這個老版本的生命力。

重點在於,即使你的發行版看上去是在使用一個已經過時的 Linux 內核,其實該內核也得到了良好的維護,並非是真的過時了。

你是否應該使用最新的穩定內核版本?

為什麼你的發行版仍然在使用“過時的”Linux 內核? 3

新的 Linux 內核穩定版本每隔 2 到 3 個月發布一次,有不少用戶躍躍欲試。

實話說,除非有十分充分的理由,否則不應該使用最新版本的穩定內核。你使用的發行版並不會提供這個選項,你也不能指望通過在鍵盤上敲出 sudo apt give-me-the-latest-stable-kernel 解決問題。

此外,手動安裝主流 Linux 內核版本本身就是一個挑戰。即使安裝成功,之後每次發布 bug 修復的時候,負責更新內核的就會是你了。此外,當新內核達到使用壽命終期之後,你就有責任將它升級到更新的內核版本了。和常規的 Ubuntu 更新不同,內核升級無法通過 apt upgrade 完成。

同樣需要記住的是,切換到主流內核之後,可能就無法使用你的發行版提供的一些驅動程序和補丁了。

正如 Greg Kroah-Hartman所言,“你能使用的最好的內核,就是別人在維護的內核。”除了你的 Linux 發行版之外,又有誰更勝任這份工作呢!

希望你對這個主題已經有了更好的理解。下回發現你的系統正在使用的內核版本已經達到使用壽命終期的時候,希望你不會感到驚慌失措。