Linux内核发布模式与开发组织模式(1)

Linux内核版本发布时间整理 有了这个Linux内核版本发布时间表(0.00到3.19,当然没有包含全部的版本), 大家就可以看看自己用的版本是何时发布的了! 或许有同学会大吃一惊,哇(⊙0⊙)我用的版本10年前就有了啊! 发展史我也没写全,有时间和必要的话再写吧! 版本号 时间 发展史 0.00 1991.2-4 两个进程分别显示AAABBB 阅读详情

Linux内核社区经历20多年的发展,逐渐形成了一套完善的开发模式。作为想要加入社区进行开发的人来说,当然必须熟悉下这套模式啦,其中最重要的两点是:

  • 内核发布模式
  • 内核开发组织模式

本文将对第一点进行讲述, 第二点在下一篇中讲述。(没耐心看完整篇文章的的朋友,直接看本文总结)

内核发布模式

追溯Linux内核版本号发展沿革,可知其经历了三个阶段,这分别为

 
  1. v1.0以前时期
  2. v1.0至v2.6时期
  3. v2.6至今

v1.0以前时期

从Linus于1991年10月5日正式发布v0.0.2开始[1], 到1994年3月14日发布v1.0, 这中间经历了若干个版本的发布。此时尚未形成模式。

v1.0至v2.6时期

这一段时期,Linux用的是著名的奇数号开发版本,偶数号稳定版本模式。版本号模式为(以下引用文字来自维基百科):

A.B.C

  • A大幅度转变的内核。这是很少发生变化,只有当发生重大变化的代码和核心发生才会发生。在历史上曾改变两次的内核:1994年的1.0及1996年的2.0。
  • B是指一些重大修改的内核。
  • C是指轻微修订的内核。这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。

其中,当B为奇数,标明这是一个开发版本; 当B为偶数,标明这是一个稳定版本。其运转模式如下:

 
  1. 新的特性或功能总是基于稳定版本开发, 如果新增的代码太过于庞大与激进, Linus就会另开一个比当前版本号大1的奇数版本号,是为开发版本。新特性或新功能代码被引入该开发版本, 如果该版本被认为方向不对, 则干脆就直接抛弃该版本内核; 相反, 如果该版本稳定下来, 则考虑把它 1) 合并为当前稳定版本。2) 另开一个分支,变成一个新的偶数版本号。

这样粗粒度的版本号模式,意味着相当长的发布周期: 一般是2-3年一个稳定版本, 如图1所示: 从v2.0 到 v2.2,从v2.2 到 v2.4, 从v2.4 到 v2.6, 都经历了2-3年不等的时间。

图片

图1: v1.0 - v2.6 发布时间

如此长的发布间隔时间,意味着:一个新的硬件上市,买家需要花几年的时间来等待内核的支持,这是无法忍受的;而这也迫使各个发行版本商从开发版本中向后移植新的特性,这导致了发行版间内核的分歧越来越大, 这是人们所讨厌的。这是这个版本号模式抛弃的重要原因。

