Konstantin Ryabitsev 爲你解說哪一個 Linux 內核版本號可以被視做「穩定版」,以及你應該怎樣選擇一個適用你的內核版本號。css
每次 Linus Torvalds 公佈 一個新 Linux 內核的主線版本號[1],差點兒都會引發這樣的困惑,那就是究竟哪一個內核版本號纔是最新的「穩定版」?是新的那個 X.Y,仍是前面的那個 X.Y-1.Z ?最新的內核版本號是否是太「新」了?你是否是應該堅持使用曾經的版本號?html
kernel.org[2] 網頁上的信息並不會幫你解開這個困惑。眼下。在該頁面的最頂部,咱們看到是最新穩定版內核是 4.15 — 但是在這個表格的如下,4.14.16 也被列爲「穩定版stable」,而 4.15 被列爲「主線版本號mainline」,很是困惑,是吧?linux
不幸的是,這個問題並很差回答。分佈式
咱們在這裏使用「穩定」這個詞有兩個不一樣的意思:一是,做爲最初公佈的 Git 樹的名字。二是,表示這個內核可以被視做「穩定版」。用在「生產系統」。post
因爲 Git 的分佈式特性,Linux 的開發工做在不少 不一樣的分叉倉庫中[3] 進行。學習
所有的 bug 修復和新特性也是首先由各個子系統維護者收集和準備的。而後提交給 Linus Torvalds,由 Linus Torvalds 包括進 他本身的 Linux 樹[4] 中,他的 Git 樹被以爲是 Git 倉庫的 「master」。spa
咱們稱這個樹爲 「主線」 Linux 樹。.net
候選公佈版(RC)翻譯
在每個新的內核版本號公佈以前。它都要通過幾輪的「候選公佈」,它由開發人員進行測試並「打磨」所有的這些很是酷的新特性。基於他們這幾輪測試的反饋,Linus 決定終於版本號是否已經準備就緒。一般有 7 個每週預公佈版本號,但是。這個數字經常走到 -rc8,並且有時候甚至達到 -rc9 及以上。htm
當 Linus 確信那個新內核已經沒有問題了,他就製做終於發行版。咱們稱這個版本號爲「穩定版」,表示它再也不是一個「候選公佈版」。
Bug 修復
就像不論什麼一個由不是十全十美的人所寫的複雜軟件同樣,不論什麼一個 Linux 內核的新版本號都包括 bug,並且這些 bug 必須被修復。Linux 內核的 bug 修復規則很是easy:所有修復必須首先進入到 Linus 的樹。一旦主線倉庫中的 bug 被修復後,它接着會被應用到內核開發社區仍在維護的已公佈內核中。
在它們被考慮回遷到已公佈的穩定版本號以前,所有的 bug 修復必須知足 一套重要的標準[5] — 標準的當中之中的一個是。它們 「必須已經存在於 Linus 的樹中」。
這是一個 獨立的 Git 倉庫[6],維護它的用途是回遷 bug 修復。而它也被稱爲「穩定」樹 —— 因爲它用於跟蹤曾經公佈的穩定內核。這個樹由 Greg Kroah-Hartman 策劃和維護。
最新的穩定內核
所以,無論在何時,爲了查看最新的穩定內核而訪問 kernel.org 站點時。你應該去使用那個在大黃色button所說的「最新的穩定內核」。
但是,你可能會驚奇地發現 —— 4.15 和 4.14.16 都是穩定版本號。那麼究竟哪個更「穩定」呢?有些人不肯意使用 「.0」 的內核發行版,因爲他們以爲這個版本號並不足夠「穩定」,直到最新的是 ".1" 的爲止。
很是難證實或者反駁這樣的觀點的對與錯,並且這兩種觀點都有同意或者反對的理由,所以,詳細選擇哪個取決於你的喜愛。
一方面,不論什麼一個進入到穩定樹的發行版都必須首先被接受進入主線內核版本號中。並且隨後會被回遷到已發行版本號中。
這意味着內核的主線版本號相比穩定樹中的發行版本號來講,總包括有最新的 bug 修復,所以,假設你想使用的發行版包括的「已知 bug」最少。那麼使用 「.0」 的主線發行版是最佳選擇。
還有一方面,主線版本號添加了所有很是酷的新特性 —— 而新特性也給它們帶來了數量未知的「新 bug」。而這些「新 bug」在老的穩定版中是不會存在的。
而新的、未知的 bug 是否比舊的、已知的但還沒有修復的 bug 更加使人操心呢? —— 這取決於你的選擇。只是需要說明的一點是,不少 bug 修復僅僅對內核的主線版本號進行了完全的測試。
當補丁回遷到舊內核時,它們可能會工做的很是好,但是它們很是少作與舊內核的集成測試工做。一般都假定,「曾經的穩定版本號」足夠接近當前的確信可用於生產系統的主線版本號。而實際上也確實是這樣的,固然。這也更加說明了爲何選擇「哪一個內核版本號更穩定」是件很是困難的事情了。
所以,從根本上說。咱們並無定量的或者定性的手段去明白的告訴你哪一個內核版本號更加穩定 —— 4.15 仍是 4.14.16?咱們可以作到的僅僅是告訴你,它們具備「不一樣的穩定性」。(這個答案可能沒有幫到你,但是。至少你明白了這些版本號的區別是什麼?)。
學習不少其它的 Linux 的知識,可以經過來自 Linux 基金會和 edX 的免費課程 "認識 Linux" [7]。
via: https://www.linux.com/blog/learn/2018/2/which-linux-kernel-version-stable
做者:KONSTANTIN RYABITSEV[9] 譯者:qhwdw 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
LCTT 譯者推薦文章
< 左右滑動查看相關文章 >
點擊圖片、輸入文章 ID 或識別二維碼直達