在刚刚结束的全球开源峰会 GOTC 2021 上海站上,Linux 内核与 Git 创造者 Linus Torvalds 接受了 Linux 基金会执行董事 Jim Zemlin 的独家专访。时逢 Linux 内核诞生三十周年,双方从 Linus 维护内核 30 年来的心路历程开始,聊到中国开发者应该如何参与内核贡献。期间的 Linus 也是畅所欲言,金句频出。
当聊到目前 Linux 内核开发面临的主要挑战时,Jim 认为适配 x86、ARM、RISC-V 等日新月异的芯片架构对 Linux 来说是个巨大的挑战,而 Linus 竟表示:“这对我们来说并不算太大的困难,而是搞内核开发的一种乐趣”,“如果硬件开发的速度变慢,这反而是我担心的一个问题。我们希望能有和传统硬件生态一样多的,令人兴奋的新领域可以合作。”可谓是自信满满。
此外,Linus Torvalds 访谈期间也“真情流露”,坦言希望自己能够看到下一个 30 年 Linux 内核的发展,因为他坚信那个时候的硬件技术会发生翻天覆地的变化,而 Linux 将会见证这一切。
以下是完整采访内容:
Jim:大家好,我叫 Jim Zemlin。我是 Linux 基金会的执行董事,Linux 的创造者 Linus Torvalds 将和我一起加入今天的论坛。
Linux 基金会真的很高兴参加今天的活动,今天是一个特殊的日子,因为我们正在庆祝 Linux 的三十周年。这是一段多么令人惊叹的旅程。Linux 是计算机史上最成功的开源项目,也是计算机史上最成功的软件。Linux 不仅实现了惊人的创新,还真正使得开源成为了任何技术产品或服务的主流开发方式。中国也是全球开源生态系统的重要组成部分,正因如此,我们今天很高兴来到这里。
在 Linux 项目诞生 30 周年之际,我想通过问 Linus 一个最直接的问题来开始我们今天的对话 —— “当你刚开始做这件事的时候,你认为这真的会改变整个科技行业吗?”
Linus:你好,Jim,显然不是。当我三十年前刚开始的时候,Linux 实际上只是一个我个人兴趣使然的项目,用来了解我刚买的电脑,并没有什么所谓的“大计划”,甚至从没期望会有很多人加入我。当我第一次公开 Linux 内核代码时,它实际上更像是对我所做的事情的一种审视,这很有趣。也许当时其他人也对它产生了兴趣,而且花了一段时间研究它 —— 我的意思是,人们花了一段时间才真正开始参与进来,这实际上让这个项目对我来说变得更加有趣 —— 它从一个只是我个人的私人项目变成了一个不仅仅是关于技术的项目,它还关于沟通,关于合作。多亏了当初公开它的代码,才使得它真正地起飞。
Jim:是的,我认为关于 Linux 或者任何开源项目的一个很酷的事实是,来自任何地方的任何人,不管你在哪里生活或者工作,都可以参与到这个项目的建设。任何人,不管出于什么原因,都可以使用这个软件去创造任何他们认为有趣的东西。这当然也是开源能够取得成功的一大部分原因。那么关于未来,Linux 现在已经出现在汽车、嵌入式系统和各种各样的地方,你认为未来的生活会是什么样的?
Linus:实际上,你所描述的这种“未来”并不在我的工作范围内考虑。对我来说,“未来”实际上就是两个 Linux 内核版本号的距离,看看未来的四到六个月,看看它本身。比如有哪些迫在眉睫的问题是我们想要解决的。因为通常情况下,操作系统的未来既不是由我决定的,也不是由其他开发人员决定的,它取决于硬件的改进,也取决于新的应用场景。所以我其实不想说我们在朝着什么方向努力。我想走到下一个三十年,因为我希望到那时候,应用场景和硬件都将会发生翻天覆地的变化。到那时,Linux 将会适应一个全新的世界,我们今天所做的任何计划都赶不上那个时候的变化,甚至未来十年的变化相比三十年来说都是不值一提的。
Jim:我想这正是这个项目最为成功的一个方面,你专注于为硬件创新或新用例方面的任何东西创造最惊人的支持,专注于创造世界上最伟大的操作系统内核,这令人印象深刻。当然,说到成功,总是那么的令人印象深刻,那么你认为 Linux 或开源软件目前面临的挑战有哪些?
Linus:就 Linux 来说,我认为最大的挑战之一是,如何减缓项目的衰落。虽然现在看起来没有什么不同,这是因为我们已经习惯了过去三十年来这样一个事实:硬件正在飞速发展。而现在不一定了。我的意思是说,硬件的发展在某种意义上一直在萎缩。例如,智能手机现在是 Linux 需要支持的一个大场景。虽然目前智能手机领域几乎每年都有新功能出现,但当人们不再需要手机硬件每年都有更多的新功能时,我认为局面就会变得完全不同,这将改变我们开发的方式。特别是对 Linux 开发来说 —— 因为我们对硬件的变化反应是如此之大。这可能是我们接下来需要迎接的最大变化,就是硬件环境发展速度的变化。正因为如此,我不知道这将会对其他领域造成多大影响。
Jim:看到现在的半导体技术正在快速地转移和扩张,各种新的芯片架构层出不穷,确实令人惊讶。从英特尔 x86 架构、ARM 架构再到 RISC-V 架构,而 Linux 在每一个架构生态中的工作是多么的一致,就像其他任何的架构生态一样。这里面有什么秘诀吗?或者说有什么秘密?
Linus:我认为最重要的是,对于我和许多其他的内核开发人员来说,所有这些不同的架构,所有 SMP 体系架构性能的巨大变化,都不算是什么需要努力克服的挑战,相反它们是让做内核开发变得如此有趣的原因。事实上,我们几乎完成了对 30 种不同架构的支持工作,这也是我们做 Linux 内核的乐趣之一。如果硬件开发的速度变慢,反而是我担心的一个问题。我们希望能有和传统硬件生态一样多的,令人兴奋的新领域可以合作。我真的认为拥有多种架构不仅对我们来说是一个有趣的挑战,这也是 Linux 内核变得非常稳固的原因。因为在试图支持很多不同的硬件架构时,我们必须重新构建我们自己的内部代码,以便使得它更加灵活。显然,这是一项很大的工作,也正是这些工作最后让 Linux 能够如此成功。
Jim:是的,我认为这很有趣。你知道,Linux 的多架构支持创造了这种正反馈循环,半导体制造商和创造新型芯片的人可以更快地实现价值。因为 Linux 非常稳定,而且支持多种架构,这就让很多更有趣的硬件开始出现,因为它们可以更快地投入市场。所以我认为你将在很长一段时间内接触到很多有趣的新硬件。
我想简单问一个关于中国的问题,你知道现在有越来越多的中国开发者想加入 Linux 内核项目。你当然知道开源是欢迎任何人参与贡献的。对这些中国开发者来说,当参与像 Linux 这样的项目时,开发人员应该具备什么样的技能和态度,需要什么样的做法和工作模式?
Linus:嗯,我们实际上已经试图避免对你“应该做什么”和“不应该做什么”有任何非常严格的规定。而不同的地区还是会有不同的问题。我认为,中国和亚洲地区其他地方的一个明显问题就是语言障碍。Linux 内核社区在传统上是通过电子邮件,使用英语沟通开发出来的。因此,当你参与到任何新的领域时,最大的问题之一就是沟通。当然,我也不是想说现在每个人都应该努力学习英语,以便参与内核社区。
但这确实是一个客观存在的,需要解决的问题。例如,我们需要寻找的东西之一可能是一种翻译器,或是一个善于沟通并能与双方沟通的人,充当传统 Linux 内核社区与外界沟通的中间人。我相信在中国一定也有一个非常活跃的内核社区,尽管我们可能因为语言障碍看不到。所以说,语言问题是像中国这样存在独有的文化语言的国家,在参与社区贡献时主要的问题之一。
另一件你显然需要具备的技能,就是关于 cpu 架构的深厚技术知识。因为内核开发相比其他软件开发领域来说有很大的区别。从某种意义上说,内核更多的是关于硬件的开发,而不是其他软件项目。我认为这是一个垂直的领域,中国肯定也有很多专业的开发者与他们自己的 cpu 架构正在进行着相关的研发工作。但如果你想成为一名 Linux 内核开发人员,你必须非常清楚这一点 —— 你必须对硬件感兴趣,准确来说是 CPU。因为大约一半的内核代码实际上是 CPU 和周围其他硬件的驱动程序。
Jim:是的,这确实需要大量的学习,需要专注于硬件的高难度技术。当然,这对刚开始的开发者来说似乎有点吓人。那么对于当前和未来的中国开发者,关于如何参与 Linux 或开源,你能给他们什么鼓励的话?
Linus:我认为最重要的是,不要试图一次做所有的事情 —— 从小事做起,从你个人感兴趣的事情开始。我认为任何人都可以提供一些有价值的东西,哪怕你并不确定。我的意思是,就像当年我自己刚开始做这件事时一样。它真的不一定是你认为你能改变世界的东西,让它成为你充满热情的东西。你要真的认为你可以带来一些东西,即使它看起来很小,或许在大局中也不太重要,但这就是你应该如何开始的部分,这就是你进入任何项目的方式 —— 无论是内核还是其他开源项目。总之,找到你关心的部分,把想要真正提高自己当成一种愿望,这应该成为你学习 CPU 如何工作的动力。但你也要想办法让别人意识到你的技能组合。这就是你如何成长的方式。
Jim:我同意,这是很好的建议。我想感谢你今天加入我们,Linus,你知道已经三十年了,我甚至很难想象,你已经连续三十年做同样的工作了。你曾经稍微停下来写了 Git,这本身就令人印象深刻,而每三个月发布一次 Linux 内核版本,这里面需要的毅力更是惊人。和你一起工作是我的荣幸,同时与在座的所有中国开发者见面也是我的荣幸。你证明了世界不是一个零和游戏(zero-sum game),靠的是共同努力。你可以改变世界,你是我们所有人的光辉榜样,所以谢谢你。“Now you're embarrassing me, but thank you.”
谢谢大家。