Linux的二号功臣-Alan Cox

今天,Linux以其特有的开放源代码的魅力正逐步深入人心。然而在它出现之前,有谁会想到一个世界级的操作系统是靠分散在全球的几千个开发人员用业余时间创造出来的呢?
    对于Linux的成功,人们往往会归功于天才Linus Torvalds的奇思妙想和别具一格的项目管理方法。这是毫无疑问的。但是,除了Linus之外,还有一位在开源领域内享有盛誉的高手对Linux开发的管理也至关重要,他就是Alan Cox。下面让我们一起见识一下这位幕后英雄的庐山真面目。   

Alan Cox_职场 

Alan Cox (born July 22, 1968 in Solihull, England) is a British computer programmer heavily involved in the development of the Linux kernel since its early days in 1991. He lives in Swansea, Wales with his wife, Telsa Gwynne.  

目录

[显示全部]

Alan Cox 资料编辑本段回目录

Alan Cox at FOSS.IN/2005 
Born 22 July 1968 (1968-07-22) (age 41)
Solihull, England 
Residence Swansea, Wales 
Nationality British 
Other names ac 
Occupation Programmer 
Employer Intel 
Spouse(s) Telsa Gwynne                         

从头再来编辑本段回目录

    1969年,Alan Cox出生于英国的伯明翰。他从小就对计算机有着浓厚的性趣,曾使用Commodore PET这种古老计算机学习编程。Cox的第一个作品是一个利用简单的计算机动画来模拟月亮起落的程序。尽管Cox认为它没有多大的实用性,但这的确为他后来所从事的游戏编程奠定了一定基础。

 

Alan Cox_Alan Cox_02
    Cox认为自己第一个真正的程序是在高中的社会实践活动中完成的。当时,学校组织这种活动的目的是让学生们利用两周的假期参与社会实践,从而认识到自己现有的水平不足以更好地完成令自己感兴趣的工作,以达到激发学生们上大学的热情。
    但好多学生却领会不了学校的良苦用心,他们虽然联系了大公司,但仅仅是做了两周的杂活,交差了事。而Cox在这方面则是个好学生,他想利用假期学习游戏编程。
于是还没开始放假,他就紧锣密鼓地联系工作,几乎给伯明翰所有相关的公司打了电话。最终,他来到了Adventure International公司,编写了两周的游戏代码。Cox的聪明和勤奋使得公司对他非常感兴趣,两周的实习结束后,公司聘任他为长期兼职程序员。那年,Cox刚满18岁。
    高中毕业后,Cox进入了位于斯旺西的威尔士大学的计算机系学习。在大学里,Cox相当地活跃,不仅经常与同学讨论问题,而且在学校的计算机协会里小有名气,因此,他在大学里有好多朋友。
    但是,最令Cox难忘的还是他的忘年之交—Rob Ash。他们的相识也是从讨论问题开始的。当时Cox在课堂上遇到一个棘手的问题,于是他向老师请教,与同学讨论,但得到的回答都无法让他满意。
    于是,他试着找到了当时学校的系统管理员Rob Ash。尽管Ash非常忙,但他还是十分热情地接待了这位好学的年轻人,并结合自己的经验阐述了他对问题的看法,这使得Cox茅塞顿开。在以后的大学生活中,每当Cox遇到难题时,他总是来找Ash请教和探讨,Ash也总是抽出时间为他耐心地讲解。

 

Alan Cox_职场_03


    后来,当Cox回忆起大学里的学习生活时,他认为自己从Rob Ash那里几乎学到了所有的操作系统重要部件的工作原理。Rob Ash是他心中永远的偶像。
    除了学习和讨论理论知识外,Cox在大学里依然没有放弃对游戏编程的喜爱,并经常为Adventure International做一些兼职工作。这期间,作为主要设计者,他为游戏ABERMUD做了大量的设计乃至编码工作。ABERMUD尽管不是最早的MUD (Multi-User Dungeon)游戏,但却是最早在Internet上发布的MUD游戏,并在20世纪90年代初产生了重要的影响。
    ABERMUD的设计与开发工作进行得异常艰苦。最初的结果令Cox很不满意,于是他亲自动手修改了一年多,但效果仍不理想,甚至有些地方是越改越糟。经过反复斟酌,Cox决定推翻原来的工作,重新设计编码,并最终取得了成功。
    ABERMUD的开发使Cox对项目的开发和管理有了深刻的认识。在对该项目的总结中,他认为Fred Brooks在《人月神话》所提到的“要做好抛弃最初设计的准备”确实是金玉良言。ABERMUD给他最大的教训是,在确信前面的工作有严重错误时,要敢于舍弃原有的设计,从头再来。                       

