Linux內核版本命名在不同時期有着不同的規范,在涉及到Linux版本問題時經常容易混淆,主線版本/穩定版/長期支持版本經常搞不清楚,本文主要記錄下內核版本命名的規則以及如何查看Linux系統版本信息。
Linux內核(Linux kernel)簡介
內核是操作系統的核心 ,其主要功能有:
1.響應中斷,執行中斷服務程序 2.管理多個進程,調度和分享處理器的時間 3.管理進程地址空間的內存管理 4.網絡和進程間通信等系統服務程序
內核的活動范圍:
1.運行於用戶空間,執行用戶進程
2.運行於內核空間,處於進程上下文,代表某個特定進程的執行
3.運行於內核空間,處於中斷上下文,與任何進程無關,處理某個特定的中斷
Linux內核版本號
第一種方式:
Linux 的版本號分為兩部分,即內核版本與發行版本。內核版本號由3個數字組成:A.B.C。各數字含義如下:
A:內核主版本號。這是很少發生變化,只有當發生重大變化的代碼和內核發生才會發生。在歷史上曾改變兩次的內核:1994年的1.0及1996年的2.0。 B:內核次版本號。是指一些重大修改的內核。偶數表示穩定版本;奇數表示開發中版本。 C:內核修訂版本號。是指輕微修訂的內核。這個數字當有安全補丁,bug修復,新的功能或驅動程序,內核便會有變化。
第二種方式:
major.minor.patch-build.desc
major : 主版本號,有結構變化才變更
minor : 次版本號,新增功能時才發生變化,一般技術表示測試版,偶數表示生產版
patch : 補丁包數或次版本的修改次數
build : 編譯(或構建)的次數,每次編譯可能對少量程序做優化或修改,但一般沒有大的(可控的)功能變化。
desc : 當前版本的特殊信息,其信息由編譯時指定,具有較大的隨意性,有如下的標識是常用的:
rc(或r),表示發行候選版本(release candidate),rc后的數字表示該正式版本的第幾個候選版本,多數情況下,各候選版本之間數字越大越接近正式版。
smp,表示對稱多處理器(Symmetric MultiProcessing)。
pp,在Red Hat Linux中常用來表示測試版本(pre-patch)。
EL,在Red Hat Linux中用來表示企業版Linux(Enterprise Linux)。
mm,表示專門用來測試新的技術或新功能的版本。
fc,在Red Hat Linux中表示Fedora Core。
例如:
用命令uname -a查看內核版本號
1、在CentOS下如:
Linux localhost 2.6.32-642.15.1.el6.x86_64 #1 SMP Fri Feb 24 14:31:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
說明如下:
第一個組數字:2, 主版本號
第二個組數字:6, 次版本號,當前為穩定版本
第三個組數字:32, 修訂版本號
第四個組數字:642.15.1,表示發型版本的補丁版本
el6:則表示我正在使用的內核是 RedHat / CentOS 系列發行版專用內核
x86_64:采用的是64位的CPU
2、在Ubuntu下如:
Linux localhost 3.2.0-67-generic #101-Ubuntu SMP Tue Jul 15 17:46:11 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux #有的是3.2.0-67-generic-pae
說明如下:
第一個組數字:3, 主版本號
第二個組數字:2, 次版本號,當前為穩定版本
第三個組數字:0, 修訂版本號
第四個組數字:67,當前內核版本(3.2.0)的第67次微調patch
generic:當前內核版本為通用版本,另有表示不同含義的server(針對服務器)、i386(針對老式英特爾處理器)
pae(Physical Address Extension):物理地址擴展,為了彌補32位地址在PC服務器應用上的不足而推出,表示此32位系統可以支持超過4G的內存
x86_64:采用的是64位的CPU
SMP:對稱多處理機,表示內核支持多核、多處理器
Tue Jul 15 17:46:11 UTC 2014:內核的編譯時間(build date)為 2014/07/15 17:46:11
內核版本分類
Linux內核版本的最新發布狀態,參見Linux官網:https://kernel.org/
1、mainline
主線版本
2、stable
穩定版,由mainline在時機成熟時發布,穩定版也會在相應版本號的主線上提供bug修復和安全補丁,但內核社區人力有限,因此較老版本會停止維護,而標記為EOL(End of Life)的版本表示不再支持的版本。
3、longterm(Long Term Support)
長期支持版,長期支持版的內核不再支持時會標記EOL。
4、linux-next,snapshot
代碼提交周期結束之前生成的快照 用於給Linux代碼貢獻者們做測試
查看Linux內核版本命令
1、cat /proc/version
[root@bogon ~]# cat /proc/version
Linux version 4.4.131-1.el7.elrepo.x86_64 (mockbuild@Build64R7) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Wed May 2 13:09:02 EDT 2018
2、uname -a
[root@bogon ~]# uname -a
Linux bogon 4.4.131-1.el7.elrepo.x86_64 #1 SMP Wed May 2 13:09:02 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@bogon ~]# uname -r
4.4.131-1.el7.elrepo.x86_64
查看Linux系統版本的命令
1、lsb_release -a(適用於所有的Linux發行版本)
LSB是Linux Standard Base的縮寫,lsb_release命令用來顯示LSB和特定版本的相關信息。如果使用該命令時不帶參數,則默認加上-v參數。
說明:
-v 顯示版本信息。
-i 顯示發行版的id。
-d 顯示該發行版的描述信息。
-r 顯示當前系統是發行版的具體版本號。
-c 發行版代號。
-a 顯示上面的所有信息。
-h 顯示幫助信息。
-s 輸出簡短的描述信息(僅限於redhat和fedora系統) 。
有些系統中默認並沒有安裝lsb_release,需要進行安裝,以CentOS為例:
首先查找lsb_release安裝包:
[root@bogon ~]# yum provides lsb_release Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.cn99.com * elrepo: mirrors.tuna.tsinghua.edu.cn * extras: centos.ustc.edu.cn * updates: mirrors.cn99.com redhat-lsb-core-4.1-27.el7.centos.1.x86_64 : LSB Core module support Repo : base Matched from: Filename : /usr/bin/lsb_release
安裝:
[root@bogon ~]# yum install -y redhat-lsb-core
2、cat /etc/redhat-release(適用於Redhat系的Linux)
[root@bogon ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)
3、cat /etc/issue(適用於所有的Linux發行版本)
root@localhost:~# cat /etc/issue Ubuntu 14.04.5 LTS \n \l