公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你了解圈内新鲜事!

Linux 之父 Linus Torvalds 是一个怎么样的人?他平时是怎么工作的?Linux 这么大的一个项目,大家如何协同开发?2016 年,他做客 TED,为我们展现了他鲜为人知的一面。他两次推动了技术的革命,第一次是 Linux,第二次是 Git,下面的访谈,详细记录了他为什么要做这两个项目, 他对开源的看法,以及他对自己的评价。

Chris Anderson(下文简称 CA ):有件事情很奇怪。你的软件,Linux,运行于数百万的计算机中, 可以说是他驱动了网络。我想,全世界正在使用将近 15 亿台的安卓设备。每一台里都有你的软件。这非常了不起。你肯定有一个特别高大上的总部来实现这一切。我以前真这么想——到我看到这张照片(如下图),我被震惊了。真的惊了,这就是 linux 总部。

(笑声)

(掌声)

Linus Torvalds(下文简称 LT ):好吧,让大家失望了。我不得不说,这张照片里最有意思的地方,被最多人问起的地方,就是那种会动的办公桌。这是我办公桌最有趣的地方,虽然我现在不怎么用它了。我觉得两者是有关系的。

我的工作方式是...。我不想要太多外来的刺激。大家能看到,我的墙是淡绿色的。据说精神病院的墙就是这种颜色。

(笑声)

这种颜色能让你平静,不会刺激到你。

其实大家看不到我的电脑(主机),只能看到我的显示器,我对电脑最主要的要求 —— 并不是性能强劲,尽管我也爱 —— 就是它必须没有任何声音。我认识一些在谷歌工作的人,他们在家里都有小型的数据中心,我可没这习惯。我的办公室也许是你见过最无聊的一个。我喜欢独自一人,享受安静。如果有猫进来,它会坐在我的大腿上,我喜欢听猫打呼噜,而不是听特烦的电脑风扇的声音。

LT:太了不起了,你的这种工作方式,才能让你运行如此庞大的一个技术帝国——确实是一个帝国——这是开源(软件)强大力量的一个最好例证。

请告诉我们你是如何理解开源的以及它又是如何一步一步发展成 Linux 的。

LT:我现在还是独自工作。真的,我独自一人在家工作,经常穿着浴袍干活。当一个摄影师来的时候,我才会穿戴整齐,所以(这张照片里)我是穿着衣服的。

(笑声)

我一直以来就是这样工作的。Linux 也是这样诞生的。Linux 并不是一个合作的产物,它是我一系列项目中的一个,纯粹出于当时自己的需要,部分原因是我需要得到结果,但更重要的原因是我享受编程。这段旅途的终点,在 25 年后的今天,我们仍未达到。当年我只是想做一个完全属于自己的项目,我压根就没想过开源这件事情。

但在那之后,随着项目越来越大,你会开始想让别人知道。感觉就像“哇,快来看看我的成果!”,但说实话,刚开始并没那么好。我把它放到网上供人下载,当时甚至还不是开源的。当然,所有的代码都是开放的,但我并没有想过要用我们今天所熟知的开源方法来改进它。我当时想的是, “看,这是我折腾了半年的成果,我想听听大家的意见。“

有人来找过我,在赫尔辛基大学,我有一个朋友是做开源软件的——当年还叫免费软件——他让我了解到,“嘿,你可以用那些已有的开源许可证”我考虑了一段时间。我其实有点担心商业利益牵涉其中,我想,很多人一开始会跟我一样,担心自己的工作成果会被人利用,不是吗?于是我决定了,“不管了“。然后...

CA:然后某一天,一些人对你的代码提出了些建议,你觉得“哇哦,真是不错,我都没想到这一点。对改进软件很有帮助。“

LT:其实最开始没有多少人直接改代码,而是提出很多的想法。让别人看一下你所做的项目——我想在其他行业也是这样——有人对你的代码感兴趣,仔细研究过,能给你反馈,给你建议。对我而言是非常重要的一件事。

当时我 21 岁,还很年轻,但在那之前,我人生一半时间都在敲代码。之前的每一个项目都是我独自完成的。有人开始评论我的代码,给予反馈,真是头一遭。他们甚至还没开始改代码,当对我来讲足以载入史册,因为我觉得,“我爱世人!”,别误会我, 其实我并不合群。