众里寻它千百度编辑本段回目录

    开发ABERMUD对Alan Cox产生了重要的影响,Cox不但具备了一定的项目管理经验,而且还结识了日后为之奋斗的Linux。在推翻原计划从头再来的过程中,Cox越来越感到自己的Amiga计算机已经很难胜任这项工作了。
于是,他模仿Unix的风格编写了大量的代码,来为自己的计算机做最大限度的优化,但古老的Amiga常常令他捉襟见肘,最终他不得不决定为自己换一台新计算机。
    1992年春,Cox买了一个当时主流的386处理器和一条4MB的内存,然后用它们和自己原来的硬盘组装了一台新电脑。有了新电脑之后,Cox接下来要做的是选一种合适的操作系统作为ABERMUD的开发平台,这使他很伤脑筋。
    Cox考虑过使用当时已开始流行的DOS和Windows 3.0,但这两种操作系统的稳定性很难达到ABERMUD的要求,对他的帮助不大。后来Cox又把目光转向了较为稳定的FreeBSD。他花了好长时间下载了386BSD,但该操作系统需要一块浮点芯片。尽管BSD性能良好,但浮点芯片价格不菲,对于当时的Cox来说不啻为天文数字。
    值得庆幸的是,这个时候Linux出现了,尽管从技术上讲,当时的Linux在各方面都与BSD相去甚远,但它也有着自身的优势。首先,Linux对硬件的要求不高;其次,其稳定性已能够满足Cox的开发需要;此外,当时的MCC Linux,以及稍后的SLS Linux安装起来也很简单。
    当然,最令Cox感兴趣的还是Linux是开放源代码的。于是,Cox为自己的新电脑安装了Linux,并从此与Linux结下了10多年的不解之缘。                              

不拘一格揽人才编辑本段回目录

    自从安装了Linux之后,ABERMUD的开发进展顺利。而且,Alan Cox还用它搭建了威尔士大学的BBS,这使得Cox对Linux更加情有独钟。在业余时间,Cox为Linux写了一个补丁,并发给了Linus。很快Linus就给他回了信,告诉他这个问题已有人解决了。
    但Cox的热情不减,很快又写了一个用于进程计数的补丁,这次被Linus加入了Linux的内核,并先后经过了10个人的修改,一直保存下来。
    后来,Cox又把Linux安装到了威尔士大学计算机协会的电脑上,试图通过使用Linux,使得学校的BBS每天能够稳定地开放3小时以上。Cox回忆说,他和计算机协会的其它成员可能是最早把Linux用于大型的、多协议网络中的人。这使得他们能够比其它人更早地发现当时Linux在网络方面的许多问题,比如他们用自己的新方法在Linux上实现了TCP/IP协议等。
     Cox和同学们对发现的错误一一进行改正,并写了许多新代码来弥补从前的漏洞。就这样,Cox把他写的好多补丁合在一起,命名为net2debugged,发给了Linus,并且被采用。就这样,Cox给Linus留下了深刻的印象,并被Linus邀请作为Linux网络代码的管理者。
    1994年,Cox在第一届国际Linux大会上见到了Linus,并与后者就Linux的重要问题进行了深入的探讨。Linus认为,Cox对Linux网络代码的管理非常成功,希望他能够管理整个Linux的内核,Cox欣然应允。
    维护整个Linux的内核无疑是一项艰巨的任务。Cox要做的是每天接收大量的来自世界各地的代码,然后根据自己的经验并结合实际测试进行过滤,把那些自己认为优秀的代码发给Linus,由Linus决定是否采用。
而对于那些不合适的代码,Cox要返回给作者本人,并指出哪些属于想法很好,但实现的却很糟糕;哪些结果很好,但代码本身有错误;哪些代码与原有的内核有冲突等。
     在这一繁琐的工作过程中,Cox积累了一整套行之有效的、独特的Linux项目管理经验,并经过整理写成了《大教堂、集市和委员会》这一在开源领域内堪称经典的文章。在这些经验中,Cox对人的管理和使用的经验最值得称道。

