2010-09-20 10:36

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

图:从左往右依次为:Linus Trovalds、Andrew Morton、Jim Zemlin

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

问题5:是否会永远会为Linux工作?

Linus回答说“永远是一个很长的时间“,最初他也只是把内核当做一个两个月的项目,但是他表示会继续做内核,因为现在他还觉得有乐趣。因为总是会出现新的问题需要解决和新的硬件需要去兼容。这个有趣的项目他已经做了19年了,还是持续很长时间继续做内核。

访谈最后Jim做了大会总结,主要是列举了Linus和Andrew对于Linux内核的贡献。印象深刻的是当Jim说Linus和Andrew是 在技 术领域最具影响力的两个人。他们和Bill Gates,、Steve Jobs,和Larry Ellison是同一个级别的。他们都是世界上最富有的时候。Linus和Andrew都对着Jim说:“你疯了吗?,”你的动机是什么?“。然后是一片 笑声。

Linux之父访谈录:设计内核只为了好玩的更多相关文章

  1. 自由软件之父、Google+设计者、Java之父、Linux之父、万维网之父、Vi编辑器之父、苹果Lisa电脑界面设计、微软首席软件架构师

    自由软件之父.Google+设计者.Java之父.Linux之父.万维网之父.Vi编辑器之父.苹果Lisa电脑界面设计.微软首席软件架构师 理查德·斯托曼(Richard Stallman) 理查德· ...

  2. 调皮的程序员:Linux之父雕刻在Linux内核中的故事

    本文内容由公众号“格友”原创分享. 1.引言   (不羁的大神,连竖中指都这么帅) 因为LINUX操作系统的流行,Linus 已经成为地球人都知道的名人.虽然大家可能都听过钱钟书先生的名言:“假如你吃 ...

  3. Linux之父:除了写内核代码 别的真不会(转)

    Linus Torvalds 是 Linux 之父,被誉为活着的传奇. 其实很多人不了解他也并不奇怪,因为人是在是太低调了.现年 46 岁的他每天的工作仍然是编程,领导并推动着 Linux 的发展. ...

  4. 看Linux 之父是如何定义 Linux?

    看Linux 之父是如何定义 Linux? LINUX是什么? LINUX是一个免费类unix内核,适用于386-AT计算机,附带完整源代码.主要让黑客.计算机科学学生使用,学习和享受.它大部分用C编 ...

  5. 《只是为了好玩:Linux之父林纳斯自传》

    <只是为了好玩:Linux之父林纳斯自传> 基本信息 作者: (美)Linus Torvalds    David Diamond 译者: 陈少芸 出版社:人民邮电出版社 ISBN:978 ...

  6. Linux进程管理 (篇外)内核线程简要介绍

    关键词:kthread.irq.ksoftirqd.kworker.workqueues 在使用ps查看线程的时候,会有不少[...]名称的线程,这些有别于其它线程,都是内核线程. 其中多数内核线程从 ...

  7. Linux用户态驱动设计

    聊聊Linux用户态驱动设计   序言 设备驱动可以运行在内核态,也可以运行在用户态,用户态驱动的利弊网上有很多的讨论,而且有些还上升到政治性上,这里不再多做讨论.不管用户态驱动还是内核态驱动,他们都 ...

  8. Linux进程管理 (篇外)内核线程简要介绍【转】

    转自:https://www.cnblogs.com/arnoldlu/p/8336998.html 关键词:kthread.irq.ksoftirqd.kworker.workqueues 在使用p ...

  9. 嵌入式Linux设备驱动程序:编写内核设备驱动程序

    嵌入式Linux设备驱动程序:编写内核设备驱动程序 Embedded Linux device drivers: Writing a kernel device driver 编写内核设备驱动程序 最 ...

随机推荐

  1. js技巧总结

    很早以前看到的代码,同时加上一些我在项目中用到的代码,感觉很实用,在这里记录下来,怕忘记了,有些代码忘记在哪看到的了,所以就不贴网址了,感谢各位大神的分享!如果有其他的好的方法,欢迎留言~ 1.取整的 ...

  2. [经典算法] 蒙地卡罗法求 PI

    题目说明: 蒙地卡罗为摩洛哥王国之首都,该国位于法国与义大利国境,以赌博闻名.蒙地卡罗的基本原理为以乱数配合面积公式来进行解题,这种以机率来解题的方式带有赌博的意味,虽然在精确度上有所疑虑,但其解题的 ...

  3. iOS 下拉刷新 上拉加载实现原理

    1.下拉刷新 实现原理 if (scrollView.contentOffset.y < -100) { [UIView animateWithDuration:1.0 animations:^ ...

  4. 【转】使用断言NSAssert()调试程序错误

    NSAssert()只是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并切可以自定义异 ...

  5. LearnMVC5-GettingStarted

    原创文章,转载必需注明出:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/learnmvc5-gettingstarted/ 本人是 ...

  6. Unrecognized VM 'MaxMetaspaceSize

    这个错误是因为 MaxMetaspace  元空间是java8的新参数,如所以java8以下的版本,jvm是不支持这个参数的.

  7. oralce之存储过程

    一:--循环向表emp中插入数据 declare maxnumber ; v_count number; begin v_count :; ..maxnumber LOOP v_count :; in ...

  8. hihocoder 1037 数字三角形

    #1037 : 数字三角形 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 问题描述 小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他们来到了大洋彼岸 ...

  9. html+css-水平居中-不定款块状元素方法(二)

    来源:http://www.imooc.com/code/6364 除了上一节讲到的插入table标签,可以使不定宽块状元素水平居中之外,本节介绍第2种实现这种效果的方法,改变元素的display类型 ...

  10. Common工具类的验证码类的使用(未实现验证)

    验证码接收 using System; using System.Collections.Generic; using System.Linq; using System.Web; using CZB ...