(笑声)

我并不爱世人

(笑声)

我爱电脑, 我喜欢通过发邮件互动, 因为这样能给你缓冲。但我真正喜欢的是 人们给出评论,参与我的项目。这样能让我的项目快速成长。

CA:有没有那样一个时间点, 你发现自己一直在做的项目 突然开始成型了, 你对自己说, “等一下,这事儿也许能做成, 不单单是一个我能得到良好反馈的个人项目, 而是能在整个科技界掀起轩然大波的大事”?

LT:还真没有。对我而言,最重要的时刻 并不是它变大的那一天, 恰恰是在它还不够大的时候。对我而言,当我不再独自工作, 有 10 个人,或者 100 个人加入进来—— 这才是一种突破。之后事情就顺其自然了。对我来说,从 100 人到 100 万人, 并不是那么重要。其实我的意思是,如果你……

(笑声)

如果你是想把自己的成果卖掉, 那确实就很重要—— 别误解我的意思。如果你感兴趣的是科技本身, 是这个项目本身, 那么最重要的就是找到志趣相投的人。之后这个群体会自发壮大。并没有一个特别明显的时间点,我会觉得 “哇哦,这事儿快成了!”因为—— 这个时间非常漫长。

CA:所有我采访的技术专家们 都对你赞不绝口, 说你极大改进了他们的工作。不光是 Linux, 还有 Git, 是一种软件开发管理系统。简单介绍一下它以及你在其中扮演的角色。

LT:我们遇到的问题之一, (在项目开始后)一段时间后才开始显现, 就是当你…… 从 10 个或者 100 个人参与一个项目, 增长到 1 万人的时候,而这—— 关于(Linux)内核,我们碰到的问题是, 每次更新都有 1000 人参与, 而更新频率是每两、三个月一次。这其中有些人作用不大。有很多人能做出小小的改进。

但要进行维护, 所需要的工作量就会大大增加。我们吃尽了苦头。有时候甚至整个程序 都仅仅是为了对源代码进行维护。CVS 曾经是最流行的, 我恨透了它,连碰都不想碰, 我喜欢更基础、更有趣的方法, 但其他人又不喜欢。

CA:(笑声)

LT:我们陷入了僵局, 成千上万的人想参与进来, 但很多时候,我成为了那个断点, 我无法让自己跨出那一步, 同上千人合作。

因此 Git 是我的第二个大项目, 它存在的意义就是维护我的第一个大项目。事实上这就是我的工作方式。我编程并不是为了…… 我编程是因为好玩, 但我也想做一些有意义的事情, 因此我设计每一个程序 仅仅是因为我自己需要 而且……

CA:因此,实际上,Linux 和 Git 的出现, 都是意外的收获, 仅仅因为你不想跟太多人一起工作。

LT:千真万确。没错。

(笑声)

CA:太牛了。

LT:可不是吗。

(掌声)

你带来了技术革新, 不是一次,而是两次, 我们试图去探寻背后的原因。你给了我们一些线索,但是…… 这是一张你小时候的照片, 你手里拿着魔方。你刚才提到,你从 10 岁、 11 岁就开始编程了, 人生的一半,

你是那种电脑天才,技术宅吗?你在学校里是无所不能的明星吗?你是个什么样的孩子?

LT:没错,我觉得自己就是宅男的原型。我是说,当年…… 我并不喜欢跟人打交道。那是我弟弟。显然我对魔方更有兴趣, 完全无视我弟弟。

(笑声)

我还有个妹妹,她不在照片里, 当我们全家聚在一起的时候—— 我家人不算多,但我有好几个侄子侄女—— 她会事先给我打预防针。在我进屋之前,她会说, “好的,你要注意什么什么……” 因为我其实…… 我是个技术宅。我喜欢电脑, 喜欢数学, 喜欢物理。我擅长这些。但也没到出类拔萃的地步。就像我妹妹说的, 我最突出的品质就是不放弃。

CA:好的,那我们就来聊聊这个, 这很有意思。你不轻言放弃。也就是说,不是因为技术宅或者聪明, 而是因为……固执?

LT:没错,就是固执。就像, 我开始做一件事情, 我不会说,“好的,我不干了, 我要去干点别的…… 看,比如那个!”

