Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息。最后小编自己整理了一些个人觉得比较好的学习书籍
Linux内核(Linuxkernel)简介
内核是操作系统的核心,其主要功能有:
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),表示发行候选版本(releasecandidate),rc后的数字表示该正式版本的第几个候选版本,多数情况下,各候选版本之间数字越大越接近正式版。smp,表示对称多处理器(SymmetricMultiProcessing)。pp,在RedHatLinux中常用来表示测试版本(pre-patch)。EL,在RedHatLinux中用来表示企业版Linux(EnterpriseLinux)。mm,表示专门用来测试新的技术或新功能的版本。fc,在RedHatLinux中表示FedoraCore。
例如:
用命令uname-a查看内核版本号
1、在CentOS下如:
Linuxlocalhost2.6.32-642.15.1.el6.x86_64#1SMPFriFeb2414:31:22UTC2017x86_64x86_64x86_64GNU/Linux
说明如下:
第一个组数字:2,主版本号第二个组数字:6,次版本号,当前为稳定版本第三个组数字:32,修订版本号第四个组数字:642.15.1,表示发型版本的补丁版本el6:则表示我正在使用的内核是RedHat/CentOS系列发行版专用内核x86_64:采用的是64位的CPU
2、在Ubuntu下如:
Linuxlocalhost3.2.0-67-generic#101-UbuntuSMPTueJul1517:46:11UTC2014x86_64x86_64x86_64GNU/Linux#有的是3.2.0-67-generic-pae
说明如下:
第一个组数字:3,主版本号第二个组数字:2,次版本号,当前为稳定版本第三个组数字:0,修订版本号第四个组数字:67,当前内核版本(3.2.0)的第67次微调patchgeneric:当前内核版本为通用版本,另有表示不同含义的server(针对服务器)、i386(针对老式英特尔处理器)pae(PhysicalAddressExtension):物理地址扩展,为了弥补32位地址在PC服务器应用上的不足而推出,表示此32位系统可以支持超过4G的内存x86_64:采用的是64位的CPUSMP:对称多处理机,表示内核支持多核、多处理器TueJul1517:46:11UTC2014:内核的编译时间(builddate)为2014/07/1517:46:11
内核版本分类
Linux内核版本的最新发布状态,参见Linux官网:https://kernel.org/
1、mainline
主线版本
2、stable
稳定版,由mainline在时机成熟时发布,稳定版也会在相应版本号的主线上提供bug修复和安全补丁,但内核社区人力有限,因此较老版本会停止维护,而标记为EOL(EndofLife)的版本表示不再支持的版本。
3、longterm(LongTermSupport)
长期支持版,长期支持版的内核不再支持时会标记EOL。
4、linux-next,snapshot
代码提交周期结束之前生成的快照用于给Linux代码贡献者们做测试
查看Linux内核版本命令
1、cat/proc/version
[root@bogon~]#cat/proc/versionLinuxversion4.4.131-1.el7.elrepo.x86_64(mockbuild@Build64R7)(gccversion4.8.520150623(RedHat4.8.5-28)(GCC))#1SMPWedMay213:09:02EDT2018
2、uname-a
[root@bogon~]#uname-aLinuxbogon4.4.131-1.el7.elrepo.x86_64#1SMPWedMay213:09:02EDT2018x86_64x86_64x86_64GNU/Linux[root@bogon~]#uname-r4.4.131-1.el7.elrepo.x86_64
查看Linux系统版本的命令
1、lsb_release-a(适用于所有的Linux发行版本)
LSB是LinuxStandardBase的缩写,lsb_release命令用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。
说明:
-v显示版本信息。-i显示发行版的id。-d显示该发行版的描述信息。-r显示当前系统是发行版的具体版本号。-c发行版代号。-a显示上面的所有信息。-h显示帮助信息。-s输出简短的描述信息(仅限于redhat和fedora系统)。
有些系统中默认并没有安装lsb_release,需要进行安装,以CentOS为例:
首先查找lsb_release安装包:
A:内核主版本号。这是很少发生变化,只有当发生重大变化的代码和内核发生才会发生。在历史上曾改变两次的内核:1994年的1.0及1996年的2.0。B:内核次版本号。是指一些重大修改的内核。偶数表示稳定版本;奇数表示开发中版本。C:内核修订版本号。是指轻微修订的内核。这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。0
安装:
A:内核主版本号。这是很少发生变化,只有当发生重大变化的代码和内核发生才会发生。在历史上曾改变两次的内核:1994年的1.0及1996年的2.0。B:内核次版本号。是指一些重大修改的内核。偶数表示稳定版本;奇数表示开发中版本。C:内核修订版本号。是指轻微修订的内核。这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。1
2、cat/etc/redhat-release(适用于Redhat系的Linux)
A:内核主版本号。这是很少发生变化,只有当发生重大变化的代码和内核发生才会发生。在历史上曾改变两次的内核:1994年的1.0及1996年的2.0。B:内核次版本号。是指一些重大修改的内核。偶数表示稳定版本;奇数表示开发中版本。C:内核修订版本号。是指轻微修订的内核。这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。2
3、cat/etc/issue(适用于所有的Linux发行版本)
A:内核主版本号。这是很少发生变化,只有当发生重大变化的代码和内核发生才会发生。在历史上曾改变两次的内核:1994年的1.0及1996年的2.0。B:内核次版本号。是指一些重大修改的内核。偶数表示稳定版本;奇数表示开发中版本。C:内核修订版本号。是指轻微修订的内核。这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。3