我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux内核开发经历的示例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux内核开发经历的示例分析

这篇文章主要为大家展示了“Linux内核开发经历的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux内核开发经历的示例分析”这篇文章吧。

Linux内核社区在2016年庆祝了成立二十五周年纪念,许多人来问我们这个项目经久不衰和成功的秘诀。我一般会先笑笑,然后开玩笑地说,我真的不知道已经经历了25年。这个项目一直都面临着分歧和挑战。但是,严肃地说,我们能够做到这一点与社区在反思和改变上的能力有着很大的关系。

大约16年前,大多数内核开发人员互相之间从来没有见过面,我们只是通过电子邮件进行联系,所以Ted T’so提出了内核峰会的想法。现在,内核开发人员每年都会聚在一起解决技术问题,更重要的是,回顾一下在过去的一年里我们做了哪些对的事情,又犯了哪些错误。开发人员可以开诚布公地讨论相互之间如何进行交流以及开发流程如何运作。然后,我们会改进流程,我们会开发像Git这样的新的工具,不断地改变我们的合作方式。

虽然我们现在尚未完全认识清楚Linux内核成功的所有关键原因,但目前还是有一些经验值得拿出来分享的。

1. 更短的发布周期很重要

在Linux项目的早期阶段,内核的每个主版本需要好几年发布一次,这意味着用户需要等待很长时间才能享受到新功能,这对于用户和经销商来说是相当令人沮丧的。而且,更重要的是,这么长的周期意味着需要一下子集成大量的代码。把这么多代码合入一个版本里,压力也是很大的。

更短的周期可以解决所有这些问题。新代码能够在更短时间内合入到稳定版中。将新代码集成到几乎稳定不变的基线版本上,使得能够在对系统产生极小影响的情况下引入根本性的变化。开发人员知道,如果他们错过了这个发布周期,两个月内还会有另外一个,所以他们很少会过早地合入代码。

2. 流程的扩展需要一个分布式的分层开发模型

很久以前,所有的变更需求都会直接转到Linus Torvalds手中,但这很快就被证明是不合适的,因为没有哪个人可以全面掌握像操作系统内核这么复杂的项目。很早的时候,内核不同领域的维护者们就提出了一个想法,就是把内核的其中一部分分配给熟悉该领域的人。例如,网络、无线、像PCI或USB这样的驱动程序子系统、或者像ext2或vfat这样的文件系统。然后再扩展到由数百名维护人员负责代码审查和整合,从而使得能够在不牺牲产品质量的情况下,在每个发布的版本中都包含成千上万的变更。

3. 工具的重要性

内核开发一直在试图扩大开发人员的范围,直到BitKeeper这款源代码管理系统出现,几乎在一夜之间社区的做法发生了改变,而Git的出现带来了又一次的飞跃。如果没有合适的工具,像内核这样的项目将无法正常运转,从而会被自身的重量压垮。

4. 强大的舆论导向模式很重要

一般来说,如果一个开发大咖拒绝了某个提交上来的变更,那么这个变更将不会被合并进去。如果开发人员发现自己在几个月前提交的代码在邮件列表中被拒绝了,那是非常令人沮丧的。但这也保证了内核开发可以适应大量的用户和问题。没有哪个用户社区能够以牺牲其他群组为代价而进行变更。我们有一个可以支持从微型系统到超级计算机的代码库,它可以应用在很多场景上。

5. 强大的“无回归”规则也很重要

大约在十多年前,内核开发社区承诺,如果给定的内核在特定的环境中能正常运行,那么所有后续的内核版本也能在这个环境中正常运行。如果社区发现某个变更导致了其他问题的出现,他们会很快地解决这个问题。该规则承诺用户:系统升级不会破坏他们原来的系统。 因而,维护者很愿意在开发新功能的时候延续这个内核。

6. 公司参与到开发流程中来是至关重要的,但没有哪家公司能够主导内核开发

自2014年12月版本号为3.18的内核发布以来,有将近500家公司的大约5062名个人开发者为Linux内核做出了贡献。大多数开发人员因为他们的工作而得到了报酬,而他们所做的变更是为他们所在的公司服务的。但是,尽管任何一家公司都可以根据具体需求改进内核,但是没有哪家公司可以主导开发去做伤害别人或者限制内核功能的事情。

7. 项目中不应有内部界限

内核开发人员必须专注于内核的特定部分,但只要修改是合理的,那么任何开发人员都可以对内核的任何部分进行修改。从而,问题在产生的时候就会被解决掉,而不是规避掉。开发人员对整个内核有很多各种各样的看法,即便是最顽固的维护者也不能无限期地搁置任何指定子系统中所必需的改进。

