Linux 25年发展历史带给我们的9项启示
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》
【51CTO.com快译】Linux内核社区于2016年迎来了其二十五岁生日,很多朋友询问我们实现项目长久发展及成功的秘诀。对于这样的问题,我通常会以笑话回应——因为说实话,我也不知道这一切是怎样实现的。不过重要的是,我们之所以能够这样摸索向前,是因为社区自身拥有着强大的反省与变革能力。
大约十六年前,大多数内核开发者彼此从未谋面——大家只是通过邮件沟通。为了解决这个问题,随后出现了内核峰会。如今,Linux内核开发者们每年都会齐聚一堂,共同探讨技术问题并反思自己过去一年中哪些事做得对、而哪些事做得不够理想。我们会开发Git这类新型工具,从而不断改变彼此间协作的方式。
随着时间推移,这种演变带来了弹性,使得Linux项目能够不断迈上新的台阶,同时避免由fork带来的力量分散问题。也许其中确实有着一些重要的成功关键,下面我将试着阐述其中的9项启示。
1.保持较短发布周期非常重要。
在Linux项目发展早期,每套新的内核大版本往往需要数年才能发布一次。这意味着用户需要拿出大量时间等待新功能的加入,这对于使用者以及发行商而言都相当令人沮丧。不过更重要的是,如此漫长的周期意味着我们需要一次性整合大量代码,甚至不得不将很多尚未就绪的代码匆匆加入新版本。
较短的发布周期能够解决此类问题。新代码可快速被纳入稳定版本。以几乎即时的方式集成新代码使得最为重大的变更也几乎不会产生破坏性影响。开发者很清楚,即使他们错过了一个版本,那么再等两个月又会有新的版本,因此他们不必急于将不成熟的代码合并进来。
2.需要利用分布式分层开发模型实现流程可扩展性。
很久以前,一切变更都直接由林纳斯-托瓦兹负责,但这种作法很快被证明并不科学——毕竟没有任何一个人能够独力支撑起像操作系统内核这种多样的项目。因此,我们想到应该将内核中不同领域的事务交由不同且掌握对应专业知识的维护者处理。其中包括网络、无线网络、各类驱动程序子系统——例如CPI或USB——乃至ext2或vfat等独立文件系统。将代码审查与集成的任务交付至数百名维护者手中,最终使得Linux项目能够快速实现各个版本中的数万次变更,而不会影响审查或者成品质量。
没有正确的工具,内核这样的项目将随着自身体积的扩张而崩溃。
3. 工具很重要。
内核开发工作在规模方面一直面临挑战,直到BitKeeper源代码管理系统的出现——其几乎在一夜之间改变了社区的实践方式。而Git无疑是另一种飞跃。没有正确的工具,内核这样的项目将随着自身体积的扩张而崩溃。
4.内核的共识性判断模式非常重要。
作为一项基本原则,如果某位***份量的开发者表示反对,那么提出的更改建议将不会被纳入项目当中。但是,这对于该代码的贡献者来说则是一种沉重的打击,毕竟他们已经耗费了数月时间用于相关工作。但这一举措亦确保了我们的内核能够适应广泛的用户需求与实际问题。没有哪个用户社区能够牺牲整体利益执行变更。因此,我们利用这种共识性关注保证项目只具备单一代码库,其能够涵盖由小型系统到超级计算机的各类应用场景。
5.内核的“无退化”原则同样重要。
十年之前,内核开发者社区曾经承诺如果特定内核可在特定设置下运作,那么全部后续内核也必须契合同样的条件。如果社区发现某项变更会导致退化,则必须快速解决这一问题。该原则向用户保证任何升级活动都不致破坏其系统,这样他们才乐于在开发新功能时采用我们的内核方案。
6.企业参与至关重要,但内核开发不会由任何单一企业所操纵。
自2014年12月发布的3.18版本以来,来自近500家企业的5062名个人开发者为Linux内核作出了贡献。大多数开发者能够从相关工作中获得酬劳,而他们做出的变更则可为其所在企业提供助益。然而,尽管任何企业都能够参与到内核的改进工作中来,但内核的发展方向绝不会为任何单一企业所操纵。
7.项目之内不应存在内部边界。
内核开发者必须专注于内核中的特定部分,但任何开发者都能够对内核的任意部分进行变更——只要这一变更存在合理性。这意味着问题将始终存在于其起源处,而非令人难以定位,而开发者则可对内核拥有更为全面的了解,甚至最为顽固的维护者也无法***期地阻止任何针对特定子系统的改进。
8. Linux内核项目证明,大规模开发工作完全可以从小处起步。
最初的0.01版本内核仅包含1万行代码; 如今其每两天的代码增量就已经超过1万行。开发者目前添加的一些基本甚至微小的功能,未来都有可能发展成重要的子系统。
9. 25年的内核发展历程表明,持续合作可以带来任何单一机构都无法实现的辉煌成果。
自2005年以来,来自超过1300家企业的约14000名个人开发者为Linux内核作出贡献。正因为如此,Linux内核已经成为各类企业进行市场竞争时频繁使用的重要资源。
原文标题:9 lessons from 25 years of Linux kernel development
原文作者:Greg Kroah-Hartman
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】
点赞 0

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
转型或是灭亡:企业IT的未来之路
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 【51CTO.com快译】 行业意见***Zorawar Biri Singh分享了他对于企业未来发展前景的观点——以及数字化转型在其中所扮演的重要角色。 多年以来,Zorawar Biri Singh一直着眼于企业的未来发展给出独特见解——包括在IBM与惠普担任云业务负责人、Khosla Ventures副总裁以及最近出任思科公司CTO。在今年早些时候接受采访时,他认为下一代数据中心当中将充斥着容器化微服务与预测性分析方案。而在上周的对话中,他进一步就技术发展以及企业的自我改造这一议题作出了说明。 Singh为企业的数字化转型给出了广泛性定义,即“通过持续改进周期实现的一组现代化能力、工具以及文化意识。”相较于容器取代虚拟机、微服务取代整体应用、可扩展性云基础设施、物联网设备乃至立足机器学习实现的分析能力等,Singh给出了超出技术层面之外的宏观建议。 协作势在必行 首先,Singh认为每一种转型性举措都需要以协作文化作为起点。与众多从业者一样,他同样将DevOps视为持续改进的动力根源,不过他同时意识到DevO...
- 下一篇
数字化灾难!2016年九大服务停机事故总结
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 【51CTO.com快译】2016年发生的一系列停机事故已经导致众多知名品牌遭受严重损失,其商业信誉与消费者信心亦因此受到重大打击。发生停机事故的主要原因之一在于计划外的系统配置变更,这通常是因为即时bug或者潜在系统安全漏洞修复意外引发了更为严重的问题。 为了避免发生计划外停机,我们将在这里回顾过去一年中出现的那些最为严重的服务停机事故,希望能够以此为鉴指导新一年中的业务连续性保障工作。 美国西南航空 去年10月,836条西南航空航线遭遇延误,而根源在于该公司航线技术系统中的问题。根据该公司介绍,技术人员不得不全力修复主要系统并利用备份规程以帮助客户及其托运行李正确到达目的地。 达美航空 达美航空公司证实,亚特兰大当地的一次电力中断影响到其凌晨时开始进行的系统更新,并最终导致计算机系统瘫痪以及大量航班延误。该公司同时警告称,当周一其被迫因此取消大量航班,且机场屏幕及其它飞行状态系统将无法正常显示航班相关信息。 根据统计,此次时长达5小时的停机共造成2000次航班取消,总体损失估计达1.5亿美元。 Salesfo...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS关闭SELinux安全模块
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS6,CentOS7官方镜像安装Oracle11G