0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux内核版本号是如何形成的?

马哥Linux运维 ? 来源:马哥Linux运维 ? 作者:马哥Linux运维 ? 2022-07-31 11:37 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

每个 Linux 内核版本都有一个与之关联的不同版本号。你有没有想过 Linux 内核版本号是如何形成的? 如果是 Linux 有段时间了,应该知道 Linux 发行版具有独特的版本,并且每个版本都有特定的代号。Linux 内核也有不同的版本号,作为内核所属系列的标识符。但是,内核版本的早期形成方式与 Linus Torvalds 现在的命名方式有所不同。 到最后,你将更加熟悉 Linux 内核版本控制方案,并且会更轻松地阅读内核版本号并识别与特定版本相关的各种功能。

传统的 Linux 内核版本控制

当 Linus 刚开始开发内核时,所使用的版本控制系统只是由一个从零(0.x)开始的递增变量方案组成。最初,Linus 是该项目的唯一工作人员,这个版本控制系统足以满足记录和分发新内核版本的需要。 以下是遵循此命名方案的一些内核版本:

9aac433c-1012-11ed-ba43-dac502259ad0.jpg

后来,随着越来越多的开发人员开始为该项目做出贡献,并且修订和补丁数量的显著增加,决定这种版本控制方案不适用于内核等软件。从 1.0 版本开始,Linus 采用了一个带有一些附加变量的新方案。

引入更具描述性的版本控制系统

1994 年,随着 Linux 1.00 内核 发布,Linus 开始使用新的版本控制系统,该系统在语法中使用了三个变量:“abc”。这些变量(a、b 和 c)分别代表特定内核版本的主要版本、次要版本和修订号。 以 Linux 1.1.95 内核为例。你可以将其解码为第一个主要版本、第一个次要版本和第 95 个修订版。 当时,即使是次要版本号也表示稳定的内核版本,而奇数则表示开发版本。拥有单独的分支很重要,这样开发人员可以在内核中添加和测试新功能而不会影响稳定分支。 内核开发人员在开发分支中添加和改进新功能,直到它足够稳定以作为 LTS 内核发布。LTS 内核 3.2 是通过稳定版本 3.1 中的新特性而开发的,同样,新的开发内核 3.3 从 3.2 分支出来,为随后将在 Linux 3.4 中引入的新特性让路。 从 Linux 2.4 内核 开始,内核名称中的第四个变量表示补丁版本。你可以说版本 2.4.37.10 是内核 2.4.37 的第十个补丁版本。 补丁版本并不意味着内核版本中修补的问题数量。相反,它计算在修补发现的问题后发布更新内核的次数。 在 Linux 2.6 之前,一直使用这个版本控制系统,它可以有效地将特定版本与其他版本区分开来。在版本号中添加修订计数和补丁版本是描述性的,但这意味着具有更长和更复杂的内核版本。再一次,需要一个新的更好的方案。

Linux 内核版本现在是如何命名的?

在 Linux 3.0 版中,Linus 从版本号中删除了第四个变量。现在,内核版本是根据语法形成的:abc,其中 a、b 和 c 分别是主要版本、次要版本和修订计数。此版本控制方案类似于 1.0 和 2.4 内核版本之间使用的方案。

9ab9be5e-1012-11ed-ba43-dac502259ad0.png

Linux 3.2.0-23 由于版本控制系统的进步,贡献者现在可以无缝地在稳定的分支上工作并添加新功能,而不会意外破坏已经工作的稳定版本。因此,在内核版本 4.0 推出后,内核的稳定分支和生产分支使用偶数和奇数次要版本号变得多余,并且4.x系列中的第一个 LTS 版本(4.1)有一个奇数次要版本号。 你可能还会注意到版本号末尾的一些字符,例如rcX。审查候选(或简称“rc”)是内核的预览版本和预补丁版本,开发人员需要修补它们以消除错误和其他问题。这些是以前由奇数次要版本号表示的开发版本的替代品。 尽管这些版本是专门为内核开发人员保留的,因此他们可以修复报告的问题并实现新功能,但你也可以根据需要下载和测试这些内核审查候选者,但通常不建议这样做,因为这是大多数开发发生的地方。在撰写本文时,最新的内核预览版是5.19-rc6。 为了创建新版本,当变量的值达到特定数字时,前面的变量会递增。例如,每当次要版本计数接近 20 时,主要版本就会更新到下一位。 Linus 在他的 5.0 内核开发邮件中提到,他只是将主要版本更新为 5,因为次要版本数量太大,无法指望手指和脚趾(20!)。同样,根据kernel.org,当第一个点之后的数字开始看起来“太大”时,主版本号会增加。3.x系列的最终内核版本是 3.19,最后一个主要的4.x内核系列是 4.20,然后升级到 5.0。

9aec6840-1012-11ed-ba43-dac502259ad0.png

Linux 5.18.0-2 自 3.0 版以来,Linux 内核一直遵循此版本控制方案,并且已证明它在三个主要内核版本(版本3.x、4.x和5.x)中都是有效的。

使用版本号识别 Linux 内核版本

