每個 Linux 內核版本都有一個與之關聯的不同版本號。你有沒有想過 Linux 內核版本號是如何形成的? 如果是 Linux 有段時間了,應該知道 Linux 發行版具有獨特的版本,并且每個版本都有特定的代號。Linux 內核也有不同的版本號,作為內核所屬系列的標識符。但是,內核版本的早期形成方式與 Linus Torvalds 現在的命名方式有所不同。 到最后,你將更加熟悉 Linux 內核版本控制方案,并且會更輕松地閱讀內核版本號并識別與特定版本相關的各種功能。
傳統的 Linux 內核版本控制
當 Linus 剛開始開發內核時,所使用的版本控制系統只是由一個從零(0.x)開始的遞增變量方案組成。最初,Linus 是該項目的唯一工作人員,這個版本控制系統足以滿足記錄和分發新內核版本的需要。 以下是遵循此命名方案的一些內核版本:
后來,隨著越來越多的開發人員開始為該項目做出貢獻,并且修訂和補丁數量的顯著增加,決定這種版本控制方案不適用于內核等軟件。從 1.0 版本開始,Linus 采用了一個帶有一些附加變量的新方案。
引入更具描述性的版本控制系統
1994 年,隨著 Linux 1.00 內核 發布,Linus 開始使用新的版本控制系統,該系統在語法中使用了三個變量:“abc”。這些變量(a、b 和 c)分別代表特定內核版本的主要版本、次要版本和修訂號。 以 Linux 1.1.95 內核為例。你可以將其解碼為第一個主要版本、第一個次要版本和第 95 個修訂版。 當時,即使是次要版本號也表示穩定的內核版本,而奇數則表示開發版本。擁有單獨的分支很重要,這樣開發人員可以在內核中添加和測試新功能而不會影響穩定分支。 內核開發人員在開發分支中添加和改進新功能,直到它足夠穩定以作為 LTS 內核發布。LTS 內核 3.2 是通過穩定版本 3.1 中的新特性而開發的,同樣,新的開發內核 3.3 從 3.2 分支出來,為隨后將在 Linux 3.4 中引入的新特性讓路。 從 Linux 2.4 內核 開始,內核名稱中的第四個變量表示補丁版本。你可以說版本 2.4.37.10 是內核 2.4.37 的第十個補丁版本。 補丁版本并不意味著內核版本中修補的問題數量。相反,它計算在修補發現的問題后發布更新內核的次數。 在 Linux 2.6 之前,一直使用這個版本控制系統,它可以有效地將特定版本與其他版本區分開來。在版本號中添加修訂計數和補丁版本是描述性的,但這意味著具有更長和更復雜的內核版本。再一次,需要一個新的更好的方案。
Linux 內核版本現在是如何命名的?
在 Linux 3.0 版中,Linus 從版本號中刪除了第四個變量。現在,內核版本是根據語法形成的:abc,其中 a、b 和 c 分別是主要版本、次要版本和修訂計數。此版本控制方案類似于 1.0 和 2.4 內核版本之間使用的方案。
Linux 3.2.0-23 由于版本控制系統的進步,貢獻者現在可以無縫地在穩定的分支上工作并添加新功能,而不會意外破壞已經工作的穩定版本。因此,在內核版本 4.0 推出后,內核的穩定分支和生產分支使用偶數和奇數次要版本號變得多余,并且4.x系列中的第一個 LTS 版本(4.1)有一個奇數次要版本號。 你可能還會注意到版本號末尾的一些字符,例如rcX。審查候選(或簡稱“rc”)是內核的預覽版本和預補丁版本,開發人員需要修補它們以消除錯誤和其他問題。這些是以前由奇數次要版本號表示的開發版本的替代品。 盡管這些版本是專門為內核開發人員保留的,因此他們可以修復報告的問題并實現新功能,但你也可以根據需要下載和測試這些內核審查候選者,但通常不建議這樣做,因為這是大多數開發發生的地方。在撰寫本文時,最新的內核預覽版是5.19-rc6。 為了創建新版本,當變量的值達到特定數字時,前面的變量會遞增。例如,每當次要版本計數接近 20 時,主要版本就會更新到下一位。 Linus 在他的 5.0 內核開發郵件中提到,他只是將主要版本更新為 5,因為次要版本數量太大,無法指望手指和腳趾(20!)。同樣,根據kernel.org,當第一個點之后的數字開始看起來“太大”時,主版本號會增加。3.x系列的最終內核版本是 3.19,最后一個主要的4.x內核系列是 4.20,然后升級到 5.0。
Linux 5.18.0-2 自 3.0 版以來,Linux 內核一直遵循此版本控制方案,并且已證明它在三個主要內核版本(版本3.x、4.x和5.x)中都是有效的。
使用版本號識別 Linux 內核版本
考慮到發布的 Linux 內核版本數量之多,因此需要一個適當的系統來識別和區分特定版本與其他版本。使用新的內核版本控制方案,現在可以有效地識別和比較內核版本,并且很容易知道哪個內核版本是最新的,哪個是較早發布的。 如果你想檢查系統上當前安裝的 Linux 內核版本,可以使用 uname 來完成,這是一個 Linux 命令,可讓你列出與系統相關的信息。根據你運行的發行版,uname 顯示的版本號可能與實際的 Linux 內核版本不同。
審核編輯 :李倩
-
控制系統
+關注
關注
41文章
6605瀏覽量
110581 -
內核
+關注
關注
3文章
1372瀏覽量
40282 -
Linux
+關注
關注
87文章
11296瀏覽量
209358
原文標題:你知道什么是 Linux 內核版本控制方案嗎?
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論