IT业界

Linux之父访谈录:设计内核只为了好玩

“有些人生来就具有统率百万人的领袖风范;另一些人则是为写出颠覆世界的软件而生。唯一一个能同时做到这两 者的人,就是Linus Torvalds。”这是美国《时代》周刊对Linux之父Linus的评价。Linus除了是一位IT奇才外,还是一个乐观幽默的学者。

/d/file/uploads/allimg/100920/1122454B1-0.jpg


Linus Trovalds很少在会议上露面,站在拥挤的人群面前演讲对他而言是少之又少。但是,他破例参加了八月在巴西举行的LinuxCon大会,在会上他和 Andrew Morton参加了由Linux基金会主席Jim Zemlin主持的问答环节。此次谈话涉及到内核开发过程和发展历史等多方面的话题。

问题1:是否想象得到Linux发展到这么大?

Jim开场就问:不知道Linus和Andrew有没有想过Linux发展到今天会变得这么大?Linus的回答是没有;他说当初他写Linux只 是当 作一个短期的项目,并随时准备用更好的来替代的。因为当时还有GNU项目和很出色的BSD阵营,他认为一定会有其他人做出更强大更专业的内核来。同时,当 时他只是将Linux当做自己的一个小爱好而已。这时Andrew风趣的补充道:“但是,最后证明,没有人做的比Linux更好。我作为一个内核菜鸟(谦 虚的说法,事实上Andrew在这领域至少有10年了),虽然没有很长远的眼光,但是,我个人觉得Linux的发展确实很惊人。”

问题2:你们是怎样应对内核的快速发展?

Jim接着问你们是怎样应对内核的快速发展?Andrew回答说,随着内核的不断完善,开发者的数量也不断扩张。内核的发展责任也随即分配到每个人 身 上,而现在我和Linus只是承担着Linux总工程中的一小部分工作而已。在代码质量保证上经销商起到了很大作用。基于这点,Andrew还说现在内核 社区只是提供技术,但是经销商可以从社区中获取内核,然后转变成实际的产品。

Linus说一般来说个人对Linux内核的事情不感兴趣。例如,他说他总觉得服务器市场是一个无聊的地方,但是有人却将Linux成功应用于服务器领 域。这也是Linux主要优势之一,Linus指出没有任何一家公司会对Linux的所有用途感兴趣,但是他们对于Linux的利用效果常常令他很惊叹。 他表达有些Linux应用的领域甚至是他所没有想到的。这也意味着没有人需要对使用Linux内核产品的用户负当维护全部的责任。特别是Linus,真正 需要是的关心自己,确保将所有的代码片段整合到一起。毕竟单个内核的力量是有限的,不可能满足所有的应用需求,故能做的就是不断完善内核,让其满足更广泛 的环境中。

问题3:继续使用单内核是否明智?单核能否适用于多任务环境?处理分片这个特定任务的时候,是不是要暂时放弃多核特性?

从这次访谈中,Jim问到了内核分裂问题,以及Linux继续使用单内核是否明智,而单内核是否适用于多任务环境;将来为支撑不同领域的发展需求是否会独立出不同版本的内核等问题。

Linus认为单核能够很好工作,他也十分讨厌看到Linux分裂。目前很多领域出现的问题其实是有共通性的,比如,将Linux应用于手机领域时,这时就要求系统对于电源管理更多点,但是事实证明服务器领域,电源管理也是很重要的。总的来说,不同应用领域的用户其实关注的东西是一样的,只是关注的时机不同而已。比如曾经只有高端服务器应用中才会关注对称多处理,而现在基本上就买不到不支持SMP的桌面电脑了吧,现在SMP同样也应用于手机中了。这才是单内核方法的好处:如果手机用户需要SMP支持,Linux随时等着你。

Andrew称Linux得到广泛使用主要还是归因于内核独特的技术属性。现在Linux内核工作起来也非常容易。目前的Linux内核在大家的努 力下 已经从原来的“小“设备变的越来越大。不幸的是,现在还有很多小的嵌入系统在社区中仍然得不到很好的技术支持,但是Linux整个社区是很关注这部分团体 的,今后我们也会给嵌入式团体提供良好的技术支持。

问题4:内核开发工作者主要来自哪里,巴西开发者如何参与到内核开发中来?

Linus回应时表示,Linux内核的开发者主要还是来自北美、欧洲和澳大利亚。由于文化和语言的差异问题,增加了整个社区管理的难度。 Linus表 示运行一个全球性的项目,首先就需要解决语言共通性问题,Linus还风趣的说:“可惜社区不是使用芬兰语(Linus是芬兰人)。”Linus说世界上 有很多优秀的开发者,但是很难找到优秀同时又擅长英语的开发者。为了解决区域性以及语言文化上的差异,Linus称他们通常的工作就是建立一个地方性的社 区,然后把这些社区作为连接其他社区和总部的桥梁。

Andrew指出近几年来日本明显有很多人参与到内核开发中来;他记录了很多对 Linux基金会做出努力的社区会员。同时他也发现使用Email对于非本土人之间的交流是很有帮助;因为这样双方就有足够的时间去理解对方的意思。至于 从哪里开始交流,Andrew的意见是选择一个有趣的且有挑战性的工作开始。

Linus认为开源软件是一个了解世界编程情况的好方法。 开源不像课堂项目,一个活跃的项目需要与人交流共同来解决问题。一些公司需要技术人才,常常会在开源社区中找那些活跃分子。所以参与到开源项目中来,也是 一个向全世界推销自己的好方式。最后Linus表示,好的程序员是很难找的,他们一般会得到优秀的薪酬,也常常会为开源软件工作。Andrew也同意具有 坚定信念的程序员是随处可发光。在谷歌的时候,Andrew常常会受到内部员工发给他一些履历,让他选择录用谁。他做的第一个动作就是打开git日志,看 看这些人在社区中有做过哪些活动。

Linus表示,虽然内核可能不是一个好程序员最好的学习起始点。但是内核有很多的开发者,人们常会认为内核很神秘,甚至抱有一种害怕接近的心理。而小项目对于那些初级开发者是一个很好的起步环境。

希望看到您的想法,请您发表评论x