广州liunx培训
达内广州云计算中心

18589266248

热门课程

Linux内核开发是如何开始的

  • 时间:2018-03-15 15:23
  • 发布:达内新闻
  • 来源:达内新闻

这篇文章描述了Linux内核开发模型的工作原理,长期支持的内核是什么,内核开发人员如何处理安全漏洞,以及为什么所有使用Linux的系统都应该使用所有的稳定版本,而不是试图挑选和随机选择补丁。

Linux内核开发模式

Linux内核是有史以来最大的协作软件项目。2017年,超过530家不同公司的4300多位开发人员参与了该项目。2017年有5个不同版本,每个版本包含12,000到14,500个不同的更改。平均而言,Linux内核每小时每小时都会接受8.5次更改。非科学研究(即格雷格的邮箱)显示,由于所有内核更改都经过了严格的审查和测试过程,每个更改需要提交2-3次才能被接受到内核源代码树中,因此工程发生的努力远大于每小时8次的变化。

在2017年年底,Linux内核的规模超过61000个文件,包含2500万行代码,构建脚本和文档(内核版本4.14)。Linux内核包含所支持的所有不同芯片架构和硬件驱动程序的代码。因此,单个系统只运行整个代码库的一小部分。一台普通的笔记本电脑使用大约200万行5千个文件的内核代码来正常工作,而Pixel手机由于SoC的复杂性增加而使用了来自6000个文件的320万行内核代码。

内核发布模型

随着2003年12月2.6版内核的发布,内核开发者社区从先前拥有独立开发和稳定内核分支的模式转向了“稳定的”分支模型。每2至3个月发布一次新版本,并且该版本被宣布为“稳定”,并建议所有用户运行。开发模式的这种变化是由于2.6内核之前的很长的发布周期(接近3年)以及同时维护代码库的两个不同分支的努力。

内核版本的编号从2.6.x开始,其中x是一个在每个版本中都有变化的增量编号。除了比以前的内核版本更新之外,编号的值没有任何意义。2011年7月,2.6.39内核发布后,Linus Torvalds将版本号改为3.x。这是因为更高的数字开始引起用户之间的混淆,并且因为稳定的内核维护者Greg Kroah-Hartman厌倦了大量数据,并以一瓶优质的日本威士忌向Linus贿赂。

对3.x编号系列的更改并不意味着除主要版本号的更改之外的任何内容,并且这种情况在2015年4月再次发生,从3.19版本发布到4.0版本号。当这种情况发生时,任何威士忌交换手都不记得了。在目前的内核释放速率下,2018年的某个时候,该数字将变为5.x。

稳定的内核版本

Linux内核稳定版本模型始于2005年,当时内核的现有开发模型(每2-3个月发布一次新版本)被确定为不能满足大多数用户的需求。用户希望在这2-3个月内进行错误修正,而Linux发行版已经厌倦了试图在内核社区没有任何反馈的情况下保持内核的最新状态。试图保持单个内核的安全并使用最新的错误修正是许多不同个体的大量混淆工作。

正因为如此,稳定的内核版本才开始启动。这些版本直接基于Linus的版本,并且每周都会发布,具体取决于各种外部因素(一年中的时间,可用补丁,维护者工作负载等)

稳定版本的编号从内核版本的编号开始,并在其末尾添加一个附加编号。

例如,Linus发布4.9内核,然后基于此内核的稳定内核版本编号为4.9.1,4.9.2,4.9.3等等。当引用一个稳定的内核版本树时,这个序列通常会缩短为“4.9.y”。每个稳定的内核版本树由单个内核开发人员负责维护,该开发人员负责为发布选择所需的修补程序,并执行审阅/发布过程。下面描述了发现这些变化的地方。

只要当前的开发周期发生,稳定的内核就会得到维护。在Linus发布新内核之后,先前的稳定内核版本树会停止,并且用户必须移动到最新发布的内核。

长期稳定的内核

经过这一新的稳定版本流程一年后,确定许多不同的Linux用户希望内核的支持时间超过几个月。正因为如此,长期支持(LTS)内核发布了。2006年发布的第一个LTS内核是2.6.16,从那时起,每年选择一个新的LTS内核。该内核将由内核社区维护至少2年。请参阅下一节,了解如何选择内核作为LTS版本。

目前,LTS内核是4.4.y,4.9.y和4.14.y版本,平均每周发布一次新内核。随着这三个内核版本的发布,由于某些用户和发行版的需要,一些较早的内核仍然由一些内核开发人员在较慢的发布周期中进行维护。

有关所有长期稳定内核的信息,负责这些内核的人员以及维护时间可以在kernel.org发布页面上找到 。

LTS内核平均每天发布9-10个补丁,而正常稳定的内核版本每天包含10-15个补丁。考虑到相应的开发内核版本的当前时间以及其他外部变量,修补程序的数量在每次发布时会波动。LTS内核越旧,适用的修补程序越少,因为许多最新的错误修正与旧内核无关。但是,由于代码库中的更改,内核越旧,支持需要应用的更改就越难。因此,虽然可能会应用更少数量的整体修补程序,但维护LTS内核所付出的努力要比维护正常稳定的内核更大。

上一篇:2018年要学习什么技术?五种开源技术趋势
下一篇: Linux的开源人工智能项目

马上预约三天免费体验课

姓名:

电话:

选择城市和中心
贵州省

广西省

海南省