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

Linux内核(Linux kernel)简介

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

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

内核的活动范围:

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

Linux内核版本号

第一种方式:
Linux 的版本号分为两部分,即内核版本与发行版本。内核版本号由3个数字组成:A.B.C。各数字含义如下:

  1. A:内核主版本号。这是很少发生变化,只有当发生重大变化的代码和内核发生才会发生。在历史上曾改变两次的内核:1994年的1.01996年的2.0
  2. B:内核次版本号。是指一些重大修改的内核。偶数表示稳定版本;奇数表示开发中版本。
  3. C:内核修订版本号。是指轻微修订的内核。这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。

第二种方式:
major.minor.patch-build.desc

  1. major : 主版本号,有结构变化才变更
  2. minor : 次版本号,新增功能时才发生变化,一般技术表示测试版,偶数表示生产版
  3. patch : 补丁包数或次版本的修改次数
  4. build : 编译(或构建)的次数,每次编译可能对少量程序做优化或修改,但一般没有大的(可控的)功能变化。
  5. desc : 当前版本的特殊信息,其信息由编译时指定,具有较大的随意性,有如下的标识是常用的:
  6. rc(或r),表示发行候选版本(release candidate),rc后的数字表示该正式版本的第几个候选版本,多数情况下,各候选版本之间数字越大越接近正式版。
  7. smp,表示对称多处理器(Symmetric MultiProcessing)。
  8. pp,在Red Hat Linux中常用来表示测试版本(pre-patch)。
  9. EL,在Red Hat Linux中用来表示企业版LinuxEnterprise Linux)。
  10. mm,表示专门用来测试新的技术或新功能的版本。
  11. fc,在Red Hat Linux中表示Fedora Core

例如:
用命令uname -a查看内核版本号

1、在CentOS下如:

  1. 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

说明如下:

  1. 第一个组数字:2, 主版本号
  2. 第二个组数字:6, 次版本号,当前为稳定版本
  3. 第三个组数字:32, 修订版本号
  4. 第四个组数字:642.15.1,表示发型版本的补丁版本
  5. el6:则表示我正在使用的内核是 RedHat / CentOS 系列发行版专用内核
  6. x86_64:采用的是64位的CPU

2、在Ubuntu下如:

  1. 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
  2. #有的是3.2.0-67-generic-pae

说明如下:

  1. 第一个组数字:3, 主版本号
  2. 第二个组数字:2, 次版本号,当前为稳定版本
  3. 第三个组数字:0, 修订版本号
  4. 第四个组数字:67,当前内核版本(3.2.0)的第67次微调patch
  5. generic:当前内核版本为通用版本,另有表示不同含义的server(针对服务器)、i386(针对老式英特尔处理器)
  6. paePhysical Address Extension):物理地址扩展,为了弥补32位地址在PC服务器应用上的不足而推出,表示此32位系统可以支持超过4G的内存
  7. x86_64:采用的是64位的CPU
  8. SMP:对称多处理机,表示内核支持多核、多处理器
  9. 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

  1. [root@bogon ~]# cat /proc/version
  2. 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

  1. [root@bogon ~]# uname -a
  2. 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
  3. [root@bogon ~]# uname -r
  4. 4.4.131-1.el7.elrepo.x86_64

查看Linux系统版本的命令

1、lsb_release -a(适用于所有的Linux发行版本)

LSB是Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。
说明:

  1. -v 显示版本信息。
  2. -i 显示发行版的id
  3. -d 显示该发行版的描述信息。
  4. -r 显示当前系统是发行版的具体版本号。
  5. -c 发行版代号。
  6. -a 显示上面的所有信息。
  7. -h 显示帮助信息。
  8. -s 输出简短的描述信息(仅限于redhatfedora系统)

有些系统中默认并没有安装lsb_release,需要进行安装,以CentOS为例:
首先查找lsb_release安装包:

  1. [root@bogon ~]# yum provides lsb_release
  2. Loaded plugins: fastestmirror
  3. Loading mirror speeds from cached hostfile
  4. * base: mirrors.cn99.com
  5. * elrepo: mirrors.tuna.tsinghua.edu.cn
  6. * extras: centos.ustc.edu.cn
  7. * updates: mirrors.cn99.com
  8. redhat-lsb-core-4.1-27.el7.centos.1.x86_64 : LSB Core module support
  9. Repo : base
  10. Matched from:
  11. Filename : /usr/bin/lsb_release

安装:

  1. [root@bogon ~]# yum install -y redhat-lsb-core

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

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

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

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