考虑到发布的 Linux 内核版本数量之多,因此需要一个适当的系统来识别和区分特定版本与其他版本。使用新的内核版本控制方案,现在可以有效地识别和比较内核版本,并且很容易知道哪个内核版本是最新的,哪个是较早发布的。 如果你想检查系统上当前安装的 Linux 内核版本,可以使用 uname 来完成,这是一个 Linux 命令,可让你列出与系统相关的信息。根据你运行的发行版,uname 显示的版本号可能与实际的 Linux 内核版本不同。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制系统
    +关注

    关注

    41

    文章

    6817

    浏览量

    112433
  • 内核
    +关注

    关注

    3

    文章

    1423

    浏览量

    41681
  • Linux
    +关注

    关注

    88

    文章

    11538

    浏览量

    214966

原文标题:你知道什么是 Linux 内核版本控制方案吗?

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    鸿蒙NEXT-鸿蒙老版本迁移最新版本(API19,modelVersion5.1.1)

    、on-package.json5)中的modelVersion和SDK版本号,完成后同步即可使用API19。特别提醒:在ability中获取上下文时,原windowStage.getMainWindowSync()方法已废弃
    的头像 发表于 06-30 22:15 ?432次阅读
    鸿蒙NEXT-鸿蒙老<b class='flag-5'>版本</b>迁移最新<b class='flag-5'>版本</b>(API19,modelVersion5.1.1)

    如何配置和验证Linux内核参数

    Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要。合理的参数调整可以显著提升网络性能、系统稳定性及资源利用率。然而,仅仅修改参数是不够的,如何验证这些参数是否生效同样关键。
    的头像 发表于 05-29 17:40 ?403次阅读

    如何在Linux内核5.18版本之后和64位架构中从内核空间调用ioctl?

    我尝试在最近的内核中重新构建以前版本 (4.19) 的 Linux 设备驱动程序,即嵌入式平台上的 6.1.22,ARM64 架构。 驱动程序管理 tty 设备。 当我调用类似于用户空间
    发表于 04-02 06:06

    树莓派4 性能大比拼:标准Linux与实时Linux 4.19内核的延迟测试

    引言本文是对我之前关于RaspberryPi3同一主题的帖子的更新。与之前的帖子一样,我使用的是随Raspbian镜像提供的标准内核,以及应用了RT补丁的相似内核版本。对于实时版,我
    的头像 发表于 03-25 09:39 ?431次阅读
    树莓派4 性能大比拼:标准<b class='flag-5'>Linux</b>与实时<b class='flag-5'>Linux</b> 4.19<b class='flag-5'>内核</b>的延迟测试

    【教程】Chirpstack V3服务器简介和搭建示例

    输入vim--version命令来检查vim版本,如安装,则返回版本号,见下图:终端中输入git--version命令来检查git版本,如安装,则返回版本号,见下图
    的头像 发表于 03-13 19:32 ?534次阅读
    【教程】Chirpstack V3服务器简介和搭建示例

    Nginx服务优化教程

    隐藏Nginx版本号,避免安全漏洞泄漏:修改配置文件法;修改源码法
    的头像 发表于 03-12 15:57 ?591次阅读
    Nginx服务优化教程

    苹果为iPhone 11系列重新发布iOS 18.3版本更新

    苹果公司针对 iPhone 11、iPhone 11 Pro 以及 iPhone 11 Pro Max,重新发布了 iOS 18.3 版本更新,此次更新版本号为 22D64 ,旨在解决 iPhone
    的头像 发表于 02-05 16:31 ?2139次阅读

    升级centos7内核版本

    先查看当前内核版本 ~] #uname -a Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 1659
    的头像 发表于 01-02 10:41 ?791次阅读

    腾讯云内核团队修复Linux关键Bug

    Maintainer深感棘手的关键内核bug。 这一改进方案经过严格评审和测试,最终被合并进入后续的Linux LTS(长期支持)版本中,标志着腾讯云在操作系统内核领域的技术实力得到了
    的头像 发表于 12-31 10:58 ?743次阅读

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介

    linux官网下载稳定版本内核,将其适配到各个芯片上,芯片原厂也会对内核进行维护形成自己的维护版本
    发表于 12-16 13:08

    飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介

    linux官网下载稳定版本内核,将其适配到各个芯片上,芯片原厂也会对内核进行维护形成自己的维护版本
    发表于 12-13 09:03

    nginx隐藏版本号与WEB服务器信息

    nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看看最终的隐藏结果吧 具体怎么实现呢,其实也很简单,请往下看 1 官网下载最新稳定版 wget http://nginx.org
    的头像 发表于 11-22 10:25 ?700次阅读
    nginx隐藏<b class='flag-5'>版本号</b>与WEB服务器信息

    deepin社区亮相第19届中国Linux内核开发者大会

    中国 Linux 内核开发者大会,作为中国 Linux 内核领域最具影响力的峰会之一,一直以来都备受瞩目。
    的头像 发表于 10-29 16:35 ?1023次阅读

    详解linux内核的uevent机制

    linux内核中,uevent机制是一种内核和用户空间通信的机制,用于通知用户空间应用程序各种硬件更改或其他事件,比如插入或移除硬件设备(如USB驱动器或网络接口)。uevent表示“用户空间
    的头像 发表于 09-29 17:01 ?2150次阅读

    linux驱动程序如何加载进内核

    Linux系统中,驱动程序是内核与硬件设备之间的桥梁。它们允许内核与硬件设备进行通信,从而实现对硬件设备的控制和管理。 驱动程序的编写 驱动程序的编写是Linux驱动开发的基础。在编
    的头像 发表于 08-30 15:02 ?1223次阅读