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. Animation 动画详解(一)——alpha、scale、translate、rotate、set的xml属性及用法

    一.概述 Android的animation由四种类型组成:alpha.scale.translate.rotate,对应android官方文档地址:<Animation Resources&g ...

  2. iOS 关于UIscrollView

    设置 滚动起始位置 [scrollView setContentOffset:CGPointMake(0, 0) animated:YES];

  3. umbraco表单

    view Model定义类 controller 创建Form @HTML.RenderPartial(“”,)

  4. JDBC批处理读取指定Excel中数据到Mysql关系型数据库

    这个demo是有一个Excel中的数据,我需要读取其中的数据然后导入到关系型数据库中,但是为了向数据库中插入更多的数据,循环N次Excel中的结果. 关于JDBC的批处理还可以参考我总结的如下博文: ...

  5. hdu-5703 Desert(水题)

    题目链接: Desert Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 65535/32768 K (Java/Others) Pr ...

  6. centos下使用nohup

    Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序后台运行.比如我们要运行mysql在后台:/usr/local/mysql/bin/mysqld_sa ...

  7. OS X 10.10 apache配置

    配置内容转自:http://www.linuxidc.com/Linux/2015-04/116347.htm 一.apache的配置 apache已经自带了,只需如下三个命令就可以了. 开启apac ...

  8. Asp.net MVC 4 模型的数据注释

    [Bind(…)] Lists fields to exclude or include when binding parameter or form values to model properti ...

  9. The future of programming languages

    In this video from JAOO Aarhus 2008 Anders Hejlsberg takes a look at the future of programming langu ...

  10. Part 13 Cast and Convert functions in SQL Server

    Part 28 Cast and Convert functions in SQL Server