Alan Cox_Alan Cox_04


    众所周知,Linux的开发人员分散在世界各地,比如Linus来自芬兰,Cox来自英国等。如何让这些来自不同国度、文化背景各异的志愿者齐心协力地工作,是Cox面临的最大难题。事实证明,Cox确实很好地做到了人尽其才,不拘一格。
    对于那些为Linux写过很多代码的程序员,Cox在表示感谢的同时,总是能够恰当地使用“激将法”激励他们向更高的目标前进;对于那些水平不是很高,所写的代码被拒绝的作者,Cox则总会详细地指出这些代码为什么被拒绝,可以考虑从哪些方面进行改进。
    他认为在这方面不要害怕浪费时间,详细地指出问题所在,积极地与作者进行讨论,耐心地解答作者的问题将往往会事半功倍。一次,为了一段被Cox拒绝的代码,他与作者进行了激烈地、反复地讨论。最后,作者心悦诚服,认识到了自己的代码针对性太强,不具备一般性,并不是对绝大多数Linux用户都有用。这之后,这位作者成功地为Linux的内核写了几部分的代码。
    对于那些非常想参与Linux内核项目,但水平又不高的作者,Cox总是一边鼓励他们,一边耐心地告诉他们从何入手,并尽自己所能来回答他们的各种问题。事实证明,有些人确实通过这种方式成了高手,并为Linux内核做出了很大的贡献。
    比如,有一位葡萄牙人通过这种方式使自己的水平得到了极大的提高,后来负责Linux IPv6部分工作,并写了75%的Linux IPv6的代码。目前,他已成为美国Cisco公司的高级雇员。而对那些没有任何编程经验的志愿者,Cox也总有办法让他们在网络管理、邮件列表管理、书写文档等除编程以外的、其它不可缺少的方面发挥作用。                      

二号人物的魅力编辑本段回目录

    与其它Linux业内重要人物一样,Alan Cox除了维护Linux内核以外,也有自己的工作。他大学毕业后,先后工作于Cable Online公司、3Com公司、CymruNet公司、CERT公司等,甚至连微软公司也曾向他抛出过橄榄枝,但Cox没有接受这一邀请。最后,他来到了Red Hat公司做技术支持工作。

Alan Cox_休闲_05


    Red Hat给了Cox足够的自由,他可以在家中工作,有足够的时间来从事自己心爱的Linux内核的维护工作。
    除了公司的工作外,Cox每周至少做60小时的Linux内核的维护工作。因此,有人曾传说Cox是个精力极其旺盛的家伙,根本不睡觉。正是他的这种孜孜不倦的工作,使得Linux的内核越来越棒,人们也习惯把他所维护的、尚未公开发布的内核称为Linux内核的AC(Alan Cox)版。
    此外,Cox有着很大的人格魅力,无论是在Linux内核的维护工作中,还是在Red Hat的技术支持过程中,他对问题的回答总是能够让提问者满意。他认为,能够使别人快乐才是世界上最大的快乐。
     出色的工作加上特有的人格魅力,使Cox在Linux业内赢得了极高的声誉。业内人士普遍认为,没有Alan Cox的杰出的贡献,就不会有Linux今日的辉煌。
     在著名的计算机作家Nikolai Bezroukov所著的《开源运动先驱》一书中,作者认为在Linux业内,Alan Cox的贡献仅次于Linus Torvalds,是Linux业内的二号人物。就连Linus Torvalds本人也认为,Linux能有今天,Alan Cox功不可没,是他最应该感谢的人!

Linux内核开发二号大师Alan Cox投奔Intel编辑本段回目录

在Linux内核开发方面,Linus Torvalds自然是毫无争议的No.1,而在他之外就是Alan Cox了。2008年底,这位从1991年起就从事Linux内核工作的二号大师已经宣布将离开Red Hat,×××Intel。

Alan Cox在一封邮件中解释说,他将在明年一月中旬与工作了长达十年之久的Red Hat说再见,不过并不是去安享天伦之乐,或者投身钟爱的园艺艺术,而是转投Intel,继续从事Linux和自由软件方面的工作,也能更接近他最感兴趣的系统底层事务。

