Linux 内核版本命名

标签: LinuxKernel
2013-11-13 09:25 12248人阅读 评论(0) 收藏 举报
分类:
Linux内核(6) Linux(6)

版权声明:本文为博主原创文章,未经博主允许不得转载。

目录(?)[+]

Linux 内核版本命名在不同的时期有其不同的规范,我们熟悉的也许是 2.x 版本奇数表示开发版、偶数表示稳定版,但到 2.6.x 以及 3.x 甚至将来的 4.x ,内核版本命名都不遵守这样的约定。本文就简单总结一下关于 linux 内核版本号那点事:

Linux 内核版本号命名四个不同的阶段

  1. 从内核第一个0.01 版本发布到 1.0 版本。接下来是 0.02, 0.03, 0.10, 0.11, 0.12 (第一个 GPL 版本), 0.95, 0.96, 0.97, 0.98, 0.99,最后才到 1.0。

  2. 1.0发布之后,直到2.6版本之前,命名格式为 “A.B.C”:

    • 数字 A 是内核版本号,版本号只有在代码和内核的概念有重大改变的时候才会改变,历史上有两次变化:

      • 第一次是1994年的 1.0 版
      • 第二次是1996年的 2.0 版
      • 2011年的 3.0 版发布,但这次在内核的概念上并没有发生大的变化
    • 数字 B 是内核主版本号,主版本号根据传统的奇-偶系统版本编号来分配:奇数为开发版,偶数为稳定版
    • 数字 C 是内核次版本号,次版本号是无论在内核增加安全补丁、修复bug、实现新的特性或者驱动时都会改变
  3. 2004年 2.6 版本发布之后,内核开发者觉得基于更短的时间为发布周期更有益,所以大约七年的时间里,内核版本号的前两个数一直保持是“2.6”,第三个数随着发布次数增加,发布周期大约是两三个月。考虑到对某个版本的bug和安全漏洞的修复,有时也会出现第四个数字。

  4. 2011年5月29号,Linus 宣布为了纪念Linux发布 20周年,在 2.6.39 版本发布之后,内核版本将升到 3.0 。Linux 继续使用在 2.6.0 版本引入的基于时间的发布规律,但是使用第二个数——例如在3.0发布的几个月之后发布3.1,同时当需要修复bug和安全漏洞的时候,增加一个数字(现在是第三个数)来表示,如 3.0.18。

其它补充

  • 内核版本命名第一次使用第四个数字是在 2.6.8 的 NFS 代码中出现一个严重的错误需要立即修复,然而还没有足够多的其它改变可以发布一个新的版本(也就是2.6.9),所以,2.6.8.1 发布了,仅仅修正了那个错误。直到 2.6.11,这种版本命名策略被官方正式采纳。接着,这种通过改变第四个数字来显示修复主要bug和安全补丁而发布新内核的做法,成为一种普遍的做法。

  • 在正式发布之前,一般都冠以“待发布”(release candidates)字样,通过在内核版本的普通数字之后添加后缀 “rc”。

  • 有些时候,版本号后面有类似于 “tip”这样的后缀,表明另一个开发分支,这些分支通常(但不总是)是一个人开始发起的。举例来说,“ck” 代表 Con Kolivas,“ac” 代表 Alan Cox 等等。有时,字母和内核建立分支的主要开发领域相关,例如“wl” 表示该分支主要测试无线网络的。同时,不同的发行版也会根据需要有自己的后缀。

4.0 版本什么时候发布?

2013年11月3日,Linus Torvalds宣布发布Linux 3.12,同时还讨论了Linux 4.0发布计划:他考虑在Linux 3.19 之后发布Linux 4.0,和Linux 3.0发布策略相同,4.0并不代表着巨大变化,他只是想避免3.x 的版本号超过20,因为小版本号记忆起来比较简单。

下面是他在内核开发邮件中的原文:

we're getting to release numbers where I have to take off my socks to count that high again. I'm ok with3., but I don't want us to get to the kinds of crazy numbers we had in the 2.x series, so at some point we're going to cut over from 3.x to 4.x, just to keep the numbers small and easy to remember. We're not there yet, but I would actually prefer to not Go into the twenties, so I can see it happening in a year or so, and we'll have 4.0 follow 3.19 or something like that.

按照 Linus 的发布 4.0 的预期以及现在每一个多月就更新一个版本的频率,大概在一年之内内核版本就可以变成 4.x。

内核版本分类

在 Linux 内核官网上你会看到主要有三种类型的内核版本,下图为我在2013.11.13 在官网的截图:

  1. mainline 是主线版本,目前主线版本为 3.12。
  2. stable 是稳定版,由 mainline 在时机成熟时发布,稳定版也会在相应版本号的主线上提供 bug 修复和安全补丁,但内核社区人力有限,因此较老版本会停止维护,而标记为 EOL (End of Life)的版本表示不再支持的版本。
  3. longterm 是长期支持版,目前还处在长期支持版的有五个版本的内核,分别为 3.10、3.4、3.2、2.6.34、2.6.32,长期支持版的内核等到不再支持时,也会标记EOL

查看机器使用的内核版本号

