开源社区正以极快的速度向Linux内核中添加新功能,同时又在努力让修补bug的步伐跟上去。放慢开发速度看上去是不太可能的……
Linux内核的最新版本已于本月发布,它展现了一系列令人眼花缭乱的变化。2.6.23版内核的发布距离上一次内核更新只有三个月,它添加了适合商用的新功能,包括对虚拟化技术更好的支持、对极其重要的调度器(scheduler)的更新以及新的设备驱动程序和bug补丁。
每隔两三个月就能从Linux Torvalds负责维护的“代码树”上看到大量的变化,这显示出Linux内核的开发速度在不断加快。到目前为止,这个开发过程产生了不可否认的高质量可靠代码。
但你也许没想到,Torvalds正在把开源开发的速度推向新的极限。随着Linux内核的规模和复杂度不断增大,这种快速迭代的更新对负责测试和修改bug的志愿者社区带来了极大压力。
Torvalds无法放慢速度,原因有两个。首先,Linux不能在技术上落后,否则就会失去要求越来越苛刻的商业用户。因此新内核中增加了钩子(hook),可以利用Intel和AMD处理器内嵌的最新虚拟化功能。其次是因为Linux需要推动开发者社区的发展。不断增加新功能可以使开发者不感到厌倦,否则他们就可能转移到其它项目,另外也能在现有开发者年老或退出的时候吸引新人才。
Linux非正式而又难以预测的新功能路线图就源自于上述压力,这也是Linux在添加新功能的同时保证系统质量和稳定性的持续驱动力。这个已有16年历史的开源项目还能在下一个16年中继续这样的发展吗?“没有任何其它开源项目能像Linux这样规模庞大和发展迅速,”IBM公司一直关注 Linux内核开发进展的副总裁Dan Frye说,“这是一个敢为天下先的开发者社区。”
商业用户正是依赖于这种匆忙的开发过程去改善Linux的许多方面,不仅包括虚拟化技术,还包括电源管理和安全等诸多方面。内核的这些快速变化要想体现在红帽和Novell推出的Linux商业发行版中,可能需要长达两年的时间。大多数用户都使用这些公司推出的Linux系统,因此获得了一个相对于Linux内核疯狂发展的缓冲区。尽管如此,内核的发展仍将决定Linux的未来。
Linux平均每天增加2000行代码,尽管Trovalds的目标是限制加入内核的代码数量,以便让它尽可能高效。Linux的模块化内核是这个操作系统的核心,负责处理所有的通用任务,例如内存管理、CPU调度请求和输入输出。它的周围是数百个附加软件包,用来完成更具体的任务,例如在 Linux和Windows系统之间传输文件,或是对文件进行配置以便通过Apache Web服务器显示出来。但是内核必须不断发展,以便处理更多的功能和硬件,满足更多用户的需求。Linux在1991年刚诞生时只是操作系统爱好者写出的 10250行代码,目前的代码则超过了八百万行。
有人认为,Linux内核平均每小时增加86行代码的速度正在超越软件开发的极限。Linux的一位关键维护者Alan Cox已经警告说,一些设备驱动程序的修改在加入内核之前应该经过更多的测试。Andrew Morton是一位杰出的Linux开发人员,在被Torvalds任命为Linux内核的负责人之后有了“内核上校”的绰号。他对Linux未经修改的 bug问题也发表了坦率的看法。“我希望开发者能用更多的时间去修补bug,而用更少的时间去添加新功能,”Morton说,“这是我的个人意见”。
然而在最近于英国剑桥举办的Linux内核峰会上,Torvalds说自己在过去犯了过于谨慎的错误。他认为缓慢的内核发布将导致Linux的发展受阻,因为各种新功能都等着被添加到内核中。如果没有及时获得内核维护者和受信任的开发高手的反馈,社区的贡献者们就会失去继续提交代码的兴趣。 (Torvalds没有对我们的采访要求做出回应。)
在加快Linux内核的开发速度上,Torvalds有些做过了头。他依赖于一个基本的开源思想:相对于更有组织的软件测试,大量用户对频繁发布的代码进行测试更有可能发现软件的缺陷。添加到内核中的新代码一旦在某些硬件上无法运行,或跟其它程序——不论是内核中的还是内核外的——发生冲突,就会导致Linux出错。当新代码出现bug的时候,人们都指望当初提交这些代码的开发者去解决bug,但他们通常没去解决。
内核开发人员Jonathan Corbet在Linux基金会发布的一份资料上透露,在剑桥的这次峰会上,Morton说自己真想任命一个“惹人烦的家伙”担任Linux内核的bug 管理员,他希望这个人能够找到bug的来源,然后“把那些不愿修改bug的开发者痛扁一顿”。Natalie Protasevich是目前被任命的bug管理员。在Morton看来,Protasevich给Linux内核的bug清理工作带来了更多的纪律,尽管她缺乏自己更喜欢的那种强硬风格。Linux内核的Bugzilla数据库一度记录了超过1500个bug,目前已经减少到1400个。
“在快速的开发过程与完备的代码审阅之间,正在形成一种极其微妙的平衡,”Intel公司负责Linux和开源技术的主管Dirk Hohndel说。即使在目前这种飞快的开发进度中,开发者想添加或用户有需求的功能也不是样样都能加进内核。
Linux的商业用户对这个过程可能感到沮丧。对于欧洲的旅行服务商Amadeus公司来说,Linux是其减少IT基础设施成本的战略关键。该公司负责技术和战略规划的副总裁Fred Bessis说,通过淘汰大型机系统,然后在“廉价的硬件”上运行Linux,该公司减少了大约10%的设备开支。该公司采用Linux已有超过十年的经验,它了解Linux目前的状况,也目睹了潜在有用的新功能通往Linux商业版本的漫长过程。
Amadeus公司的高级系统程序员Holger Weisbrodt说,新的硬件和驱动很快就能在内核中使用,但新的bug诊断和调试工具“需要很长时间才能被加进内核”。他希望Linux内核开发者能对常用的bug调试工具更加关注。
Linux新版内核的开发过程就展示了这种不可预测性,具体表现在它所包含的两个新功能上:新的调度器和改善了的虚拟化支持。这两个功能与内核完全沿着不同的开发路线,分别都有自己的风险和复杂性。
声明:LUPA开源社区刊登此文只为传递信息,并不表示赞同或者反对。

迷你博客
日志
相册
群组
分享
电影
问答
停车游戏
奴隶游戏
开源大搜索
项目点评
礼品中心
职业评测
开源博客
考试练习
LW3DK开发
开源论坛
开源新闻
下载频道