8. 重要的功能是从一点一滴开始的

原来的0.01版内核只有10000行代码; 而现在每两天增加10000多行。开发人员现在添加的一些基本的、微小的功能未来可能会发展成为重要的子系统。

9. 综上所述,25年的内核发展历史表明,持续地合作可以带来共同的资源,这不是单单某个小组能够开发出来的

自2005年以来,来自1300多家公司的约14000名个人开发人员对内核做出了贡献。因此,Linux内核在很多互相之间有激烈竞争关系的公司的努力下,发展成为一个规模庞大的公共资源。

以上是“Linux内核开发经历的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux内核开发经历的示例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux内核开发经历的示例分析

这篇文章主要为大家展示了“Linux内核开发经历的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux内核开发经历的示例分析”这篇文章吧。Linux内核社区在2016年庆祝了成立二十
2023-06-10

Linux内核编译与开发的示例分析

这篇文章将为大家详细讲解有关Linux内核编译与开发的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一.Linux内核简介linux kernel map:linux 系统体系结构:linux k
2023-06-16

2017版Linux内核开发报告的示例分析

这篇文章给大家分享的是有关2017版Linux内核开发报告的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Linux 项目的现状本次的报告,所统计的数据是从内核的 4.7 算起,到 4.13 止,先看看L
2023-06-16

Linux内核编译的示例分析

小编给大家分享一下Linux内核编译的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  下载源代码Linux内核总是不断发展的,***的内核Kernel
2023-06-16

Linux内核中断的示例分析

这篇文章主要介绍了Linux内核中断的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。中断是指在CPU正常运行期间,由于内外部事件或由程序预先安排的事件引起的CPU暂时
2023-06-27

Linux中内核链表的示例分析

这篇文章主要介绍Linux中内核链表的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Linux中的内核链表实例详解链表中一般都要进行初始化、插入、删除、显示、释放链表,寻找节点这几个操作,下面我对这几个操作进
2023-06-09

Linux 内核中reuseport 的演进示例分析

今天给大家介绍一下Linux 内核中reuseport 的演进示例分析。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。SO_REUSEPORT选项在Linux
2023-06-28

Linux内核双向链表的示例分析

小编给大家分享一下Linux内核双向链表的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linux 内核中自己实现了双向链表,可以在 include/li
2023-06-27

Linux系统中内核调试的示例分析

这篇文章主要介绍了Linux系统中内核调试的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。调试是软件开发过程中一个必不可少的环节,在 Linux 内核开发的过程中也不
2023-06-12

Linux操作系统的NTFS和内核的示例分析

今天就跟大家聊聊有关Linux操作系统的NTFS和内核的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。传统编译内核模块的方法繁琐而费时,这里介绍一种快速编译所需要内核模块的新
2023-06-17

Winform开发框架演化历史的示例分析

这篇文章主要介绍了Winform开发框架演化历史的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、传统Winform开发框架我这里指的传统Winform开发框架,就
2023-06-17

LINUX 2.4.x 内核网络安全框架的示例分析

这篇文章将为大家详细讲解有关LINUX 2.4.x 内核网络安全框架的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.概述在分析LINUX2.4.x网络安全的实现之前先简单介绍一下它里面包含的几
2023-06-17

linux驱动程序开发的示例分析

这篇文章主要为大家展示了“linux驱动程序开发的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux驱动程序开发的示例分析”这篇文章吧。前提,一般来说内核代码的错误可能会引起一个用
2023-06-13

Linux设备驱动开发的示例分析

今天就跟大家聊聊有关Linux设备驱动开发的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。编译和运行驱动编译要用到kernel的Makefile文件 — &mda
2023-06-28

Linux内核体系简介的实例分析

Linux内核体系简介的实例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.Linux 内核简介现在让我们从一个比较高的高度来审视一下 GNU/Linux 操作系统的体系
2023-06-17

java语言发展历史的示例分析

这篇文章主要介绍java语言发展历史的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3. 分布性,Jav
2023-06-14

CentOS5.x系统内核优化的示例分析

这篇文章主要为大家展示了“CentOS5.x系统内核优化的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CentOS5.x系统内核优化的示例分析”这篇文章吧。主要是针对/etc/sysc
2023-06-10

linux中Bash命令历史的示例分析

小编给大家分享一下linux中Bash命令历史的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!命令历史Bash拥有自动记录命令历史的功能,用户所执行的命令
2023-06-27

编程热搜

目录