时隔 25 年重访 Linus:流量时代的“技术大师”
Linus Torvalds 于 1991 年创建了 Linux 操作系统内核,之后始终坚持在技术第一线。他开发的 Linux 和 Git 两个项目深刻影响了软件行业。
同时影响软件界的还有他的言语。他的很多话,一些成为程序员模仿的对象,一些又是媒体炒作的素材。我们在争论中用“Talk is cheap, Show me the code”来反驳别人,同时也热衷于看媒体群嘲 Linus。当最近红帽联合创始人在时隔 25 年后第二次采访他时,Linus 表示他讨厌媒体,说他的言论在社交软件和媒体中不断分享和夸大,匿名的方式更是加重了网络暴力,“25 年前大家可不是这样对待我的”。
被盯着的技术大师
作为开源界的神级人物,他的一言一行都被时代记录。甚至有一维基页面专门保存了他近 30 年的语录。
其中有几个时间点尤其引发争议。去年 3 月以色列安全公司 CTS-Labs 突然发布公告,声称 AMD Zen 架构处理器中存在一系列安全漏洞,但没有遵循 90 天静默期的行业惯例,只给了 AMD 24 小时的时间,就公布了漏洞细节。Linus 对于这种反常做法也是出离愤怒:“看起来,IT 安全行业被刷新了底线。我之前觉得整个安全行业已经够堕落的了,但没想到还能如此无耻”。2018 年 1 月 2 日,英特尔曝出的 CPU 设计漏洞事件。针对 Spectre 漏洞,Linux 操作系统不断更新修复程序。Linus 公开炮轰英特尔提供给 Linux 的 Spectre 修复程序是“完全无用的垃圾”。2007 年,他发现用 C++ 实现 Linux 内核代码并不是最优选择,于是对 C++ 的表现表示强烈的不满:“C ++ 是一个可怕的语言”。
他也骂开发者提交不安全的代码,也曾在摄像机前对 Nvidia 不及时提供驱动的行为比划中指…。大多数情况下,Linus 愤怒的原因都是关于技术,这些行为也并非是没有理由的,甚至可以说某种程度上是中肯的。但这些事件不断的在网络上被评论和发酵,每次发言都在多年来不断的被提起,Linus 也逐渐以“尖酸刻薄”的印象闻名。
他极度热爱技术,也极度在意他的内核项目,曾表示只想做技术,不想处理技术以外的事情,不关心是否是用“人文关怀的管理方式”。但人们开始对他表示的相当愤怒,一位英特尔顶尖 Linux 程序员发表博文表示自己不愿意为不尊重人的社区服务了;一位开发者在峰会现场诘问 Linus对他发表的不尊重别人的言论有何看法…
外部刺激加内部矛盾,最终导致这位只想“关心技术”的顶级程序员不得不宣布离开社区进行反思。但他作为社区“灵魂人物”,得保证 Linux 内核的每个版本都被正确的发布;甚至去年 9 月温哥华内核维护者峰会也差点因他不能出席而取消。这不禁让人联想到“只想读书”的中国“流浪大师”,不情愿的被聚焦在摄像机前,不过沈巍能躲开,而技术社区却离不开 Linus。
Linus 不得不表示服从,虽然他说“只想尊重那些值得尊重的人”,但他还是公开对过去的言行表示道歉,并调整自己的行为。不久后 Linus 宣布回归,Linux 基金会随之也正式制定了修订后的行为准则:采用 Code of Conduct(CoC)行为准则,以取代之前的 Code of Conflict 冲突解决方案。
以一己之力写出 Linux,被应用到现在千千万万手机、服务器等设备中,Linus 以技术服众,多年都被评为世界最有影响力的人之一。他在前几天再次接受红帽联合创始人 Robert Young 采访时,两人谈到了过去 25 年的变化,谈到了工作的理念,谈到了 Linux 的未来,也谈论了社交网络。Linus 说:“ Twitter、Facebook、Instagram 之类的社交媒体是一种病,鼓励了不良行为!“,“在互联网上,没有人能听到你的言外之词“。
然后这一条信息,又成了众多媒体的炒作核心:
访谈: Linus Torvalds 与 Robert Young
Robert Young: 很高兴有机会和你联系。你和你的家人都好吗?你孩子现在一定大学毕业了吧。Nancy 和我,还有我们的三个女儿现在都挺好的。我们的大女儿 Zoe,当我和 Marc 创办 Red Hat 时她才 11 岁,现在就要生下她的老二了,也就是说我早成姥爷了。
Linus Torvalds:
我的孩子们还没有完成大学学业呢,我的大女儿 Patricia 要到今年 5 月份才念完大学,但小女儿 Celeste 还在念高中毕业班,所以呢,再过六个月后我们就该成为空巢老人了。我三个孩子都做得挺好的,至于我成为祖父,恐怕还得等上几年才有可能。Bob:1994 年当我第一次采访你的时候,你是否认为到 2019 年时,您还会保持这种状态吗?
Linus:
我认为啊,在当时的 1994 年,让我倍感惊讶的是,我那时最新的项目已经不仅仅是“做一些有趣的事情,直到它完成了我所需要的一切,然后我再找别的事情做”这样的项目。当然了,那时候它还处于开发的早期阶段,但它可是花了我好几年的时间才开发出来的东西,而且也已经融进了我的生活。所以我想说的是,不是说我一定要再做上几十年,而是它已经成了我生命中的一个坎,如今我已迈过去。我从来就没有真正为 Linux 制定过长期计划,我原本打算想的是“得过且过”的生活,而不是要考虑未来五到十年以后的事情。Bob:关于实现梦想的危险,有这么一句名言:当你被人问到你对 Linux 的未来有什么期许,你经常开玩笑说是“统治世界”。现在,你和更广泛的开源 / 自由软件社区已经实现了这一目标,那么,能说说你的下一个目标是什么呢?
Linus:
好吧,我已经很久不开什么“统治世界”的玩笑了啊。因为随着时间的推移,这个似乎不再是玩笑了。但它终归是一句玩笑话,并不是我或其他任何开发者真正做我们所做的事情的原因。它就是关于怎么样才能开发更好的技术,怎么样面对有趣的挑战。而这一切在核心层面上从来就没有真正变过。只是所有的细节都变了,比如说,现在和以前相比,硬件就已经发生了巨大的变化,我们遇到的问题也与以前非常不同了,我的角色也和当初相比大相径庭。但是,“做得更好,并有着有趣的挑战”这点从来就没有变过。比如说吧,在 1994 年我主要是一名开发人员。当然,我是主要的维护者,尽管我花了很多时间来合并补丁,但我也主要编写自己的代码啊。现在,我已经很少写代码了。我写的代码通常是伪代码或示例补丁,通过电子邮件发给真正的开发者。我不愿意将自己称为“经理”,因为我并没有真正做过什么年度评审或预算之类的事儿(感谢上帝!),但我绝对是一个技术带头人,而不是一个真正的程序员,这在过去的许多年里都是如此。所以真正的大局并没有改变,但我的角色,以及所有的细节,很显然与 1994 年大不相同。Bob:问一下,再过一个下 25 年,你和你这个代码库将会在哪里呢?
Linus:
哈,到那时候,我就 75 岁了,我怀疑自己还能不能天天参与其中。但考虑到我已经这样做了近 30 年,也许,到那时候我还会继续关注这个项目。好消息是,我们确实拥有一个非常可靠的开发者基础,因此,我从来不担心“Linus 会在哪里”这样的问题。当然,内核开发人员衰老后会怎么样,人们已经谈论这个话题很长时间了,但这并不是因为我们有新的继任者,而是因为我们周围仍然有很多人,已经在一起很长时间了,并且仍然喜欢这样做。我曾经认为,也许一些全新的、令人兴奋的操作系统,总有一天会出现并取代了 Linux(嘿,早在 1994 年,我可能还会以为 Hurd 会这么做!),但这样的局面并没有出现,这不仅仅是因为我们已经做了很长的时间,并且仍然做得很好,我也开始意识到,开发一个新的操作系统,要比我想象的困难得多了。这确实需要很多人付出大量心血,而 Linux 的优势——当然也是开源的优势——在于,你可以在所有其他人的努力之上进行构建。因此,除非在计算领域发生一些绝对巨大的变化,否则,我认为 Linux 将在未来 25 年内做得相当好。我之所以这么说,并不是因为代码本身的任何特定细节,简而言之,从根本上说,是因为得益于开发模式和问题空间。到那时,我可能会变得不再那么活跃,很多代码都会被更新、被替换,但我认为,这个项目还将会继续存在下去。Bob:这么多年来,为了让你满意,你和内核团队是不是一直在更新内核代码?25 年来不断扩展的 Linux 代码库,是否有必要或者迫于某种压力来重写呢?也许用比 C 语言“更为现代”的语言来重写?
Linus:
多年来,我们已经对大多数子系统进行了多次大规模的重写,当然并不是一次性就全部重写,而且有很多代码最终都变成了没人真正想要修改的东西(最常见的原因是它们都是那些很少有人真正使用的古老硬件的驱动程序,但我们仍然提供支持)。但是,对于整个内核来说,大型统一源代码库的优势之一就是,当我们需要进行一些较大的更改时,我们可以这样做。可能有一些内核之外的驱动程序等(包括源代码和二进制文件),但我们一直有一个策略,如果它们不是内核相关的,那么对开发来说就没什么影响。所以,我们可以在必要的时候进行彻底的改变。至于 C 语言,没有比这更好的了。我们已经为新的、改进的特性更新了内核源代码(在我们这样做的这几年里,C 语言本身也发生了变化),而且我们还在 C 语言上添加了各种扩展,如用于额外的类型检查、运行时验证以及强化等,但总的来说,除了一些小细节之外,语言是完全相同的。老实说,你说的那个用比 C 语言更现代的语言来重写,看起来不太可能,因为人们在活动开发中,看到的那种语言并不适合用于底层系统编程。这种语言是为了更容易地用花哨的用户界面等创建用户应用程序,很显然不想做内核需要做的事情,比如底层手动内存管理。我可以想象,会有一些“框架”语言来生成驱动程序或类似的东西,而且在我们内部实际上也有我们自己的简化“语言”来进行配置,我们也确实在构建过程中使用了一些其他语言,所以 C 语言并不是我们使用的唯一语言。但到目前为止,这是它的大部分内容,这就是“内核本身”所写的内容。Bob:你选择的硬件设备是什么样子的?有没有那种很贵的、大牌的 Linux(或任何)笔记本电脑?平板电脑或者手机有吗?
Linus:
我的主要开发用的机器是一个非常普通的 PC 工作站。这是一台组装机,用了很多年。这没有啥特别的,实际上,我已经两年没有对它做任何大的改动了,所以它甚至都没有啥特别的。我在家里的主要要求实际是基本上完全安静,除了那几个风扇,没有什么活动的部件了(所以没有那种旋转的磁盘)。在旅途上(幸好不是经常这样),我的主要需求是要有一个好的屏幕、足够轻薄。我中意的是笔记本带上充电器才重 1 公斤,老实说,我还没有找到这种笔记本,但目前对我来说最好的折衷方案是 XPS13。Bob:目前看来 Linux 在桌面上的成功似乎不是在个人电脑桌面而是通过安卓在设备桌面上,对此,你有什么看法?
Linus:
呃,传统的个人电脑显然不再像以前那样占主导地位了。即使你有一台个人电脑(即使它还在跑 Windows 或 OS X),很多人主要通过网络浏览器和一些随机的应用程序来使用它。当然,还有那种“工作站”用户,这是我个人一直想象的那种桌面。尽管它仍然很重要,但它似乎并没有像当年的个人电脑那样推动市场发展。强大的台式机似乎主要是用于开发、游戏、或媒体编辑。那种“casual”(译注:指临时的、非正式的,不按常规、固定模式做事,随意性强)桌面似乎更像是浏览器,而且常常只是一个平板电脑或一部手机。当然,Chrome 在这方面的表现似乎也不错。但是,是的,在每天与 Linux 打交道的人中,Android 显然占了很大一部分。【Bob 注:严格意义上的“dominant”(统治),这可能是公平的。但是,尽管最近几年个人电脑的总出货量有所下降,但从 1994 年到 2014 年,个人电脑市场的累计增长如此之快,即使在今天个人电脑市场发展缓慢的情况下也是如此。与 1994 年相比,全球每年购置的个人电脑数量仍然是 1994 年的四到五倍。】
Bob:如果你必须解决关于网络世界的一个问题,那会是什么呢?
Linus:
没有啥技术性的问题。但是,我绝对特别讨厌现代的“社交媒体”,那些 Twitter、Facebook、Instagram 等。这些是病,助长了人们的不良行为。我认为其中部分内容也是通过电子邮件共享的,我之前就说过:“在互联网上,没人能听出来你的言外之意。”(On the internet, nobody can hear you being subtle)如果你没有跟某人面对面交谈,而且还错过了所有正常的社交线索时,你就很容易错过幽默和讽刺,但也很容易忽视对方的反应,所以你会陷入骂战,通过面对面交流的话,可能不会那么容易出现这种情况。但是电子邮件仍然有用。你仍然还需要投入精力去撰写电子邮件,通常还会有一些干货(比如技术方面的或者其他方面的)。整那些什么“点赞”、“分享”等这些玩意儿都是垃圾。没有努力,也没有质量控制。事实上,这一切都与质量控制背道而驰,具有最低的共同目标、标题党、以及试图助长戾气的东西,通常都是道德暴行。再加上个匿名,真他妈的恶心。当你甚至不把你的真名写在垃圾上(或者你分享、点赞的垃圾上)时,它确实一点帮助都没有。其实我就是那种认为匿名被高估的人。有些人将隐私和匿名混为一谈,认为这两者是相辅相成的,而保护隐私则意味着你需要保护匿名。要我说,这是一派胡言。如果你是一个告密者,匿名当然很重要,但如果你无法证明你自己的身份,那你在社交媒体平台上进行辱骂、搞恶意攻击时,就不应该被公众看到,而且你也不应该对这样的信息点赞或分享。嗯,咱不抱怨了哈。我就不玩任何社交媒体(不过我曾经尝试过 G+,因为上面的那些人不是那种没有头脑的普通人,但显然从来没有去过任何地方),但这仍然让我感到大为光火。Bob:我们将发行的这一期《Linux Journal》主要关注儿童和 Linux 的方面,你有什么建议可以给年轻的程序员或计算机科学专业的学生吗?
Linus:
其实吧,这种问题你就最不该问我了,因为我从小就对数学和计算机感兴趣,在上大学之前,那些都是我自学的。我所做的这一切,都是我自动自发的,所以,我真的不知道该如何回答人们说的“我应该怎么做”时所面临的问题,因为我根本就没经历过你说的这些问题。Bob:咱俩第一次见面是在 DEC 展会上,那时候正是你第一次来访美国,Jon maddog Hall 和 DEC 资助了你。
Linus:
我想,实际上那是我第二次来美国。第一次来美国是去犹他州普洛佛旅行,与 Novell 讨论 Linux(为了 Novell 内部的一个项目,后来变成了 Caldera)。不过话说回来,是的,DECUS 的会展(是在新奥尔良吗?也许我记错了)是我最早到美国旅行的地方之一。Bob:我问你啊,当你回到赫尔辛基时,你是如何处理所有错过的电子邮件呢?因为你的回答让我很吃惊,从那以后,我就一直在引用你的话。你只是说你会把积压的电子邮件发送到 /dev/null。我被震撼到了,当时我问你:“如果你的收件箱里有重要的电子邮件怎么办?”你当时耸了耸肩,告诉我:“如果这封电子邮件真的很重要的话,对方还会再发一遍的。”可能是任何人给我最为自由的建议了。你现在还遵循这样处理电子邮件的理念吗?
Linus:
这还是有点道理的,但与此同时,我也改变了我的工作流程,这样旅行就不会像以前那样打乱我的工作了。所以,这些天来我经常努力使人们没有注意到我在出远门。如果我预计一两天之内我上网不便(世界上某些地方还会存在这种情况,尤其是如果你是一名潜水员的话),我会提醒人们。但大多数时候,我可以在世界任何地方工作。我试着(有时会失败)给我的行程安排时间,这样它们就不会出现在我的 Merge 窗口中,而这正是我收到最多 Pull 请求的时候。所以现在我把所有的电子邮件都留在云端,这使得我更容易在机器之间切换,这意味着,当我在旅行时,以及使用我的笔记本电脑时,不会再像以前那样下载所有电子邮件到本地机器时那样痛苦了。而且不只是我的电子邮件这样,事实上,几乎所有的内核开发最终都是通过 git 进行分发的,这也意味着它不再是我所使用的机器的问题,而且同步比我以前通过电子邮件单独处理补丁要容易多了。不过,我那个“如果这封电子邮件很重要,对方会重新发送的”的观点仍然有效。人们都知道,我差不多全年无休,如果我几天内没有对 Pull 请求做出反应,这仍然意味着它可能会被埋没在我那浩烟如海的电子邮件中,人们会给我一封后续邮件来询问我。但它实际上比过去少了很多。回想 1994 年的时候,我就没有那么劳累过度,离开一周的时间也没啥大不了的,但是,在接下来的几年里,情况变得越来越糟了,以至于我们以前基于电子邮件和补丁的工作流程,意味着我有时不得不跳过补丁,因为我没有时间来处理它们,我知道人们还会重新发送补丁的。那些快乐的日子已经过去了。BitKeeper 对我来说有很大的不同,即使不是所有的维护者都喜欢它(或使用它)。而现在 Git 意味着我不再通过电子邮件来获得成千上万的补丁,我电子邮箱里的收件箱也不像以前看起来那么槽了,因此,我更容易继续追踪了。顺便说一句,也许比“如果这封电子邮件很重要,对方会再次发送的”规则更重要的是我执行最久的另一条规则:如果我不必回复,那我就不回复。如果我收到一封邮件,而我的反应是别人可以处理它,我就会忽略这封邮件。一些忙碌的电子邮件用户会设置自动回复“抱歉,我会尝试最终收到你的邮件。”于我而言,我只是忽略了任何与我无关的事情。我这么做是因为我觉得我不能鼓励人们给我发更多的电子邮件。所以,我收到很多电子邮件,但实际上我根本就没有回复过。从一个非常真实的意义上讲,我的大部分工作就是掌控全局,知道发生了什么事情。所以我看到很多电子邮件,但我通常不会写太多。Bob:1995 年 5 月,在华盛顿特区 Linux 用户组会议上,由 Don Becker 组织的一次演讲中,你中途停了下来,向听众询问是否有人知道芬兰 - 瑞典男子曲棍球世界锦标赛的比分。作为在场加拿大人的象征,我可以向你保证,芬兰赢得了那场比赛。说到这个话题,芬兰最近赢得了世界青少年锦标赛,对你来说一定很有趣。或者,你会为美国欢呼吗?
Linus:
呵呵,曲棍球可是芬兰的国球啊(与瑞典比赛让它更个性化——我的母语是瑞典语,但说到国籍,我是芬兰人)!但我并不是体育迷。我迁到美国并不意味着我学会了棒球和足球,它只是意味着曲棍球不再是“我周围的人也关心”的内容了。Bob:我们中的许多人都很钦佩你在有关 Linux 技术决策的公开辩论中直言不讳的态度。其他人并不喜欢你直率的辩论风格。随着时间的推移,你认为自己会不会或多或少有了外交辞令?
Linus:
如果要说有什么变化的话,我想我应该是变得更安静了。我倒是不会认为我变得“更外交化”,但也许是更有自知之明,我正试图变得不再那么强势。部分原因是人们对我的解读方式和过去不同,它曾经是一个更加自由的环境,我们是一群极客,玩得很开心。而今天,这环境已经不太一样了。一方面,它再也不是针对个人了:我们现在有成千上万的人参与开发,这还是只计算实际发送补丁的人,而不是所有围绕补丁工作的人。一方面,人们“用另一种方式来解读我”的原因是,他们以 1994 年没有的方式认真对待我。这绝对不是对我当时没有收到重视的抱怨,恰恰相反,更让我抱怨的是人们现在对我太过认真了,我不能再说傻话、做傻事了。因此,我仍然会召集人们(尤其是公司)来做一些蠢事,但现在我必须知道,这可是新闻啊。而且我还会指责一些公司,可能十年后仍然会被人们记得。无论是否值得,它很可能都不值得。Bob:你还有什么要评论的吗?无论是公开的还是其他的方式?
Linus:
我从来就没想过要传播什么“信息”,所以……你懂的。参考链接:https://www.linuxjournal.com/content/25-years-later-interview-linus-torvalds