Linus Torvalds: Linux 之旅既有趣又幸运,我不敢奢望精通内核的全部

  • 木环

2017 年 7 月 5 日

话题:Linux语言 & 开发架构

2017 年 6 月,Linux 基金会首次在中国召开 LinuxCon,有幸见到 Linus Torvalds 本尊,从进入媒体视线、访谈交流到离开的三个多小时内,Linus Torvalds 一直面带微笑。

在我看来,这种微笑不是职业训练出来的,而是一个纯粹技术人发自内心的表达。这位名扬 IT 界二十余载的神级人物,想必早已过了恃才傲物、口沸目赤的阶段,内心充盈的更多是工作中获得的欣慰与肩负的责任。

在他提到不想关心 Linux 技术以外的任何事情、一周不写代码就坐立不安的时候,我似乎看见了那个 11 岁学习 BASIC 并从此再也没有离开自己所爱的大男孩儿,拥有一颗不老心的 Linus Torvalds 依然葆有着他的技术好奇。

以下文字由 InfoQ 主要整理自 LinuxCon 大会上的媒体访谈及 Linus Tourvalds、Dirk Hohndel 的交流环节。

除了技术的其他一切工作都交给基金会打理  

创建之后的 Linux 系统越做越好并受到广泛关注,Linus Torvalds 于 2003 年决定离开当时的公司、加入开源码发展实验室以专职投入到 Linux 内核的工作,后来 Linux 基金会正式成立。

Linus 只想做技术,不想处理技术以外的事情。“如果你是一名工程师,很有可能你只想处理自己感兴趣的技术问题,其他一切事情你都想移交给别人来处理。”

正如所愿,这就是 Linus Torvalds 和基金会的分工,基金会负责接管许可证、专利、法务等问题,处理电话、邮件和文件准备等工作,事无巨细。LinusTorvalds 说他很庆幸自己不需要担心商业和管理的问题,他只要能领到工资不担心养孩子上学的问题就很好。

Linux 基金会执行总监 Jim Zemlin 称这是正确的模式: Linux 操作系统标准价值 103 亿美元;Linux 基金会拥有 Linux、Kubernetes、Cloud Foundry、Xen 等项目,以及 CNCF 基金会、Node 基金会等,整体所写的代码价值标准为 145 亿美元;由此估算 Linux 的经济价值占据整体价值 71%,不愧为开源项目鼻祖。

Linux 系统的集中式管理是否可持续?  

在问及现在是否还编写 Linux 内核的代码时,Linus Torvalds 坦言现在做的项目管理的工作,他有一小撮顶级开发者共同协作,当有新的任务时,他知道应该把任务分配给谁。比起代码编写这样细节的问题,他需要更加关心的是 code flow 和 process,担当起架构师的角色,关心代码稳定和如何改进更高层次更抽象的工作内容。Linus 强调到内核维护小组实力超群,由数十位顶级技术人员组成。Linux 内核每三个月(70 天左右)发布 1 个版本,即便在不同国家出差,Linus 也要克服时差按时发布。

VMware 开源技术总监 Dirk Hohndel 问到,这样开发模式是否是可持续性的?Linus 笑着回答如果当前团队中有程序员变老变胖不想继续做下去的话也没有问题,因为会有新的程序员补充进来。

Dirk 又追问 Linus 道,在内核不断提升迭代的过程中,是不是你具有着绝对的决定权?Linus 回答到“不是的”,他发自内心地鼓励大家按照自己的需求建立 fork,如果最终这样的想法有良好的结果做证明,其精华部分就会被吸收到 Linux 内核项目中。Linus 表示虽然大部分 fork 不是很优秀,但是有一小部分是好的。Dirk 对此总结到,当今的分支发展再吸收代码的模式其实反映的就是 Linus 本人或其团队的决定性。

创造 Git 是意外之喜,却比 Linux 更受欣赏?  

Linus 曾在一次外媒访谈中表示,创建 Git 从来不在他的计划内,版本管理系统(和数据库)是他最不感兴趣的方向,甚至带着一种本能逃离式的讨厌。曾经的 BitKeeper 出现令他眼前一亮,本地可以留有一份源代码,很好地管理了分布式团队中“谁可以修改代码”的权限问题。2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。Linus 不想倒退回到没有高效版本管理的时代;而除了 BitKeeper 之外,没有其他软件可以做到更好的远程协同;并且 Linus 还很在意代码的完整性和整个管理流程。为此,自己动手研发一个软件成为了当时唯一的解决方案。

基于 BitKeeper 的使用经验并结合了团队的诉求,Linus 花费数周创造了 Git 的初始版本,该系统定位目标特色是:

  • 速度
  • 简单的设计
  • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

十二年来,Git 围绕当初设定的目标不断迭代,并且深受喜爱。

然而,在 Git 被创造出来之后的前三四年,Linus 称业界对它并不是很认可,因为这种版本管理方式与大家已经习惯的 SVN 方式相差很大,当时普遍反响是 Git 太难用了。