我发现我在做其他事情的时候也会这样。我在硅谷生活了 7 年。一直在同一家公司上班, 那可是在硅谷哦, 从未换过。这简直闻所未闻。尤其在硅谷这个地方。硅谷最大的特点就是,人们总在跳槽, 一会这一会那。而我不是这样。

CA:但在 Linux 系统发展的过程中, 这种固执有时会让你和别人产生冲突。给我们讲讲这个。维持已有成果的质量是不是非常必要?你会如何来形容之后发生的事情?

LT:我不确定这是不是非常必要。还是说回到“我并不合群”这一点, 有的时候我还…… 可以说, 不太理解他人的感受, 经常会说话伤到别人。对此我感到很抱歉。

(掌声)

但与此同时, 有人告诉我,我应该友善一些。然后我会跟他们说,可能你是友善, 但你应该更加富有侵略性一些, 他们会把这个当成我的不友善。

(笑声)

我想说的是我们是不同的。我不是个合群的人, 对此我并不感到骄傲, 但这就是我。而我喜欢开源软件的一点就是, 它能让形形色色的人在一起合作。我们不必相互喜欢—— 有时候我们甚至互相讨厌。是真的,我们经常吵得不可开交。但是你会,你会发现许多事情—— 甚至都没法同意保留不同意见, 因为大家的兴趣点真的不一样。

回到我刚才说过的, 我担心商人们利用我们的劳动成果, 但没过多久,我发现, 这些商人都是非常非常好的人。他们做那些我不感兴趣的事, 关注点与我完全不同。他们使用开源软件的方法跟我不一样的。但正因为是开源的,他们可以这么干, 而且实际上效果很好。我甚至认为跟我使用的效果一样好。我们需要合群的人,需要能与人交流的人, 需要温暖友好的人 就像…… (笑声) 喜欢拥抱你,带你走进这个圈子。但不是每个人都能做到。比如我就做不到。我关注的是技术。有的人关注用户界面。我死也做不来用户界面。举个例子,如果我被困在一个孤岛上, 逃出生天的唯一办法 是设计一个漂亮的用户界面, 我宁愿死在岛上。

(笑声)

人跟人是不一样的, 我并不是在找借口, 只是想解释给大家听。

CA:我们上周见面的时候, 你聊到自己的一些其他特点, 我觉得很有意思。是关于品味的。

我这里有一些图片。我觉得这一段代码就没什么品位, 而这一段要好一些, 相信大家一看便知。这两段代码有什么不一样?

LT:这是…… 在座的有哪些人编过程?

CA:我的天啊。

LT:我敢保证, 刚刚举手的每一位, 肯定做过单向链表。它是在…… 这个,第一段不怎么漂亮的代码, 基本上是在你刚开始学编程的时候学到的。你不需要真的理解这段代码。

我觉得最有意思的 是最后一个“if”语句。因为在单向链表中—— 这里是试图将一个已存在的入口移出链表—— 不同之处在于这是第一个入口 还是一个位于中间的入口。如果是第一个入口, 你需要将指针改向第一个入口。而如果位于中间, 你需要将指针改向上一个入口。这是两种完全不同的情况。

CA:这一个比较好。

LT:这一个比较好。它没有 if 语句。这完全不影响—— 你不必了解这里为什么没有“if”语句, 你需要了解的是 有时候你可以换个角度看问题, 重写代码,排除特例, 完美覆盖所有情况。这就是好的代码。同时也很简单。这是最基本的原则。其实这都不重要—— 当然,细节非常重要。

对我来说,我愿意与之共事的人, 必须有好的品位,这就是如何…… 我举的这个例子很傻, 没什么意义,因为实在太短。好的品位体现在更长的代码里。好的品位体现在能看清全局 甚至有一种直觉, 知道怎么把事情做漂亮。

CA:好的,让我们来总结一下。你有品位, 当然是对于程序员们而言, 你很有品位——

(笑声)

LT:对在座有些人而言,是这样。

CA:你是个非常有才华的电脑程序员, 你异常固执。但肯定不止这些。因为你是改变了未来的人。你一定有实现未来宏伟愿景的能力。你是个有远见的人,是吗?