至于此番离职对Red Hat的影响,大胡子先生表示他们是和平分手的,而Red Hat拥有出色的、世界级的工程团队,少了他也一样。

Alan Cox:开源技术具有商业价值编辑本段回目录

  Alan Cox是开源社区中最受人尊重的大人物之一,同时他对做生意也并不感到陌生,最近还刚刚完成了MBA学业。Alan Cox在开源社区中如此知名以至于他能够在周日下午将一群热情的技术人员聚在一起讨论理论上软件稳定性的问题,正如他去年在布鲁塞尔的FOSDEM大会上做的一样。

Alan Cox_休闲_06

  在过去十年中,Cox原创了许多Linux下的创建网络子系统的程序,并将编码提供给不同的内核进行发布。Cox现在供职于Linux厂商Red Hat,是开源软件社区的领袖人物,经常驳斥一些在他看来可能危机开源软件自由的东西,比如软件专利以及美国数字千僖年著作权法。

  ZDNet英国网站在Cox参加在伦敦召开的可信计算大会以后,对他进行了采访,话题内容涉及广泛,包括下一代GPL,软件专利权, 内核开发 程序以及桌面Linux等。

  问: GPL3第一个公开讨论草案在几周前对外公布,你对此有何看法?
Alan Cox:整个草案看起来比过去更加明智,比如在关于信息中显示著作权信息,而不象GPL 2是写在命令行中。一些存在争议的部分明显的可以选择了。 另外还有一点非常好的,就是GPL与其他版本的兼容性更好,这样使得人们能够共享更多编码。

  问:如何看待GPL3草案中对数字版权管理(DRM)的规定?
Alan Cox:从内核的角度来看其实这点并不重要。DRM一般被应用采用,所以它对于“GNU”C库来说可能才算是个问题。在ZDNet英国采访Alan Cox后不久, Linux创始人Linus Torvalds宣称反对GPL 3。他说由于他对新提出的数字版权管理规定不满,所以他将不会将Linux转换为新版本。

  问:去年, Sony BMG因为被暴使用rootkit软件在某些CD中暗藏可自动安装的限制复制的软件而遭到指责。您在可信计算大会上说DRM存在的潜在问题因为最近的 Sony事件而倍受关注,内容产业和用户之间可能爆发一场全面的关于权利的斗争。您认为这种权利之争的平衡点在哪里呢?
Alan Cox:我也不知道平衡点在哪里。有很多证据对音乐产业和计算机产业有利。我认为Sony已经吸取了教训,而且这一教训代价惨重。产业应该清楚的认识到什么是能做的——计算机是个人财产,但是我们并不知道这在法律上意味着什么。我想这可能与政府的竞争法有关,特别是对于那些处于垄断地位的人来说,要知道如何使用,或者不能如何使用DRM。

  欧洲议会
问:去年,欧洲议会驳回了软件专利指令,但是随着EC进行的专利系统改革的公众讨论的进行,关于专利的讨论又再次回温。您作为很早就反对软件专利的人,对软件专利再次提上日程有什么看法?
Alan Cox:我很震惊。一方面,我们有微软受到欧盟数百万英镑处罚的先例,另一方面,他们又允许软件专利的存在。微软公司是受到这个问题影响最大的公司。
他们重回日程很让人担忧。这是欧盟遇到更基础性问题的标志。欧洲议会的民主程序已经退化,退化成为了未经选举的欧洲委员会。着就是人 们所说的政策清洗:“这个主意不错,但是我们不会让它通过表决,所以现在让我们跳过它,让单个政府来处理这件事”。

  问:应该如何反对软件专利法?
Alan Cox:首先应该写信给MEP。内容其实不重要,主要是为了告诉他们有多少人关心这件事。上一次我们做的还不够好,FFII得到了30万了签名。委员会可以忽视这点,但是议会不得不重新投票。事实上一个很大的问题就是欧盟没有议员游说法,而在别的国家说客是可用的方法。

  问:开源开发实验室OSDL推出了一个集合了对开源社区有利信息的专利库。您认为这样的行动是否重要?
