0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux內(nèi)核版本號是如何形成的?

馬哥Linux運(yùn)維 ? 來源:馬哥Linux運(yùn)維 ? 作者:馬哥Linux運(yùn)維 ? 2022-07-31 11:37 ? 次閱讀

每個 Linux 內(nèi)核版本都有一個與之關(guān)聯(lián)的不同版本號。你有沒有想過 Linux 內(nèi)核版本號是如何形成的? 如果是 Linux 有段時間了,應(yīng)該知道 Linux 發(fā)行版具有獨(dú)特的版本,并且每個版本都有特定的代號。Linux 內(nèi)核也有不同的版本號,作為內(nèi)核所屬系列的標(biāo)識符。但是,內(nèi)核版本的早期形成方式與 Linus Torvalds 現(xiàn)在的命名方式有所不同。 到最后,你將更加熟悉 Linux 內(nèi)核版本控制方案,并且會更輕松地閱讀內(nèi)核版本號并識別與特定版本相關(guān)的各種功能。

傳統(tǒng)的 Linux 內(nèi)核版本控制

當(dāng) Linus 剛開始開發(fā)內(nèi)核時,所使用的版本控制系統(tǒng)只是由一個從零(0.x)開始的遞增變量方案組成。最初,Linus 是該項(xiàng)目的唯一工作人員,這個版本控制系統(tǒng)足以滿足記錄和分發(fā)新內(nèi)核版本的需要。 以下是遵循此命名方案的一些內(nèi)核版本:

9aac433c-1012-11ed-ba43-dac502259ad0.jpg

后來,隨著越來越多的開發(fā)人員開始為該項(xiàng)目做出貢獻(xiàn),并且修訂和補(bǔ)丁數(shù)量的顯著增加,決定這種版本控制方案不適用于內(nèi)核等軟件。從 1.0 版本開始,Linus 采用了一個帶有一些附加變量的新方案。

引入更具描述性的版本控制系統(tǒng)

1994 年,隨著 Linux 1.00 內(nèi)核 發(fā)布,Linus 開始使用新的版本控制系統(tǒng),該系統(tǒng)在語法中使用了三個變量:“abc”。這些變量(a、b 和 c)分別代表特定內(nèi)核版本的主要版本、次要版本和修訂號。 以 Linux 1.1.95 內(nèi)核為例。你可以將其解碼為第一個主要版本、第一個次要版本和第 95 個修訂版。 當(dāng)時,即使是次要版本號也表示穩(wěn)定的內(nèi)核版本,而奇數(shù)則表示開發(fā)版本。擁有單獨(dú)的分支很重要,這樣開發(fā)人員可以在內(nèi)核中添加和測試新功能而不會影響穩(wěn)定分支。 內(nèi)核開發(fā)人員在開發(fā)分支中添加和改進(jìn)新功能,直到它足夠穩(wěn)定以作為 LTS 內(nèi)核發(fā)布。LTS 內(nèi)核 3.2 是通過穩(wěn)定版本 3.1 中的新特性而開發(fā)的,同樣,新的開發(fā)內(nèi)核 3.3 從 3.2 分支出來,為隨后將在 Linux 3.4 中引入的新特性讓路。 從 Linux 2.4 內(nèi)核 開始,內(nèi)核名稱中的第四個變量表示補(bǔ)丁版本。你可以說版本 2.4.37.10 是內(nèi)核 2.4.37 的第十個補(bǔ)丁版本。 補(bǔ)丁版本并不意味著內(nèi)核版本中修補(bǔ)的問題數(shù)量。相反,它計(jì)算在修補(bǔ)發(fā)現(xiàn)的問題后發(fā)布更新內(nèi)核的次數(shù)。 在 Linux 2.6 之前,一直使用這個版本控制系統(tǒng),它可以有效地將特定版本與其他版本區(qū)分開來。在版本號中添加修訂計(jì)數(shù)和補(bǔ)丁版本是描述性的,但這意味著具有更長和更復(fù)雜的內(nèi)核版本。再一次,需要一個新的更好的方案。

Linux 內(nèi)核版本現(xiàn)在是如何命名的?

在 Linux 3.0 版中,Linus 從版本號中刪除了第四個變量。現(xiàn)在,內(nèi)核版本是根據(jù)語法形成的:abc,其中 a、b 和 c 分別是主要版本、次要版本和修訂計(jì)數(shù)。此版本控制方案類似于 1.0 和 2.4 內(nèi)核版本之間使用的方案。

9ab9be5e-1012-11ed-ba43-dac502259ad0.png