v2.6至今

  1. 固定的2.6版本号

    进入v2.6时期,Linux内核核心开发者决定不再创建2.7分支, 而继续在2.6分支上进行新功能的开发。核心开发者Greg Kroah-Hartman写了一篇文章对此作了一些解释。大概原因是: 在2.6版本释出前, Linus的主内核分支(mainline)进行了长达数个月的特性冻结, 不再接受新特性代码。这样, 进入Linus主内核分支的代码都首先经过另一个核心开发者Andrew Morton)维护的-mm分支(将在下篇文章中讲述)的测试; 而且其它子系统维护者也会把他们的分支代码先在Andrew Morton的-mm分支中进行测试, 之后代码才支进入Linus的mainline。可以说-mm分支取代了v2.6时代之前奇数号分支这一新功能试验场的作用。这样的模式稳定了不少, 新功能也得以更快速被吸收入mainline内核中。于是, 前面所述的奇开发偶稳定, 长周期的版本号模式被抛弃了。 2.6版本号固定下来, 内核沿着2.6.X的递增版本号进行发布。

  2. 第四位版本号偶然登场: 2.6.X.Y

    在这样的模式引导下, 内核确实加快了开发步伐: 从2003年12月8日到2004年12月24日这一年时间内, 内核发布了从v2.6.0到v2.6.10这11个版本。这样激进的步伐还是招致了不少内核开发者的意见, 他们认为每个v2.6.X版本都是伪装的开发版本, 因为还是有很多不稳定的PATCH被引进了。这其间一个事件也反映了这一点, 并且让内核的版本号又多了一位: 在Linus发布v2.6.8的当天, NFS代码中就发现了一个亟待解决的重大错误,而此时显然不会为了修改这一个错误而再发布一个新的版本,于是,Linus发布了v2.6.8.1。

  3. 第四位版本号确立地位

    激进的步伐引发的问题当然也让Linus对这一模式进行了思考。于是, 在发布v2.6.11当天,Linus发了封邮件, 宣布要采用一种新的模式: 重回奇偶版本模式, 但这种模式较之2.6前的奇偶模式更小粒度。2.6.<奇> 与 2.6.<偶>都是稳定版本, 只不过, 对奇数版本来说, 对新功能代码的接受更加宽容, 但它必须被密切关注, 以确保它们不会出现大问题; 对偶数版本, 则更加谨慎, 只接受一些被认为是稳定的补丁。

    Linus这种表面看都是稳定版本, 内里则行奇偶之别的做法并未得到开发者们的认同。在那封邮件里, 出现了少有的很长的讨论, 大家认为出现问题的原因还是因为测试太少。虽然, 补丁在进入Linus的mainline前有经过前面所说的-mm分支的测试; 在Linus每发布一个版本前的rc预览版本(将在下篇文章中讲述)也经过用户的测试, 但实际问题是这两个途径都没发挥它们的作用: -mm分支因为是新代码的试验场, 不太稳定,有时连编译都失败, 少有开发者愿意在该分支上测试; 而rc版本在用户看来不是正式的官方发布版, 也少有人愿意测试它们。

    既然测试太少问题难解, 那不妨以补救方式来对正式版本进行修正!

    有人提出了这个建议, 并把前面所说的v2.6.8引入的四位版本号拿来使用: 每当释出一个v2.6.X版本, 如果有重要的bugfix或安全补丁, 则移植到v2.6.X上, 并释出新的bugfix版本: v2.6.X.Y。Linus本人起初不看好, 觉得这是一项没有多少成就感, 吃力不讨好的工作, 没有人愿意做。但Greg Kroah-Hartman站出来, 并建立新的一个-stable分支来做这件事。他进行这种尝试的第一个版本就是v2.6.11.1。

    事实证明这样做挺好, 并且该模式也一直延续到今天(这是后话, 在下篇文章中详述)。

  4. 3.0时代, 换汤不换药

    在2011年7月21日,Linus释出了原本应为v2.6.40的新版本v3.0, Linus在邮件中解释说, 新的3.0版本号,只是为了庆祝Linux20周年庆,同时丢弃掉笨重的2.6.X数字系统。

    可以说,3.0时代的版本号模式并没有改变, 只不过是把2.6改成了3, 并且从0开始版本号计数而已, 它的象征意味更浓些。

总结

从v2.6开始的版本号模式, 缩短了版本周期(大概2-3个月一个版本), 改变了之前以奇偶数分开发,稳定版的漫长周期模式。 每个版本都有若干个(5-7个)候选版本(rc, release candidate)的形式发布, 作为预览版。 一般来说,只有第一个rc接受新特性或新功能代码, 此rc就是俗称的合并窗口, 当开发者认为该版本已经解决了上一个版本的一些regression问题, 内核足够稳定了, 就会发布新版本。新的版本释出后会交到Greg K-H维护的-stable分支进行维护, 接受bugfix或安全补丁。而Linus则开启合并窗口, 进行下一个新的版本的开发。如此周而复始。

* * * * * * 全文完 * * * * * *

[1]: 其实对Linux项目真正诞生的日期,存在不同的看法:有人认为是1991年8月25日Linus在Usenet上发表的关于Linux系统的帖子开始,也有人认为应从v0.0.2版本公开发布之日算起。可以看看Linus本人的看法。

linux网络操作系统考试试题答案 网络操作系统的学习,试题的锻炼,以及答案,是你最好的选择,你还等什么呢! 立即下载

相关推荐

G:\linux基本试题\Linux试题大全及参考答案(1)--填空题.doc

G:\linux基本试题\Linux试题大全及参考答案(1)--填空题.doc

Linux网络操作系统及应用教程( 项目式)项目一

