开源大师北京聚头纵论Linux内核开发

来源:lupa 作者:lupa
  

  Jonathon Corbet, Linux内核开发者,Linux前景预测(LWF)作者

  Andrew Morton,Linux内核2.6版本维护者,决定哪些代码(或补丁)可能被纳入Linux内核中,他是最终仲裁者

  J:目前大致2-3个月可推出Linux内核的新版本。我要问Andrew Morton先生,你是如何解决频率如此高的补丁问题,同时把内核维护好。

  A: 大家可能在心理上比较依赖我,实际上我并不是在对此进行管理,或者说并不象人们想象中的那么多管理。我对补丁进行审查并不很多,当递交来的补丁频率很高时,我会说:不好意思,我没有这么多时间来处理;同时我也经常会拒绝一些其他研发人员的请求,因为我实在没有那么多的时间。

  J: 两年前在你参加的一个会议上,你说递交补丁的增长速度会降下来,你觉得现在降下来了吗?还是没有降下来,还在高速进行中?

  A: 现在还在高速进行中,原因是:(1)我们现在有很多研发人员,他们对内核有更多的要求,我觉得这个为什么我们现在有这么高的替换率或更新率;(2)现在新的技术不断涌现,还有新的硬件技术等等,比如出现新的CPU,有新的研发等等,都需要进行更多的支持。但我觉得最后内核更新(或审查补丁)的速度会降下来,放慢的,因为一些内核技术趋于成熟,因此内核更新会稳定下来,更新速度会放慢。

  J: 你觉得在内核更新放慢前会有哪些变化,是否有计划来做哪些工作?

  A: 人们常常会问我这样的问题。事实上,我不知道未来六个月之后,会给这个内核的更新提出什么样的新内容,因为我们现在没有一个在内核方面统一的控制机制,我们没有路线图,没有计划,我也没有办法说清楚这个内核长期会往哪个方向发展。每个人、每个社区、每个公司都会对Linux内核作出贡献,我审查他们递交上来的补丁,人们告诉我他们做了些什么;我一般也会读你们的报告,比如你刚才在会上的发言,从中我也知道很多。

  J: 早年间内核的开发,人们贡献一个补丁,放到网上,经常没有反馈,往往要等到一个新的版本发布时才能看到结果。在你主持内核维护工作后,我觉得你带来了一个很好的变化,即建立了一个积极的反馈机制,当人们把补丁放到网上来时,会听到一个反馈,这样他们放上来的补丁不致被人遗忘,我想进一步了解这个积极反馈的机制。

  A: 我总是希望保证对每一个作出贡献的人会有一些响应。对一些人的成果,如果你发过来,如果其他人有所评论,而我没有给你评论的话,表示我同意其他人的评论;如果我与其他人的意见不一样的话,我会给你一个我的响应或者反馈。我在圣诞节过了两周假期,当时积压了500个补丁等我回去看,所以我就不断地进行这方面的审查工作。如果你发过来的补丁,你觉得我放在那儿没有理会你,请你给我发一个私人邮件,我会给一些反馈;一般来说我会告诉你,比如说有些人可能反对,有些人可能赞同,我一般会给一个反馈的。

  J: 人们在考虑加入到我们这个社区中来时,他们不知如何加入进来,他们难以找到如何加入的方式,不知和我们社区如何交互?所以我有一个问题,对于新的开发者而言,要成为这个社区的一个部分的话,他们如何加入进来,如何避免一些错误?

  A: 我觉得有一件事人们要小心,那就是我们都通过电子邮件来工作,如果你希望有一个人对你有一个回应,而且是非常恰当的回应,这对没有收到回应(如一周都没有回音)的你来说将是很难过的,所以从别人那里收到邮件是非常重要的。

  我们也会经常问自己,你们如何开始这个内核开发呢?新的开发者如何加入进来呢?其实我认为,你不要问这个问题,只要开始介入开发工作就行了。

  首先你需要具备一个非常好的英语阅读的能力,你需要写英语,需要有网络连接和计算机;然后就可开始内核开发,把你的计算机连到网络上,下载一下内核,这时就可开始进行开发工作了。

  加入到社区,要熟悉社区的环境,要花2-3个月来熟悉环境。当你下载最新的内核版本后,可能会发现一些缺陷、一些错误,那么要和其他开发者进行交流,研究如何解决这些问题,这是一个非常简单的过程。你如何与其他开发者交流,这是你要熟悉的社区环境。在经过2-3个月后,你就可能成为了一个内核开发者,也成为了这个社区的一员。这样一步一步进行,最重要的是开始,一旦做了2-3个月的开始工作,就会非常熟悉社区的整个环境。

  下一步就需要考虑你自己贡献什么,做哪些原创性的工作,发出那些变更或补丁。然后在社区的整个变更库里有你的名称,人们可以搜索到你的名字,可以看到你做了哪些工作。

  这才是以非常正确的方式来开启你自己的内核开发的工作生涯。

  有的公司的做法是扩展一群开发者,通过这种方式向社区申请加入并进行开发工作。

  在社区开发者中,其实有很多竞争对手。

  在人们参加到整个开发过程中时,他们需要进行交互。很多人在推出补丁时非常礼貌(要注意人际关系的礼仪),人们在相互打交道时,说话的人不一定代表自己,可能代表别人;有人说的话,上千人反对,有人说的话所有人同意,如果所有人同意,可能使你的工作可以顺利进行,在更多的情况下如果遭到上千人反对,说明你不要再坚持己见这样去做。

  其实一些非常有名的人士,他们也不能代表所有的人说话,他只能代表他自己说话。

  J: 我希望我能同意你的说法。还有一个开发者遇到的一个问题,在内核变更时,一个开发者可能要花很长时间才能进入,有的补丁审查时间很长,开发者发送补丁后,他们将预期多长的审定周期?

  A: 我非常关心回归测试,其实我不希望人们发送过来的这个补丁,如果不好的话,会影响很多人的系统。如果一个已经运行的系统,大家都在使用,当然它的影响是非常大的,所以审查补丁时要非常小心,非常谨慎,对这样的补丁常常会花费我很长的时间去理解;当我有信心这个补丁不会产生很大不良影响时,才会决定把它添加到新的版本当中。因为这是一个内核,每个人都在用,所以这是一件非常严肃的事。

  J: 我想现在开放一下论坛,在听众中是否有人提出问题。

  提问者:我们最近会推出一个Linux新版本,我们为什么需要开发Tree呢?如果更多的开发者涉及内核开发,将来是否会形成混乱?

  A: 我是最终要测试、审查人们递交补丁的人,这样的工作使我很忙,如果更多的人纳入开发Tree体系来帮助我工作的话,我相信他们会认真地、谨慎地进行测试工作,他们和斯迪芬合作会很好。

  提问者:Linux总是落后于Windows,目前在设备驱动方面,Linux落后于Windows,在电源管理方面,Linux也差于Windows,Linux社区如何来改善这方面的工作呢?

  A: 非常有趣的是Intel参与到这件事情中来,他们推出了基于Linux内核的新设备。

  对Linux设备驱动来说,设备制造商今天只能获得20-30%的市场份额,这时他们参与进来就不充分,就慢,我认为一个完美的解决方案就是要增长Linux的市场份额,使其商业价值更高,这时Linux的驱动支持就更好,我希望尽快解决,但需要时间。Intel在这个领域是非常积极的,不管是Intel的硬件,还是总体来讲,在内核的电源管理方面,都非常积极。关于电源问题,我需和一些具体负责电源方面的专家来谈,这是大家积极开发的一个领域。电源管理可能是针对不同的应用系统而有所不同的,比如说有一种非常笼统的测试方法,如在笔记本上播放DVD,这时要看到底能播放多长时间。从DVD管理来讲有一个硬件方面的问题,如果硬件支持不好,也是因为市场份额小,所以造成这方面电源管理效率低。

  提问者:你用什么措施或原则来确保今天的内核功能和质量变得更好?

  A: 有很多方式来进行度量,我们有一个验证代码组合的工具。Linux也有工具来帮助管理这方面的质量,我们有很多的QAA,都是依赖于网络上下载Linux的这些人,其实Linux的内核和其他的软件项目之间有一个非常大的区别,那就是大部分的代码都无法由编写代码的人去测试。比如说在自己的机器上有的人可以开发一组代码,对他是完全没有问题的,但是另外一个人用一台不同的计算机系统,把文件系统建立在上面,你就无法在一台机器或者一百台机器上来测试一组代码,你需要的是成千上万台机器来共同的测试这个代码,所以你如何去收集这样一个度量证据,这是一个非常困难的问题。因为有成百上千台机器都引入了这个代码,带来了相应的问题。你可以看到过去文件的结果,也可以有累计的经验,但是你也可以有一些系统。比如说看一下是不是哪些代码突然消失,或者说有什么样的一些中断等等。这是一个非常复杂的问题。我还没有看到任何的公司或者任何的人投入相应的资源来解决这个问题。

  J: 我想我们还有时间来回答另外一个问题,最后一个问题。

  提问者:我有一个问题,我们知道Linux发展的非常快,但是有的人抱怨它的API变化的太快,您觉得这对于一些公司来讲是问题吗?您有没有什么样的建议?

  A: 我觉得这个API确实是这样的,那么我们现在确实定期的来进行调整,但是我们这方面仍然是非常的谨慎。我觉得您刚才所说的就是从内核到设备的驱动,那么确实我们会经常改变,确实给很多人带来很多麻烦,但是这方面我们没有什么可以妥协的,因为我们希望能够改进我们的内核的表现,那么如果我们必须要调整这个界面来改进我们内核的话,我们就必须要进行调整,因为如果我们要改进这个界面不做调整的话,这个内核就不能前进,这个内核就不好,就不能进步,这个就是必须的,这就是我们对于他作出的决定。对于这些驱动器的人员来说,他们的解决方法就是要把驱动器融入到这个内核当中,适应这个变化,这样就不会有很大的问题。这个问题们一般要花三四年的时间,对于很多公司来说,他们刚用Linux的时侯都会有这样的问题,我一直跟他们谈,他们必须把他们的代码融入到内核当中,才能够真正的解决这个问题,才能够降低他们的成本,对每一个公司来说,如果你决定进入Linux的话,都要经历这样一个过程,要适应。他们往往会遇到包括质量问题,知识产权问题等等,但是尽管会有各种各样的比较痛苦的问题,但是最后他们一般都会解决。一般要花三四年才能使公司真正的调整好。

  J: 我要谢谢Andrew Morton刚才回答我们的问题。

(责任编辑:A6)


时间:2008-03-12 14:50 来源:lupa 作者:lupa 原文链接

好文,顶一下
(0)
0%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量