Linux 3.2.0-23 由于版本控制系統(tǒng)的進(jìn)步,貢獻(xiàn)者現(xiàn)在可以無縫地在穩(wěn)定的分支上工作并添加新功能,而不會意外破壞已經(jīng)工作的穩(wěn)定版本。因此,在內(nèi)核版本 4.0 推出后,內(nèi)核的穩(wěn)定分支和生產(chǎn)分支使用偶數(shù)和奇數(shù)次要版本號變得多余,并且4.x系列中的第一個 LTS 版本(4.1)有一個奇數(shù)次要版本號。 你可能還會注意到版本號末尾的一些字符,例如rcX。審查候選(或簡稱“rc”)是內(nèi)核的預(yù)覽版本和預(yù)補(bǔ)丁版本,開發(fā)人員需要修補(bǔ)它們以消除錯誤和其他問題。這些是以前由奇數(shù)次要版本號表示的開發(fā)版本的替代品。 盡管這些版本是專門為內(nèi)核開發(fā)人員保留的,因此他們可以修復(fù)報(bào)告的問題并實(shí)現(xiàn)新功能,但你也可以根據(jù)需要下載和測試這些內(nèi)核審查候選者,但通常不建議這樣做,因?yàn)檫@是大多數(shù)開發(fā)發(fā)生的地方。在撰寫本文時,最新的內(nèi)核預(yù)覽版是5.19-rc6。 為了創(chuàng)建新版本,當(dāng)變量的值達(dá)到特定數(shù)字時,前面的變量會遞增。例如,每當(dāng)次要版本計(jì)數(shù)接近 20 時,主要版本就會更新到下一位。 Linus 在他的 5.0 內(nèi)核開發(fā)郵件中提到,他只是將主要版本更新為 5,因?yàn)榇我姹緮?shù)量太大,無法指望手指和腳趾(20?。M瑯?,根據(jù)kernel.org,當(dāng)?shù)谝粋€點(diǎn)之后的數(shù)字開始看起來“太大”時,主版本號會增加。3.x系列的最終內(nèi)核版本是 3.19,最后一個主要的4.x內(nèi)核系列是 4.20,然后升級到 5.0。

9aec6840-1012-11ed-ba43-dac502259ad0.png

Linux 5.18.0-2 自 3.0 版以來,Linux 內(nèi)核一直遵循此版本控制方案,并且已證明它在三個主要內(nèi)核版本(版本3.x、4.x和5.x)中都是有效的。

使用版本號識別 Linux 內(nèi)核版本

考慮到發(fā)布的 Linux 內(nèi)核版本數(shù)量之多,因此需要一個適當(dāng)?shù)南到y(tǒng)來識別和區(qū)分特定版本與其他版本。使用新的內(nèi)核版本控制方案,現(xiàn)在可以有效地識別和比較內(nèi)核版本,并且很容易知道哪個內(nèi)核版本是最新的,哪個是較早發(fā)布的。 如果你想檢查系統(tǒng)上當(dāng)前安裝的 Linux 內(nèi)核版本,可以使用 uname 來完成,這是一個 Linux 命令,可讓你列出與系統(tǒng)相關(guān)的信息。根據(jù)你運(yùn)行的發(fā)行版,uname 顯示的版本號可能與實(shí)際的 Linux 內(nèi)核版本不同。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 控制系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    6420

    瀏覽量

    110104
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1336

    瀏覽量

    40084
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207919