项目一 安装与基本配置Linux操作系统一、填空题1、GUN的含义是  GNU's Not UNIX    。2、Linux一般有3个主要部分:内核(Kernel)、命令解释层(shell或其他操作环境)、实用工具   。3、目前被称为纯种的UNIX指的就是 SystemV 以及 BSD 这两套操作系统 。4、Linux是基于 Copyleft(无版权) 的软件模式进行发布的,它是GNU项目制定的...

CRGYSSE的博客 1万+

西门子840D新建项目

1、需要一个32位的WIN7或者XP系统,并且已经在系统中安装完成西门子840Dsl开发包和VS2008。(我采用的是XP系统虚拟机) 2、在开始->所有程序找到如下位置 3、在这个位置打开Visual Studio 4、文件->新建->项目 名称和位置都可以随意更改,点击确定。 5、在左侧选择第二个选项进入下面的界面 点击“Add Screen”按钮 可以修改“class name”然后点击“OK”返回上一个界面,再点击“Add Form” 可以修...

qq_36987047的博客 1861

Linux基础

Linux系统安装及基本操作 Linux概述 Linux内核是基于GNU发布的自由软件 GNU:目标是编写大量兼容Linux系统的自由软件 GPL:允许用户任意复制,传递,修改和再发布 LGPL 常见开发源码的软件 Firefos:网页浏览器 OpenOffice:网页套件 Apache ...... Linux发行版本构成 完整的OS=Linux内核+各种自由的软件 厂商提供的辅助安装、软件包管理等程序 磁盘分区 1.概述 硬盘很大,分成一块块的,方便管理 一块硬盘可以分为两大分区:主

weixin_51699336的博客 2519

手把手教你用EGM96模型校正DEM数据(含在线工具推荐)

本文详细介绍了如何使用EGM96地球重力场模型校正DEM数据中的高程偏差。通过对比WGS84椭球面与大地水准面的差异,解释了校正原理,并提供了从在线工具快速验证到Python脚本批量处理的全流程实战指南,帮助GIS开发者和数据分析师确保高程数据基准一致,提升空间分析精度。

ttt77的博客 1008

手把手搭建摄像头驱动(一):I2C设备树插件与OV5640实战

本文手把手指导如何搭建OV5640摄像头驱动,重点讲解I2C设备树插件的编写与实战应用。通过硬件连接验证、I2C驱动框架搭建、设备树插件编译及动态加载调试,系统介绍Linux驱动开发全流程,并提供常见问题解决方案,帮助开发者快速掌握摄像头驱动开发技术。

git9versioner的博客 755

linux是基于什么的软件模式进行发布的,《Linux操作系统与应用项目教程》习题.doc...

《Linux操作系统与应用项目教程》习题1.8 练习题一、填空题1.GUN的含义是 。2.Linux一般有3个主要部分: 、 、 。3.目前被称为纯种的Unix指的就是 以及 这两套操作系统。4.Linux是基于 ...

weixin_34190533的博客 2022

从原理到实践:MIPI D-PHY v1.2的HS-Deskew功能全解析(附时序图详解)

本文深入解析MIPI D-PHY v1.2的HS-Deskew功能,从技术背景到实现机制,详细介绍了其在2.5Gbps高速传输中的关键作用。通过时序图详解和实测数据,帮助工程师理解并应用这一技术,解决信号完整性问题,提升系统可靠性。

weixin_30300225的博客 308

初识Linux

目录 Linux系统的历史 Linux的版权问题 Linux系统的特点 体系结构 1.Linux内核 2.命令解释层 3.实用工具 如何使用终端窗口 shell提示符 Linux系统的历史 Linux系统是一个类似与UNIX的操作系统,Linux系统是UNIX在计算机上实现,他的标志是一个名为Tux的可爱小企鹅。 1991年10月5日,Linux Torvalds在赫尔辛基技术大学的一台FTP服务器上发布了一个消息,这也标志着Linux的诞生。 ...

dwkmadla的博客 936

基于LLaMA-action模型的文档摘要任务微调

文档摘要是指从长文档中提取关键信息,生成简短而准确的总结。抽取式摘要:从原文中直接抽取关键句子或短语组成摘要。生成式摘要:通过生成新的句子来表达原文的核心内容。混合式摘要:结合抽取式和生成式方法,既保留原文的关键句子,又生成新的内容。新闻网站:自动生成新闻摘要,帮助用户快速了解新闻要点。社交媒体:为用户提供新闻摘要,便于分享和传播。学术搜索引擎:为用户提供学术文献的摘要,帮助用户快速筛选相关文献。学术写作辅助:帮助研究人员快速生成文献综述部分。企业内部文档管理:自动生成文档摘要,便于员工快速了解文档内容。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1431