LT:其实在过去两天里,我在 TED 大会 觉得不太自在 , 因为有很多关于未来的想象,对吧?我并不是一个有远见的人。我没有制定未来五年的计划。我是一名工程师。而且我觉得,真是—— 我是说——我非常乐意跟梦想家在一起 他们行走四方,仰望苍穹, 看着满天星辰说,“我想到那儿去。” 但我是低头看路的那种人, 我只想填好眼前这个坑, 不让自己掉进去。我是这样的人。

(欢呼)

(掌声)

CA:上周你跟我聊过他们俩。他们是谁?你跟他们有什么关系?

LT:这其实是技术界的一个老故事了, 特斯拉和爱迪生之争, 特斯拉被认为是一名有远见的科学家, 总是有疯狂的想法。大家都爱特斯拉。你看,还有人把自己公司也叫这个名字。

(笑声)

另一个人是爱迪生, 经常被嘲讽说他是一个单调乏味的人, 而且—— 他最有名的一句话就是, “天才是 1%的灵感加上 99%的汗水。” 而我是爱迪生一派的, 尽管人们经常讨厌他。如果你比较一下这两位, 特斯拉很能抓眼球, 但真正改变世界的是谁?爱迪生也许不是个讨喜的人, 但他做了很多事—— 他也许没那么天才, 不是那么有远见。我觉得自己更像爱迪生而不是特斯拉。

CA:TED 大会这一周的主题是梦想—— 宏伟、大胆的梦想。而你却像碎梦人。

LT:我会试着收敛一些。

CA:太好了。

(笑声) 我们接受你,我们爱你。

谷歌和其他许多公司 使用你的软件, 挣了非常多的钱。你会觉得不爽吗?

LT:不会。原因有很多, 其中一个原因是,我过得不错。真心不错。

另一个原因就是—— 如果我不将它开源,而过于纠结的话, Linux 就不会发展成今天这样。而且 Linux 让我有了许多经历, 尽管我不喜欢,比如在公开场合讲话, 但同时,这也是一种历练。相信我。很多事情让我成为了一个快乐的人, 我觉得当初的选择没有错。

CA:开源软件这个想法—— 我想这是最后一个话题—— 开源软件这个想法已经在全世界实现了吗?还是说还有潜力可挖, 还有很多可以做的?

LT:我有两个想法。我认为开源软件如此成功的原因之一 在于归根结底, 代码是一个非黑即白的事情。我们有非常明确的方法来分辨, 一段代码是行还是不行。代码要么运行成功,要么失败, 这就意味着没什么可争议的。我们有很多争议,不是吗?在其他许多领域—— 人们探讨过公开政治和其他类似的事情—— 有时候真的很难去说, 没错,你可以在其他领域也采取同样的原则, 因为在那些地方不是非黑即白的,有灰色, 也有其他颜色。

因此,科学界的开源显然是一种回归。科学最初是开源的。但之后变得越来越封闭, 只存在那些昂贵的科学期刊上。开源让科学回归了, 我们有了 arXiv 和开放期刊。维基百科也改变了世界。还有其他许多例子, 我觉得未来还会有更多。

CA:但你不是个有远见的人, 这些事跟你没啥关系。

LT:当然。

(笑声)

得靠你们去实现了,对吗?

CA:没错。

Linus Torvalds, 谢谢你的 Linux,谢谢你为互联网做的一切, 谢谢你为安卓手机做的一切。

谢谢你来参加 TED 大会, 让我们更加了解你。

LT:谢谢。

(掌声)

本文转载自:「司徒公子」,原文:https://url.cn/5qKnOYP,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com 。

你可能还喜欢

点击下方图片即可阅读

央视都点赞的网红李子柒 1 年能赚的钱到底是一个阿里 P8 的多少倍呢?数据量化给你看!

点击上方图片,打开小程序,加入「玩转 Linux」圈子

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