原文標(biāo)題:你知道什么是 Linux 內(nèi)核版本控制方案嗎?

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    linux驅(qū)動程序如何加載進(jìn)內(nèi)核

    Linux系統(tǒng)中,驅(qū)動程序是內(nèi)核與硬件設(shè)備之間的橋梁。它們允許內(nèi)核與硬件設(shè)備進(jìn)行通信,從而實(shí)現(xiàn)對硬件設(shè)備的控制和管理。 驅(qū)動程序的編寫 驅(qū)動程序的編寫是Linux驅(qū)動開發(fā)的基礎(chǔ)。在編
    的頭像 發(fā)表于 08-30 15:02 ?193次閱讀

    Linux內(nèi)核測試技術(shù)

    Linux 內(nèi)核Linux操作系統(tǒng)的核心部分,負(fù)責(zé)管理硬件資源和提供系統(tǒng)調(diào)用接口。隨著 Linux 內(nèi)核的不斷發(fā)展和更新,其復(fù)雜性和代碼規(guī)
    的頭像 發(fā)表于 08-13 13:42 ?247次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>內(nèi)核</b>測試技術(shù)

    請問APP版本號如何設(shè)置才有效?

    \") 。 但是不起作用,編譯信息看到的APP版本號,以及程序里用 esp_ota_get_partition_description() 讀出的版本號,都是一個串, 諸如:version: 761849b-dirty,像是隨機(jī)生成的。請問
    發(fā)表于 06-26 07:40

    怎么加上.bin文件的版本號?

    描述:我想在工程名稱后添加改工程的版本,這樣生成的固件就是帶版本號的。 問題:目前生成的bin文件后面帶不上版本號,不知道為啥?如下圖所示。有人知道怎么加上.bin文件的版本號嗎?
    發(fā)表于 06-11 07:43

    摩爾線程發(fā)布版本號為v250.60.2的游戲顯卡驅(qū)動程序

    4月22日,摩爾線程發(fā)布版本號為v250.60.2的游戲顯卡驅(qū)動程序,旨在為玩家?guī)頍ㄈ灰恍碌挠螒蝮w驗(yàn)與顯著提升的性能表現(xiàn)。
    的頭像 發(fā)表于 04-23 09:42 ?331次閱讀

    求助,SPI讀取LORA版本號不同的問題求解

    一會讀取到0xa9b7(正確),一會讀取到0xa900。這是什么情況。獲取版本號的代碼寫在最開始,我就按復(fù)位鍵獲取,差不多10次有3次錯誤。
    發(fā)表于 04-10 06:23

    Windows Server Build 26085.1發(fā)布,版本號追平Windows 11

    而作為下一代的LTSC版本,PowerShell團(tuán)隊(duì)已列出了該新版本所包含的內(nèi)容,包括Data Center版及Standard版的桌面體驗(yàn)以及Server Core的安裝選項(xiàng),同時亦包括Container Host的年度通道以及Azure驗(yàn)證版(僅供虛擬機(jī)評估)。
    的頭像 發(fā)表于 03-28 14:20 ?490次閱讀

    摩爾線程發(fā)布版本號為v250.60.1的Windows驅(qū)動程序

    3月20日,摩爾線程發(fā)布版本號為v250.60.1的Windows驅(qū)動程序。新的驅(qū)動程序,在PES控制中心新增了屏幕錄制功能。
    的頭像 發(fā)表于 03-21 10:01 ?374次閱讀
    摩爾線程發(fā)布<b class='flag-5'>版本號</b>為v250.60.1的Windows驅(qū)動程序

    CYW5557x Wi-Fi系列的Linux內(nèi)核版本是什么?

    CAN告知支持CYW5557x Wi-Fi系列的Linux內(nèi)核版本是什么?
    發(fā)表于 03-01 11:52

    摩爾線程發(fā)布v250.60游戲顯卡驅(qū)動和v2.5.0 Ubuntu驅(qū)動

    2月20日,摩爾線程正式發(fā)布版本號為v250.60的Windows驅(qū)動程序,并同時推出面向MTT S80顯卡的Ubuntu驅(qū)動程序,版本號為v2.5.0。
    的頭像 發(fā)表于 02-21 09:25 ?641次閱讀

    Ubuntu 24.04 LTS選用Linux 6.8為默認(rèn)內(nèi)核

    關(guān)于Ubuntu 24.04 LTS使用何種內(nèi)核版本,一直備受關(guān)注。Canonical工程師Andrea Righi昨日宣布,Ubuntu 24.04將默認(rèn)搭載Linux 6.8內(nèi)核。
    的頭像 發(fā)表于 01-29 11:27 ?788次閱讀

    西門子博途中啟用類型版本對話框

    在對話框中,版本號在最后一個位置自動遞增。這樣可以識別字段中的更改。
    的頭像 發(fā)表于 01-18 10:49 ?587次閱讀
    西門子博途中啟用類型<b class='flag-5'>版本</b>對話框

    AD9164驅(qū)動程序里面版本是03,芯片里面讀出來的是02,這個是工程樣片嗎?

    ,讀取值全部為0;(其他寄存器讀寫正常)。 情況2 讀取芯片版本號版本號為0x02,與驅(qū)動0x03的要求不符合,變成工程樣片版本號,如下圖所示: 驅(qū)動程序里面版本是03,芯
    發(fā)表于 12-01 07:57

    ESP32怎么手動修改固件版本號?

    ESP32怎么手動修改固件版本號
    發(fā)表于 10-09 07:59

    ESP32怎么讀取固件版本號

    ESP32怎么讀取固件版本號
    發(fā)表于 10-09 06:47