开关电源中的高频振荡噪声及其抑制方法

在开关电源的工作过程中,随着开关管的开关动作,电流和电压波形会出现剧烈的波动,尤其是在开关管切换的瞬间,往往会导致较强的过冲现象。开关电源中的高频振荡噪声是导致电磁兼容问题的主要源头之一,尤其是MOS管的通断和整流二极管的反向恢复过程中,会产生较强的高频振荡噪声。通过合理调节R和C的值,可以大大缓解高频振荡带来的EMC问题,从而有效提升电源的电磁兼容性。整流二极管反向恢复时的振荡会导致高频噪声产生,这些高频噪声源可被传导到电源的输出端,甚至可能通过电源的共地路径扩散到其他电路,影响系统的稳定性和可靠性。

硬核科技 1531

【Linux】Linux的简单认识

Linux简介 1991年10月5日,一位来自芬兰赫尔辛基大学的年轻人Linus Benedict Torvalds宣布他已经编制出了一种类似UNIX的小操作系统,也就是Linux。事情的缘起是这样的:为了使用著名的计算机科学家Andrew S.Tan Enbaum开发的Minix(一套功能简单,简单易懂的UNIX操作系统,可以在8086上运行),Linus购买了一台486微机,但他发现Minix...

计算机小白努力学习 3739

MNI152 坐标空间和 fsaverage 坐标空间相互转换, 如已知fsaverage空间的坐标如何求MNI152 坐标?aparc.a2009s.annot转化到MNI152空间?

大多数神经影像学研究的结果是在体积(例如,MNI152)或表面(例如,fsaverage)坐标系中报告的。体积坐标系和表面坐标系之间的准确映射可以促进许多应用,例如将 fMRI 组分析从 MNI152 投影到 fsaverage 以进行可视化或从 fsaverage 投影静息状态 fMRI 分区对 MNI152进行新数据的体积分析。Wu et al., 2018 评估了三种在 MNI152通过模拟上述应用的 Colin27 和 fsaverage 坐标系:将组平均数据从 MNI152/Colin27 投影到

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 2966

linux 开发组织模式,Linux内核发布模式与开发组织模式(1)

Linux内核社区经历20多年的发展,逐渐形成了一套完善的开发模式。作为想要加入社区进行开发的人来说,当然必须熟悉下这套模式啦,其中最重要的两点是:内核发布模式内核开发组织模式本文将对第一点进行讲述, 第二点在下一篇中讲述。(没耐心看完整篇文章的的朋友,直接看本文总结)内核发布模式追溯Linux内核版本号发展沿革,可知其经历了三个阶段,这分别为v1.0以前时期v1.0至v2.6时期v2.6至今v1...

weixin_28843015的博客 354

Android 自动亮度

/则需要从BrightnessConfigure类中读取两个数组源:config_autoBrightnessLevels和config_autoBrightnessDisplayValuesNits。) 或知道其在DisplayPowerController()构造的时候初始化的。曲线设置好了,就应该扔代码里跑起来,模型建起来了,这个过程是咋样的呢?//它将负责曲线的创建,自动背光值的计算等。通过搜索配置关键词(

Android 1485

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Linux内核发布模式与开发组织模式

Linux内核社区经历20多年的发展,逐渐形成了一套完善的开发模式。作为想要加入社区进行开发的人来说,当然必须熟悉下这套模式啦,其中最重要的两点是: 内核发布模式内核开发组织模式 本文将对第一点进行讲述, 第二点在下一篇中讲述。(没耐心看完整篇文章的的朋友,直接看本文总结) 内核发布模式 追溯Linux内核版本号发展沿革,可知其经历了三个阶段,这分别为 v1.0以前时

xiaoqiaxiaoqi的博客 797

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Linux内核发布模式与开发组织模式(2)

这篇文章讲述Linux内核的开发组织模式, 顺带地, 会描述几个Linux内核开发者必须知道的重要的内核分支。 开发组织模式 Linux作为迄今全球规范最庞大开源合作项目, 在20多年的发展过程中, 逐渐形成一套基于信任链的层级组织模式, 这套模式有个术语叫司令官与副官工作流(dictator and lieutenat workflow)。在这种模式中, 有若干个管理员, 分别负责项

permike的专栏 1723

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Linux 6.2 正式发布,首个支持 M1芯片的主流内核版本