我们安装了不同的 Linux 发行版,那么如何去查看该发行版使用的内核版本号呢? 我们可以使用命令 uname -r 来查看:

[root@archlab-server2 ~]# cat /etc/issue
CentOS release 6.4 (Final)
[root@archlab-server2 ~]# uname -r
2.6.32-358.6.1.el6.i686

我测试的机器使用的是 CentOS 6.4 的发行版,显示的内核版本为 2.6.32。

参考资料

  • http://en.wikipedia.org/wiki/Linux_kernel#Version_numbering
  • https://lkml.org/lkml/2013/11/3/160
  • http://lxr.linux.no/
  • https://kernel.org/

Linux 内核版本命名相关推荐

  1. 有关Linux内核版本命名规则

    1.有关Linux内核版本命名如下: major.minor.patch-build.desc major-----表示主版本号 minor-----次版本号 patch------对minor版本的 ...

  2. 手机linux内核版本了解,Linux内核版本介绍与查询

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

  3. Linux内核版本介绍与查询

    文章目录 Linux内核(Linux kernel)简介 Linux内核版本号 1.在CentOS下如: 2.在Ubuntu下如: 3.在ARM Cortex-A7内核的嵌入式Linux开发板下 内核 ...

  4. 【Linux】一步一步学Linux——Linux内核版本和发行版本(03)

    00. 目录 文章目录 00. 目录 01. Linux内核版本 02. Linux内核官方网站 03. Linux发行版本 04. Linux发行版本介绍 4.1 Ubuntu 4.2 RedHat ...

  5. 安卓与linux内核版本的关系,Linux内核是如何定义版本的?

    我们平时常用到的Linux系统包括CentOS.Ubuntu等,其实这些都是Linux的发行版本,Linux还有一个版本是内核版本. 内核版本的命名规则 在Linux官网(kernel.org)上,我 ...

  6. 了解linux 内核版本和发行版本

    文章目录 linux 内核版本和发行版本区别 1.内核版本 内核版本分类 2.发行版本 CentOS 7 命令lsb_release: command not found linux 内核版本和发行版 ...

  7. Linux 内核版本和发布历史

    Linux 内核最早是由林纳斯·托瓦兹1991年为自己个人电脑开发的,他当时在 Usenet 新闻组 comp.os.minix 登载帖子,这份著名的帖子标志着 Linux 内核计划的正式开始. 在 ...

  8. linux内核版本介绍

    Linux版本 linux版本分为两类: 内核版本:免费的,它只是操作系统的核心,负责控制硬件.管理文件系统.程序进程等,并不给用户提供各种工具和应用软件: 发行版本:不一定免费,出了操作系统核心外, ...

  9. linux内核分两种,Linux内核版本

    Linux内核版本有两种:稳定版和开发版 ,Linux内核版本号由3个数字组成:r.x.y r:目前发布的内核主版本. x:偶数表示稳定版本:奇数表示开发中版本. y:错误修补的次数. 内核版本号每位 ...

最新文章

  1. u-boot.lds 文件分析
  2. 怎么查看和获取SQL Server实例名
  3. python怎么实现图像去噪_基于深度卷积神经网络和跳跃连接的图像去噪和超分辨...
  4. 狂神css3笔记,【CSS】CSS3学习笔记(一)——选择器
  5. 剑指OFFER之把数组排成最小的数(九度OJ1504)
  6. JavaCV最小依赖
  7. java学习的电脑_请问学习java需要什么配置的笔记本电脑?
  8. “超低能,劲搞笑”笑话管理系统 v2.0
  9. H5前端性能测试点及优化方法
  10. 点绕坐标系旋转旋转矩阵推导、理解
  11. java同步,异步和阻塞,非阻塞的联系和区别
  12. android 按钮在键盘上,Android使用键盘上的完成按钮点击按钮
  13. 5G套餐到底该不该换?看完你就明白啦!
  14. VIT Adapter【Vision Transformer Adapter for Dense Predictions】论文笔记
  15. 计算机论文摘要200字模板,论文的摘要范文(论文摘要是摘抄还是自己写)
  16. 第一章 动态规划 状态压缩DP
  17. 【Info】车载芯片的几个大玩家:飞思卡尔(Freescale), 恩智浦(NXP), 高通(Qualcomm)
  18. fatal error LNK1169: one or more multiply defined symbols found 终极解决方案
  19. html画圆圈原理,Html - 圆圈border
  20. echarts y轴均分问题

热门文章

  1. 小米崔宝秋:小米 AIoT 深度拥抱开源
  2. 为什么我们要升级到 iOS 12.1.3?
  3. 网易“吃鸡”,干腾讯何事?
  4. 一文了解 AI 改变生活的 14 种姿势
  5. 遍历数组是什么意思_漫画:寻找无序数组的第k大元素(修订版)
  6. mysql批量导入txt数据_MySQL批量导入Excel、txt数据
  7. python基础知识大一总结与反思_Python第一课教学设计及反思
  8. java反射创建实例_Java反射创建实例
  9. android定时任务源码,Android 定时任务之Service + AlarmManger + BroadcastReceiver
  10. quarts集群 运维_精讲Elastic-job + Quartz实现企业级定时任务