但是慢慢地,圈内的声音发生了变化,Linus 认为大家应该开始接受并适应了 Git。

而几乎每个开发者都会使用的 GitHub 则使用 Git 为核心技术,于 2007 年问世。一个有趣的故事是,Linus 本人欣赏但不使用 GitHub,并认为 GitHub 还有可以提高改善的地方。在一次 linux.com 的采访中,Linus 曾经表示 GitHub 平台不适合内核开发,功能设计依然比较局限。

Linus 告诉记者们,“我女儿的同学们在听说她的父亲是 Git 的创作者之后非常兴奋,这种兴奋程度要比说有个 Linux 创作者的父亲更高。”Linus 总结到,对于现在的 CS 学生们,Git 似乎是个更棒更有趣的产品;这或许代表着年轻一代更熟悉更欣赏 Git。

Linus 对 Git“更走红”的现象表示惊讶,一方面是因为 Git 最初只是为 Linux 内核开发者们而建;另一方面 Git 只花费了十天(相比常年深耕 Linux 系统)。

如果重来一次,你会做什么?  

Linus 表示自己曾经接触过硬件,但是这很危险,他称自己对硬件“破坏力很强”。换而言之,Linus 很自知地没有选择在硬件的道路上继续走下去。

不过,他对现在的 Raspberry Pi、FPGA 电路板很感兴趣,如果重来一次又不可以选择编写 Linux 的话,他会考虑基于硬件开发版的编程。

坚持不意味着得到,去做你喜欢的事情吧  

Linus 深耕 Linux 代码二十五年如一日,InfoQ 问到 Linus,是否只要坚持到最后大概率而言都会收获一些成果?Linus 表示他非常想告诉大家“坚持就是胜利”,但是很遗憾的是事实并非如此。最重要的是找到自己感兴趣的事情去做。这二十五年来做 Linux 系统,总会有不断新的挑战出现,所以 Linus 称这些年非常有趣并不是充满重复的工作。

那么为什么 Linus 可以做这么久?

最靠谱的答案也许就是 Linus 所说的他自己深深喜欢代码,除了代码之外的事情,他都不希望考虑或参与,比如许可证专利,与外界公众的沟通,或者怎么保持盈利以养家糊口;很多技术人都是这样的,他们希望可以心无旁骛地做技术工作,不希望被无关的琐事打扰。

除了尽可能地缩小和聚焦自己的工作范围,兴趣还可以让人更主动地工作。Linus 说他也会度假很喜欢潜水,但是一旦在外面“浪”过一周,他就“心痒痒”地想回去编程。

Linus 非常强调自我驱动,他强调一定要知道自己内心想做什么,什么是真正让你感兴趣的事情。比如,如果你对某开源项目感兴趣,那你可以去阅读学习源代码,但是要警惕成为专家的想法:Linux 内核那么大,没有人了解全部、没有人是专家,Linus 称自己也不是面面俱到。

写在后面  

“Linux 系统和您个人所取得的成功是一种偶然还是必然?”

Linus Torvalds 回答说,这份成功的背后既有必然性也有偶然性。其中偶然性,是在于时机刚刚好。如果 Linux 出现再早几年就可能赶不上互联网的发展,没有了网络传播、社区协作也就很难取得成果。如果再晚几年,可能成功的就是另外的操作系统。也就是说,必然性在于大家对开源操作系统的需求。而 Jim Zemlin 则表示“Do the right thing”,并且成功需要有良好的模式。

正式采访结束后,Linus Torvalds 立刻被媒体们团团围住,他依然保持微笑地与大家交流。在征求 Linus 签名时,他有些不好意思地说“我的签名很丑”并在名字下面附上了“the ugliest signature ever”。我顺势询问是否有一句话可以送给开发者们时,他迟疑之后说自己不敢给出这样庄重的建议;但是他表示他认为做自己喜欢的、并对其他人也有帮助的事情很重要。

随后,中国开源软件推进联盟主席陆首群走进采访室,和 Linus 见面拥抱聊天。陆先生从 20 世纪九十年代就开始推动包括 Linux 基金会在内的开源软件组织在中国的发展。

二十年之后的开源世界是怎样的?

Jim Zemlin 称他认为会有更多的中国开发者成为开源界的领军人物、核心贡献者,过去一年 Linux 基金会旗下成员数量有了 400% 的增长;现在的 LinuxCon 是将硅谷的人请到中国来演讲,那么二十年之后应该希望可以邀请中国技术人去美国分享。不过,Dirk 表示英文很重要,他建议大家一定要勇于用英文表达自己。

参考文章

https://www.linux.com/blog/10-years-git-interview-git-creator-linus-torvalds

http://mp.weixin.qq.com/s/W9xly9GZiR6er_ttvC0y6Q

Linux语言 & 开发架构