探秘 Linux 之父 Linus Torvalds 的日常,一不小心就撸出两个创世神作!相关推荐

  1. Linux之父Linus Torvalds恶评Intel漏洞修复补丁:完全是个垃圾

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 图片来源:YouTube 2018年1月2日,英特尔曝出的CPU设计漏洞事件一经曝光,就迅速 ...

  2. linux之父博客,Linux25周年之际:专访 Linux 之父 Linus Torvalds

    1991 年,22 岁的 Linus Torvalds 一边在芬兰赫尔辛基大学学习计算机,一边设计了 Linux 的系统内核.之后,Linux 迅速发展为一个可以在智能手机.服务器等各种平台上运行的功 ...

  3. 你知道吗? Linux之父 Linus Torvalds 的10个有趣的事情

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 来自:Linux迷 链接:https://www.l ...

  4. Linux之父-Linus Torvalds

    Linux之父-Linus Torvalds(李纳斯.托沃兹) 1969年12月28日出生于芬兰赫尔辛基市. 父亲尼尔斯·托瓦兹(Nils Torvalds)是一名活跃的共产主义者及电台记者. 托瓦兹 ...

  5. Linux程序员语录,Linux和Git之父 Linus Torvalds 的那些经典语录

    Linux和Git之父Linus Torvalds曾说过这样一段话: "Bad programmers worry about the code. Good programmers worr ...

  6. 好书推荐--Linux之父Linus的自传《Just for Fun》

    这本书非常有趣,它让你不由感到,在这个浮躁的社会,兴趣爱好是多么的重要!至少能让你收获快乐.巴菲特说过这样一段话:"没钱没人脉时,请逼自己做好这三件事.第一,找到自己的兴趣爱好:第二,主动要 ...

  7. linux内核zfs,Linus Torvalds 不建议使用 ZFS On Linux

    原标题:Linus Torvalds 不建议使用 ZFS On Linux Linux 内核创建者 Linus Torvalds 最近回应 Linux 内核调度器存在问题的引发了大家的关注,在同一个帖 ...

  8. linux内核zfs,Linus Torvalds回应用户抱怨:不建议使用 ZFS On Linux

    Linux内核创建者Linus Torvalds最近回应 Linux内核调度器存在问题的文章引发了大家的关注,在同一个帖子里,他还回复了一名用户抱怨Linux内核最近破坏了内核源码树外ZFS模块的评论 ...

  9. “Linux之父”Linus 获颁英特尔首个终身创新成就奖

    作者:何苗 出品:CSDN资讯 Linus Torvalds大名鼎鼎,被认为是世界上最伟大的程序员之一,三十多年前开创了 Linux内核,写出了一款大获成功的类 Unix 操作系统.这款使用最广泛的软 ...

  10. 《只是为了好玩-Linux之父Linus自传》

    本文转载自得到平台:每天听本书,如有侵权,请告知.  链接:https://pan.baidu.com/s/1uvvceZMYmYMLJWd0hMAcoQ 密码:1a38 <只是为了好玩> ...

最新文章

  1. Java 的 API、JDK 和 IDE 是什么
  2. 剑指offer:面试题28. 对称的二叉树
  3. 人工智能值得关注的技术研究方向
  4. CUDA入门(三) 初探线程与块
  5. vSphere 5.0系列之二 vSphere Client的安装
  6. python模拟密码有效性检测功能_用Python程序检查密码的有效性?
  7. 泛型字典 0104 c#
  8. ​java/ mysql企业动态网站设计制作作业成品
  9. 循环双链表的手动构建总结
  10. HW RIPv2认证
  11. linux添加磁盘分区,linux添加磁盘分区
  12. vmware中修改虚拟机MAC地址的方法!
  13. mysql网络共享_局域网共享mysql
  14. DOS批处理命令之for命令(批量安装APK)
  15. linux缺省的shell,Linux操作系统缺省的shell
  16. 中国大学moocpython笔记_中国大学MOOC —— 学习笔记(二)
  17. C#按钮添加图片的解决
  18. es6---Promise
  19. Lora1278驱动V4.4.2讲解一:驱动移植
  20. java —— 不高兴的津津

热门文章

  1. 微信弹出遮罩层引导用户浏览器打开升级版
  2. Java基础-刘意经典版DAY1
  3. GWR(地理加权回归)预测分析中国各省份开关窗情况(R语言)
  4. 大数据毕设/课设 - 基于大数据的客流量数据可视化平台
  5. linux 基础知识考试试题,Linux常识型试题
  6. 从B站源码泄露事件入手,说一下团队协作中版本管理的安全意识
  7. 将txt格式的地图导入到ArcMap
  8. 五年高考三年模拟暗部软件库_小老弟,你的《五年高考三年模拟》掉高速上了……...
  9. 代码制作数字流星雨_C语言实现流星雨 | 学步园
  10. 台达服务器AB和B2系列区别,台达A2与B2伺服的区别