原文:9 lessons from 25 years of Linux kernel development 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内核在许多相互之间有激烈竞争关系的公司的积极下,发展成为一个规模庞大的公共资源。 以上就是脚本之家分享给各人的关于浅谈25年Linux内核开发履历总结出来的九条经验的全部内容,渴望对各人有所帮助。感爱好的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
来源:https://www.jb51.net/LINUXjishu/596214.html 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-2 01:00 , Processed in 0.029395 second(s), 19 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.