Linux内核版本介绍与查询的更多相关文章

  1. 查看Linux内核版本

    您可能因多种原因需要确切知道GNU / Linux操作系统上运行的内核版本. 也许您正在调试与硬件相关的问题,或者了解影响旧内核版本的新安全漏洞,并且您想知道您的内核是否易受攻击. 无论是什么原因,从 ...

  2. Linux 内核版本命名

    Linux 内核版本命名在不同的时期有其不同的规范,我们熟悉的也许是 2.x 版本奇数表示开发版.偶数表示稳定版,但到 2.6.x 以及 3.x 甚至将来的 4.x ,内核版本命名都不遵守这样的约定. ...

  3. 【2016-08-21】Linux内核版本编号规则简介

    我们已经了解可以使用下面的几天命令来查看Linux内核版本及Ubuntu发行版本的信息: uname -r uname -a cat /proc/version lsb-release -a 等等 可 ...

  4. 查看Linux内核版本命令

    一.查看Linux内核版本命令(两种方法): .cat /proc/version .uname -a 二.查看Linux系统版本的命令(3种方法): .lsb_release -a即可列出所有版本信 ...

  5. 1.3查看Linux内核版本

    1.目前Linux内核主要维护的三个版本:Linux2.4.Linux2.6和Linux3.x,Android使用的是Linux2.6:Linux3.x是最新推出的Linux内核版本: 2.查看Lin ...

  6. 查看LINUX发行商版本与LINUX内核版本

    查看LINUX发行商版本:[root@server-mysql ~]# cat /etc/issue Red Hat Enterprise Linux Server release 6.3 (Sant ...

  7. Linux内核策略介绍

      Linux内核策略介绍学习笔记   主要内容 硬件 策略 CPU 进程调度.系统调用.中断 内存 内存管理 外存 文件IO 网络 协议栈 其他 时间管理 进程调度 内核的运行时间 系统启动.中断发 ...

  8. 快速升级openwrt的linux内核版本

    一.分析 要升级openwrt的linux内核版本,关键是要制作内核配置文件 二.内核配置文件制作方法 2.1当前openwrt对应的某个开发板有对应的内核配置文件,比如此时的openwrt的linu ...

  9. Linux内核版本

    在Linux中找到/usr/src/kernels/目录,该目录下面有一个系统内核文件 例如:2.6.32-431.11.2.el6.x86_64 Linux内核版本规则 Linux内核版本有三组数字 ...

随机推荐

  1. d3.js 制作简单的俄罗斯方块

    d3.js是一个不错的可视化框架,同时对于操作dom也是十分方便的.今天我们使用d3.js配合es6的类来制作一个童年小游戏--俄罗斯方块.话不多说先上图片. 1. js tetris类 由于方法拆分 ...

  2. 逆向破解之160个CrackMe —— 030

    CrackMe —— 030 160 CrackMe 是比较适合新手学习逆向破解的CrackMe的一个集合一共160个待逆向破解的程序 CrackMe:它们都是一些公开给别人尝试破解的小程序,制作 c ...

  3. 010 深入理解Python语言

    目录 一.概述 二.计算机技术的演进 2.1 计算机技术的演进过程 三.编程语言的多样初心 3.1 编程语言有哪些? 3.2 不同编程语言的初心和适用对象 3.3 2018年以后的计算环境- 四.Py ...

  4. Android-WebView支持input file启用相机/选取照片

    webview要调起input-file拍照或者选取文件功能,可以在webview.setWebChromeClient方法中重写指定的方法,来拦截webview的input事件,并做我们相应的操作. ...

  5. 设置IntelliJ IDEA支持lambda表达式

    使用IntelliJ IDEA做为开发工具,对基于maven的java工程,如果要编写lambda表达式,先确保安装并使用了jdk1.8或者更高版本,然后再要做一些设置才能正常编译和执行,具体表现在m ...

  6. Web之-----弹出确认框控件应用

    引用文件!-------- <link rel="stylesheet" type="text/css" href="@Url.FrontUrl ...

  7. ZooKeeper 介绍及集群环境搭建

    本篇由鄙人学习ZooKeeper亲自整理的一些资料 包括:ZooKeeper的介绍,我们要学习ZooKeeper的话,首先就要知道他是干嘛的对吧. 其次教大家如何去安装这个精巧的智慧品! 相信你能研究 ...

  8. MOOC C++笔记(一):从C到C++

    第一周:从C到C++ 引用 概念 类型名&引用名=某变量名 某个变量的引用,等价于这个变量,相当于该变量的别名 注意事项 1.定义引用时一定要将其初始化成引用某个变量. 2.初始化后,它就一直 ...

  9. java接收控制台输入

    java控制台输入语句: Scanner sc = new Scanner(System.in); 通过一个变量,例如 int r; r = sc.nextInt();   例子: public st ...

  10. Decorator:从原理到实践

    前言 原文链接:Nealyang/personalBlog ES6 已经不必在过多介绍,在 ES6 之前,装饰器可能并没有那么重要,因为你只需要加一层 wrapper 就好了,但是现在,由于语法糖 c ...