Linux 核心版本號命名四個不同的階段

zhjixi1234發表於2014-06-07

Linux 核心版本號命名四個不同的階段

  1. 從核心第一個0.01 版本釋出到 1.0 版本。接下來是 0.02, 0.03, 0.10, 0.11, 0.12 (第一個 GPL 版本), 0.95, 0.96, 0.97, 0.98, 0.99,最後才到 1.0。

  2. 1.0釋出之後,直到2.6版本之前,命名格式為 “A.B.C”:

    • 數字 A 是核心版本號,版本號只有在程式碼和核心的概念有重大改變的時候才會改變,歷史上有兩次變化:
      • 第一次是1994年的 1.0 版
      • 第二次是1996年的 2.0 版
      • 2011年的 3.0 版釋出,但這次在核心的概念上並沒有發生大的變化
    • 數字 B 是核心主版本號,主版本號根據傳統的奇-偶系統版本編號來分配:奇數為開發版,偶數為穩定版
    • 數字 C 是核心次版本號,次版本號是無論在核心增加安全補丁、修復bug、實現新的特性或者驅動時都會改變
  3. 2004年 2.6 版本釋出之後,核心開發者覺得基於更短的時間為釋出週期更有益,所以大約七年的時間裡,核心版本號的前兩個數一直保持是“2.6”,第三個數隨著釋出次數增加,釋出週期大約是兩三個月。考慮到對某個版本的bug和安全漏洞的修復,有時也會出現第四個數字。

  4. 2011年5月29號,Linus 宣佈為了紀念Linux釋出 20週年,在 2.6.39 版本釋出之後,核心版本將升到 3.0 。Linux 繼續使用在 2.6.0 版本引入的基於時間的釋出規律,但是使用第二個數——例如在3.0釋出的幾個月之後釋出3.1,同時當需要修復bug和安全漏洞的時候,增加一個數字(現在是第三個數)來表示,如 3.0.18。

其它補充

  • 核心版本命名第一次使用第四個數字是在 2.6.8 的 NFS 程式碼中出現一個嚴重的錯誤需要立即修復,然而還沒有足夠多的其它改變可以釋出一個新的版本(也就是2.6.9),所以,2.6.8.1 釋出了,僅僅修正了那個錯誤。直到 2.6.11,這種版本命名策略被官方正式採納。接著,這種通過改變第四個數字來顯示修復主要bug和安全補丁而釋出新核心的做法,成為一種普遍的做法。

  • 在正式釋出之前,一般都冠以“待發布”(release candidates)字樣,通過在核心版本的普通數字之後新增字尾 “rc”。

  • 有些時候,版本號後面有類似於 “tip”這樣的字尾,表明另一個開發分支,這些分支通常(但不總是)是一個人開始發起的。舉例來說,“ck” 代表 Con Kolivas,“ac” 代表 Alan Cox 等等。有時,字母和核心建立分支的主要開發領域相關,例如“wl” 表示該分支主要測試無線網路的。同時,不同的發行版也會根據需要有自己的字尾。

4.0 版本什麼時候釋出?

2013年11月3日,Linus Torvalds宣佈釋出Linux 3.12,同時還討論了Linux 4.0釋出計劃:他考慮在Linux 3.19 之後釋出Linux 4.0,和Linux 3.0釋出策略相同,4.0並不代表著巨大變化,他只是想避免3.x 的版本號超過20,因為小版本號記憶起來比較簡單。

下面是他在核心開發郵件中的原文:

we're getting to release numbers where I have to take off my socks to count that high again. I'm ok with3., but I don't want us to get to the kinds of crazy numbers we had in the 2.x series, so at some point we're going to cut over from 3.x to 4.x, just to keep the numbers small and easy to remember. We're not there yet, but I would actually prefer to not go into the twenties, so I can see it happening in a year or so, and we'll have 4.0 follow 3.19 or something like that.

按照 Linus 的釋出 4.0 的預期以及現在每一個多月就更新一個版本的頻率,大概在一年之內核心版本就可以變成 4.x。

核心版本分類

在 Linux 核心官網上你會看到主要有三種型別的核心版本,下圖為我在2013.11.13 在官網的截圖:

linux_kernel

  1. mainline 是主線版本,目前主線版本為 3.12。
  2. stable 是穩定版,由 mainline 在時機成熟時釋出,穩定版也會在相應版本號的主線上提供 bug 修復和安全補丁,但核心社群人力有限,因此較老版本會停止維護,而標記為 EOL (End of Life)的版本表示不再支援的版本。
  3. longterm 是長期支援版,目前還處在長期支援版的有五個版本的核心,分別為 3.10、3.4、3.2、2.6.34、2.6.32,長期支援版的核心等到不再支援時,也會標記EOL

檢視機器使用的核心版本號

我們安裝了不同的 Linux 發行版,那麼如何去檢視該發行版使用的核心版本號呢? 我們可以使用命令 uname -r 來檢視:

[root@archlab-server2 ~]# cat /etc/issue CentOS release 6.4 (Final) [root@archlab-server2 ~]# uname -r 2.6.32-358.6.1.el6.i686

我測試的機器使用的是 CentOS 6.4 的發行版,顯示的核心版本為 2.6.32。

參考資料

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26739940/viewspace-1177501/,如需轉載,請註明出處,否則將追究法律責任。

相關文章