内核维护者Andrew Morton与腾讯科技展开独家对话。Andrew Morton半开玩笑的说,灰头发的(人)——真的长时间在内核里做贡献的在Linux内核修改时得到优先权。
作为Linux内核维护者,Andrew的工作就是每天与来个各地的Linux社区沟通,平衡来自各方的代码,决定哪些可以进入内核,哪些还需求修改。
Andrew说,十年前,大部分Linux内核贡献人纯粹是好玩,将自己希望贡献到内核。现在大部分的贡献者背后是有支持的,但并专业没有改变,改变的只是比例。而且与其他社区不同的是,Linux内核工程师参与进来后很少离开。这些年来任命采工具和方法论都在不停地优化,但我们的产量始终都在提高。
Andrew认为,维护者不是独裁者,而是一个法官,对于一个开源的项目它需要达到某个程度。写成什么样、格式怎么样等。
Andrew会告诉那些贡献者,他们提供的代码是否合乎法则。如果是不符合法则的话,告诉他哪里不对、为什么不对,作为用户来说因为这个法则也不会跟维护者争论,因为这是大家都知道规矩。
在对话中,Andrew还透露,内核维护者并没有想象那么神秘,而且有大部分的内核代码现在是没有维护者的,如果谁想拿到内核维护者也非常简单,难的地方是他要让人家认同他。
举例说,比方说串口等甚至很多驱动现在随手可得,只要它走进去说我有足够的实力、有足够的代码贡献,可以继续维护这个代码。(文/徐志斌 王恩斌)以下是Linux内核维护者Andrew Morton与腾讯科技独家对话实录:
内核的维护者如何决定内核的增减腾讯科技:我们想了解您作为内核的仲裁者,如何决定哪些代码可以进入内核?
Andrew:对我来说有一个非常清晰的观点,作为一个维护者不是独裁者,而是一个法官,对于一个开源的项目来说有它的法则,需要达到某个程度。
比如说你的代码应该写成什么样、格式怎么样等等,有一些开发规矩。我是看他对开源的贡献是否合乎法则。如果是不符合法则的话,就会告诉他哪里不对、为什么不对,作为用户来说因为这个法则也不会跟维护者争论,因为这是大家都知道规矩,我其实是一个法官的角色。
对于我来说不希望看到的是,作为一个法官来判断是进去还是不进去,而是希望每一个进来的贡献都能够进去。我更希望的是作为一个支持角色,把为什么你不能进去、做什么样的改动然后进去,希望我是能够帮助贡献者的角色。这个问题问的非常好。
腾讯科技:您做维护内核的工作有多久了?
Andrew:我1999年开始贡献开发Linux内核,从2001年开始是内核管理很大的贡献者,2002年作为一个内核管理者的委员。在内核来说我说自己是一个新人,很多人在1999年前就开始做贡献了。
腾讯科技:在2002年刚开始做管理者时,向您提交想进内核的程序的人多吗,到现在有多少?
Andrew:整体来说是不断增长的。十年前,大部分贡献人纯粹是好玩,自己希望贡献到内核的态度。现在大部分的贡献者背后是有支持的,有一些公司在支持他们的贡献。但并不代表非专业的贡献者少了,而是比例改变了。
另外一个优点,内核工程师参与进来后很少离开了。我们现在采用的工具和方法论都在不停地优化,就算人数没有改变我们的产量还是高了。
不是独裁者是法官腾讯科技:2002年到现在比如说同样一个方案很多人提出来,有多少种情况要在很多很知名的提案、社区中进行选择?
Andrew:有两个问题,一个是个人与公司对内核的改变,他们的参与会不会用钱或者是人来影响。企业基本上没有人这么做,因为大家也知道方法,不应该这样做,也很少采用这样的方法。
对个人来说,如果他非常有名或者是贡献了很久的内核工程师来说,本身作为可以更改内核的代表,他们会更容易做到。如果真的不好的话我也让他们离开。
如果有两个相同或者是相接近的功能都进去的话,我采用的方法不是选一个或者选两个,而是尽可能把这两个人拉在一起,让他们来商量处理选择什么样的方法。
腾讯科技:什么样的人在加入内核时有优先级?像您或者是Linux之父具有优先级?
Andrew:灰头发的会比较好一点,真的是长时间在内核里做贡献的。(笑)腾讯科技:您自己现在还写代码吗?
Andrew:很少,我也希望更多时间去写代码,但是机会很少,也可能几个月有一段时间留给自己写代码的比例非常低。
多版本是Linux的灵魂腾讯科技:近400个Linux版本,会不会给Linux的推广和发展,包括企业在选用Linux时带来困惑?分散的版本会不会让Linux步入Unix的后尘?
Andrew:首先我不认同会变成这样。其次如果看清楚的话,那些发行版本整合后可以归类为四五个主要的发行,有一些是变种。
我更希望的是有一个具体的办法,把不同版本都放在一个DVD或者是光盘里,我们作为Linux厂商用同一个源来安装,但是卖服务时卖给不同的人更好。
发行商也不这么笨,他们也知道如果市场过渡分割会有问题,有很多资源包括Linux标准组,从2.4到2.6,Suse、红帽这些发行中间的差异还是比较大的,但差异慢慢会越来越小,兼容度会越来越高。
腾讯科技:微软很强大,但动不动会有严重的漏洞曝露出来,我们说互联网很方便,但也是建立在很不安全的基础之上,Linux在共用一个内核,这个内核足够安全吗?
Andrew:微软我不重点关注,纯粹从Linux角度来看,也不是一个内核这么简单的东西。
内核本身提供安全的架构和框架,不同厂商根据这个框架,在这个基础上建立不同的方案。红帽采用了suse Linux,如果真的有一个攻击出来的话,红帽上能攻击到并不代表一定能够攻击到Suse。
从另外一个层面来看,很多人以前会说Linux的市场占有率非常低,所以没有那么多受到攻击。但是如果看服务器端市场领域Linux不会比Windows差多少,但我们也不会受到攻击。所以这个说法是没有根据的。安全就是安全的,不安全就是不安全的,不会说因为你的市场占有率多少而影响安全的问题。
新版本内核何时出现腾讯科技:在看2.6时感觉花了很长时间从最终成形,下一个版本什么时候能够出来?
Andrew:以前是2.4、2.6,属于稳定版本,单数2.1、2.3、2.5是开发版本,但是在三年前已经改变了这个方向,从2.6开始所有开发与稳定版本都以2.6打头开始,开发版本是以RS开始的。从前一些大规模的改做从1.0到多核的2.0,到2.0多线程支持,到2.6硬盘筷子系统的改作,这些工作2.6基本上已经做完了,对于2.6来说大部分的内核工程师都认为已经有一个足够稳定、结构强大的平台关注在不是一个架构上的改革,而是新功能的加强,新创意的平台。没有想过什么时候会出3,没有计划,因为已经不需要大规模的改作了,但是新的版本会不停地出来。
腾讯科技:昨天Jim在发布会上说要在中国招一个内核作者,您认为这个人需要什么样的技能和威望?
Andrew:对于内核维护者的需求很简单,技术一定要非常好,英语读写非常好,沟通能力很好,C语言的功底非常好。有足够的能力跟其他人沟通。能够继续地在一个非常闷的环境里工作,因为内核并不是非常令人激动的工作环境。能够跟团体合作、跟其他人交流。
其实跟一般招聘的要求差不多。而且内核的代码也非常多,对于能够把代码很快地读懂或者是很快地理解其他人发过来的代码是什么意思,或者是知道问题在哪里的工作也很重要。
成为内核维护者并不难腾讯科技:成为内核作者在Linux圈子里是比较好的荣誉吗?
Andrew:对于所有的内核开发人员来说,大家对你的认可也是你以往的贡献累积出来的成果。人家都认可你,能够把一部分代码交给你管确实是一种尊重和荣耀。
但同时有大部分的内核代码现在是没有维护者的,如果你想拿到内核维护者也非常简单,没有我们想象的那么难。难的地方是你要让人家认同你。比方说串口等甚至很多驱动现在随手可得,只要你走进去说我有足够的实力、有足够的代码贡献,可以继续维护这个代码。这个荣誉是看你愿不愿意付出拿到的,而不是说这么难的一件事。