Linux 内核版本 详解

叙述

        Linux内核版本命名在不同时期有着不同的规范,在涉及到Linux版本问题时经常容易混淆,主线版本/稳定版/长期支持版本经常搞不清楚,本文主要记录下内核版本命名的规则以及如何查看Linux系统版本信息。

内核是操作系统的核心 ,其主要功能有:

  1.响应中断,执行中断服务程序   2.管理多个进程,调度和分享处理器的时间   3.管理进程地址空间的内存管理   4.网络和进程间通信等系统服务程序

内核的活动范围:

  1.运行于用户空间,执行用户进程   2.运行于内核空间,处于进程上下文,代表某个特定进程的执行   3.运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断


详解

版本号查询

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查看内核版本号

在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

在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内核版本的最新发布状态

1、mainline
  主线版本

2、stable
  稳定版,由mainline在时机成熟时发布,稳定版也会在相应版本号的主线上提供bug修复和安全补丁,但内核社区人力有限,因此较老版本会停止维护,而标记为EOL(End of Life)的版本表示不再支持的版本。

3、longterm(Long Term Support)
  长期支持版,长期支持版的内核不再支持时会标记EOL。

4、linux-next,snapshot
  代码提交周期结束之前生成的快照 用于给Linux代码贡献者们做测试


查询内核版本命令

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

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系统版本

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

cat /etc/redhat-release(适用于Redhat系的Linux)

[root@bogon ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

cat /etc/issue(适用于所有的Linux发行版本)

root@localhost:~# cat /etc/issue
Ubuntu 14.04.5 LTS \n \l

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux内核模块是一种可以动态加载到Linux内核中的程序,它可以扩展和定制内核的功能。内核模块相对于直接编译到内核的代码而言,更加灵活和可扩展。 Linux内核模块详解主要包括以下内容: 1. 动态加载和卸载:与静态编译到内核不同,内核模块可以动态加载到内核中,并在不需要时卸载。这样可以减小内核的体积和开机启动时间,同时方便模块的管理和更新。 2. 内核符号表:内核模块中包含了一些导出的符号,其他模块或内核可以通过这些符号与模块进行交互和调用。内核提供了一系列函数和宏来管理和使用内核符号表。 3. 模块的编写:编写一个内核模块需要包括初始化函数和清理函数。初始化函数是模块加载时被调用的函数,通常用来注册模块的功能和初始化资源。清理函数是模块卸载时被调用的函数,用于清理资源和注销已注册的功能。 4. 模块参数:模块还可以定义一些可配置的参数,通过在模块加载时指定参数的值,可以动态改变模块的行为。内核提供了一套机制来管理模块参数。 5. 模块依赖性:模块间可能存在依赖关系,一个模块可能依赖于其他模块的功能。内核提供了机制来声明和管理模块的依赖关系,确保模块的加载顺序和依赖关系正确。 6. 内核接口:内核提供了一系列的接口供模块使用,包括文件系统、设备驱动、网络协议等。模块可以通过这些接口来访问内核的功能和资源。 总的来说,Linux内核模块是一种动态加载到内核中的程序,可以扩展和定制内核的功能。通过内核模块,可以实现新的功能、优化性能和对内核进行定制,是Linux内核开发和定制的重要手段。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值