Alan Cox:这个工作将会变得非常重要,直到软件不成为专利的那一天。当软件和硬件密不可分时可能会有一些问题,但是如果硬件想要专利的话,它可 以自己去争取。

  问:有不少技术企业如IBM和微软号召美国专利系统的改革。这会给您带来希望么?
Alan Cox:事态正缓慢的转向正确的发方向,但是只是非常小的一步。公司被迫接受这个现状,这里可能存在问题,但是没有人知道应该如何改正。?

Alan Cox_Alan Cox_07

  问:关于其他问题,作为资深Linux内核开发者,最近几年中随着操作系统商业气息更浓,您看到内核开发过程发生了那些变化?
Alan Cox:现在从周一到周五,有更多的补丁出现,而不象过去只在周末才有。但是,最大的变化不不是商业化,而是品质更高。以前人们营造Linux。现在Linux已经能完成人们需要的所有工作,所以所有的变化在于如何更快更干净以及更好的完成工作。现在,有人可能会说“怎么才能让运行速度提高两成”或者增加一台新设备。
这是用户所要得到的东西的总和,这样很好。如果在一开始你曾希望得到一套可在大型机、PC机和palm上运行的操作系统,人们会说那不可能 。现在每次我们获得突破性成功时,我们在让软件能在所有平台上运行的目标就更近一步。
内核模块化程度很高,所以一个部分很少影响其他部分,但是由于它本身已经很好,所以在Linux进一步提高就不那么容易,Wikipedia也会面临相同的问题。现在人们不断增加新东西,所以任何投稿都是进步,但是随着时间的流逝,这种无序的变化会使事态变糟。
现在很多内核开发者为公司服务,例如内核维护的领导者Linus Torvalds和Andrew Morton就为OSDL工作,您也为Red Hat工作。现在还有多少独立的内核开发者?恐怕没有多少。有些学生在做内核开发的工作。学生们愿意这样做的原因之一是这样对就业有帮助。如果你是不错的内核开发者,那么很快就能收到大公司的聘书。

  内核开发

  问:在我看来内核开发过程中最让人感到有趣的事情,与Debian等其他项目的开发不同。内核开发者的成长过程没有正式的程序。随便什么人都能参与其中,修改编码,这样做不危险么?
Alan Cox:其实过程中有许多控制和审查步骤,对代码的每个字节的修改都要经过很人。我们没有培训开发者的正式程序,但是有人已经做了一些工作,如内核新手项目,在这个项目中,人们可以开发一些小东西,如清除编码,回顾编码等。
如果有些随便的人对内核做了修改,我们会找人进行审查。我们知道不少人只是进行过一次修改,然后就此消失。例如,他们安装了Linux然后发现USB盘无法使用,于是他们就进行了修改。如果有正式程序可能有负面影响,那会阻止人们对此作出努力。那些在线提交修改稿的人毫无疑问都是很优秀的开发者,他们只不过不是内核开发者。

  问:2003年8月,您休假一年去进修MBA。您为什么决定学习MBA课程?现在学业结束了么?
Alan Cox:工程师看到销售和市场人员忙忙碌碌不知道他们在忙些什么。当我在公司(Red Hat)中位位置越来越重要,我需要跟销售人员交流更多,必须 要了解他们的工作方法。
在学习这个硕士学位过程中,我有一年是兼职工作,现在学业已经结束。我刚刚从导师那里得到我的课题研究结果,我研究的课题是桌面Linux 系统,我很快会出版这个课题。

  问:您有什么研究成果?
Alan Cox:桌面Linux已经开始推广,使用它的人越来越多,特别是只需要基本的文字处理功能的环境下,需求尤其突出。瘦客户端Linux在呼叫中心和酒店应用也开始增多。大型企业从某种角度来说更容易接受,而小型企业缺少技术人员,希望一台设备能够运行跟多的应用,因此接受起来不那么容易。

  问:法国税务局计划在8万台PC上安装OpenOffice.org,但是还没有决定是否改为使用Linux系统。您认为OpenOffice在推动Linux桌面系统方面重要性如何?
Alan Cox:我接触过许多已经改用Linux的人,都是从Windows系统下的OpenOffice开始入手。对于许多人来说那是他们唯一的迁移行为——因为 OpenOffice为他们节省了大比经费。这是非常重要的第一步,对于桌面Linux来说是非常重要的应用。