Linux内核25年开发中的9个经验

Linux内核25年开发中的9个经验

Greg Kroah-Hartman

image
image

2016年Linux社区庆祝内核研发经历了1/4个世纪,由此有人问我们是什么秘诀使这个项目如此长久并如此成功。一般我就笑笑打趣说我也不知道怎么就走到这一步了,但在项目发展中确实有过很多争论和挑战。认真讲,我们能走这么远主要是归功于社区的自我反思和应对变化的能力上。

16年前绝大部分的内核开发者彼此从未见过面,仅仅通过电子邮件互相联系。后来Ted T'so提议举办个内核峰会,从那之后到现在每年开发者都会聚在一起讨论技术难题,回顾过去一年里我们做对和做错了的事情。每个人都可以开诚布公的谈合作经验和开发过程,然后我们会改进流程。我们也提供新的工具如Git并不断改进协作模式。

久而久之这样的演进就具有一种弹性:既允许项目从一个强势领域进入下一个,又避免了分裂成众多相互竞争的项目。也许要多年之后我们才能充分认识到让Linux内核开发如此成功的关键之处,但下面列出了一些当前我们认为重要的经验。

1. 短期发布很重要

Linux项目早期每个主版本要隔几年才发布。这对用户和志愿者来说很不方便,因为要拿到新特性需要等很久。更重要的是,这么长的周期意味着会有大量的代码集成在里面,每次发布都会有很大压力,有些并不完善的代码不得不随之发布。

短期发布解决了上面这些问题,新的代码可以很快就在稳定的发布版中取得,集成的新代码甚至可以以很小的代价来做一些基础性的改动。开发者们如果错过了一个发布周期,那么可以等两个月后的下一个发布,这样就不会迫使他们急于合并不完善的代码。

2. 弹性流程需要一个分布的层级式开发模型

很长时间以前,所有改动都直接提交给Torvalds,但很快发现一个人处理象操作系统内核这样分散的项目太困难。社区很早就有了由熟悉某方面的志愿者负责维护内核不同部分的想法,譬如网络、无线、或是PCI或USB等不同的驱动子系统乃至各种文件系统如ext2, vfat等。把代码审查和集成这些事项铺给众多志愿者使得内核项目能在每个版本上万的改动中兼顾代码审查和质量。

3. 工具的重要性

内核开发的规模起初扩展很难,直到BitKeeper的出现几乎一夜之间改变了社区;切换到Git带来了另一次飞跃。没有合适的工具,象内核开发这样的项目很快就会被自己的规模压垮。

4. 共识模式

一般性的原则,如果有重要的开发人员反对某个变更,它就不会被合并入代码库。当提交者发现几个月前提交的代码仍然挂在邮件列表上的时候可能会有沉重一击的感觉。但这种方式保证了内核广泛的适用性。社区不会为了特殊的用户而做出影响其它团队的变更。这样我们才能够用单一的代码库涵盖从袖珍计算机到超级计算机的具有广泛适用性的代码。

5. 内核的向后兼容性

二十年前内核开发者社区保证如果某个版本内核在某个特定设置下可以运行,其后所有版本内核都将能在此设置下运行。社区会很快解决某个变更导致的回归问题。这条规则向用户保证升级不会影响他们当前系统,而用户也会愿意尝试新内核所带来的新的能力。

6. 公司的参与很关键,但不能让公司主导内核开发

截止到2014年12月3.18版本,共计有5062个开发者代表近500家公司给Linux内核做过贡献。这些开发者是有工资的,他们提交的变更也是为其所在的公司服务。虽然任何公司都可以因其需要而改进内核,但没有公司能够引导内核的开发方向或限制内核的功能。

7. 项目没有内部隔离

内核开发者需要专注在内核的某个部分上,但任何开发者可以就内核的任一部分做恰当的改动。这样内核的问题会在正确的地方被修正而不是头疼医头脚疼医脚。开发者能够将内核视为一个整体,所以即使最顽固的维护者也不能在某个子系统内无限的拖延开发进程。

8. 聚沙成塔

原始的0.01版内核只有一万行代码。现在每两天它就能增长这么多代码。一些极其细微的特性有可能将来会成为很重要的子系统

9. 以上,25年的内核历史表明可持续、合作性的努力可以带来个别组织所无法完成的公共性资源

从2005年到现在,来自1300家公司的14000多个开发者对内核做出过贡献。Linux内核因此成为在其它领域有竞争关系的公司间的广义上的公共资源。

关于内核开发更详细的信息,可以查看2016年Linux内核开发报告


PS:

Linux内核开发者峰会照的全家福

2016峰会全家福

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容