【优快云 编者按】Linux 6.2 是第一个支持苹果 M1 芯片设备的主流 Linux 内核,并稳定支持 Intel Arc Graphics 和 NVIDIA RTX 30 系列。整理 | 禾木木责编 | 梦依丹出品 | 优快云(ID:优快云news)近日,Linus Torvalds 发布了 Linux 6.2 内核稳定版,标志着 2023 年的第一个主要内核版本已来。Torval...

优快云资讯 1万+

Linux内核架构浅谈9-Linux内核的开源生态:开发者协作与版本迭代机制

Linux内核开源生态的成功源于其独特的去中心化协作模式与科学的版本迭代机制。文章以2.6.24版本为例,分析了内核开发者层级体系(首席维护者-子系统维护者-企业开发者-独立开发者)和补丁驱动的协作流程,展示了Git与邮件列表工具组合的高效性。2.6系列确立的"合并窗口+RC测试"双阶段迭代模式,平衡了创新与稳定性。内核生态的持续活力得益于三重保障:严格的代码规则、透明的社区文化以及模块化的技术设计。这种去中心化的全球协作模式证明,开源协作能创造出比封闭开发更卓越的复杂系统。

文石_2009的博客 1341

Linux内核简介、版本号、发布历史及发行版

一.Linux内核简介 Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,这里有一份Linus Torvalds当时在Usenet新闻组comp.os.minix所登载的贴子,这份著名的贴子标志着...

有理论,有实验,有结论,可为一篇文章 1万+

【Linux内核及内核编程】Linux 内核的发展与演变:从 UNIX 到开源帝国的崛起

1969年,贝尔实验室的肯·汤普森和丹尼斯·里奇在报废的DEC PDP-7小型机上开发了一个“太空旅行”游戏。为简化开发,他们用汇编语言编写了一个轻量级操作系统——UNICS(Uniplexed Information and Computing Service),后缩写为 UNIX。这个“游戏外挂”意外开启了操作系统的新纪元

byte轻骑兵的技术小窝 2242

Linux Kernel Development入门:从0到1理解内核开发流程

Linux Kernel Development是全球最大的协作软件开发项目之一,其独特的开发模式和高效的迭代流程支撑着全球数十亿设备的稳定运行。本文将带你快速掌握内核开发的核心流程、参与方式和关键工具,让你从新手成长为合格的内核贡献者。 ## 🚀 内核开发全景:协作模型与组织架构 Linux内核开发采用分布式协作模式,拥有清晰的层级结构和责任划分。这种架构确保了代码质量的同时,也让全球开发

gitblog_00622的博客 803

VirtualBox 7.2.10发布:全面支持Linux 7.1内核

虚拟化技术通过创建隔离的虚拟环境,使多个操作系统能在同一硬件上并行运行。其核心原理是利用hypervisor层抽象硬件资源,实现CPU、内存和I/O设备的虚拟化分配。作为开源虚拟化解决方案的代表,VirtualBox凭借跨平台特性和易用性,已成为开发者构建测试环境的优选工具。最新7.2.10版本重点增强了对Linux 7.1内核的兼容性,包括适配模块签名验证、优化内存管理子系统交互等关键技术改进。该版本在开发测试、教育培训等场景表现突出,配合virtio-net驱动和VirtIO-SCSI控制器可显著提升I

weixin_33739541的博客 391

Linux内核分析与驱动编程-1

Linux内核分析与驱动编程Course IntroductionLinux Basic Knowledge版本内核开发流程Linux Kernel IntroductionUnixGNUOpen Source Licenses Course Introduction jingqi@pku.edu.cn Focus on Linux Kernel ,初学 黑盒学习,不会的内容视为黑盒,能够使用即...

OliveDS的博客 702

Linux内核发布时间表

有了这个Linux内核版本发布时间表(0.00到3.19,当然没有包含全部的版本),大家就可以看看自己用的版本是何时发布的了!做内核维护查看相关patch log时大致做个参考。 版本号 时间 发展史 0.001991.2-4两个进程分别显示AAABBB0.011991.9第一个正式向外公布的Linux内核版本0.021991.10.5Linux的第一个稳定的工作版本0.031991.10.5  0

张勇1234的博客 7987
上一篇: HOWTO do Linux kernel development - take 3 (中文版)
下一篇: Linux内核发布模式与开发组织模式(2)
permike
博客等级 码龄16年 192粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值