Linux 25岁:Linus Torvalds谈Linux的发展和未来

Linux的创建者深入讨论了内核、社区以及计算在未来几年将如何改变

Linux 25岁:Linus Torvalds谈Linux的发展和未来
Linux.

我最后一次有机会采访Linus Torvalds是在2004年,那时Linux内核的2.6版本刚刚发布。我当时在做一篇题为"Linux v2.6扩展了企业他的开场白是:“如果商用Unix供应商还没有开始担心Linux,那么他们现在应该开始担心了。”这些话被证明是多么有预见性。

超过12年的后期 - 计算世界的几个寿命 - Linux可以在科技世界的每个角落找到。现在是一个人项目现在涉及成千上万的开发人员。On this, its 25th anniversary, I once again reached out to Torvalds to see whether he had time to answer some questions regarding Linux’s origins and evolution, the pulse of Linux’s current development community, and how he sees operating systems and hardware changing in the future. He graciously agreed.

以下面试提供Torvalds对X86的未来,更改内核开发,Linux容器以及计算和竞争OS升级模型的班次可能会影响Linux下线。

Linux的起源在低资源环境中,编码实践必然精益。在大多数用例中,这不是如此。您认为哪些内核或操作系统的开发实践如何?

我认为你的前提是不正确的:Linux的起源肯定不是所有的低资源。386是当时你能买到的最强大的工作站,4MB或8MB的内存在今天听起来有点可笑的限制,你会说“一定很瘦”,但在当时它根本没有这种感觉。

所以我觉得即使是在25年前,我也有足够的内存和资源可以使用,而且一点也不受硬件的限制。硬件也在不断改进,所以随着Linux的发展——也许更重要的是,随着您可以使用Linux进行工作负载的增长——我们仍然没有感到硬件资源的限制。

从发展角度来看,我认为事情已经改变了这一切。如果有的话,我认为这些日子当人们试图在一些真正的嵌入式环境中放入Linux(物联网)时,我们今天实际上有开发人员比25年前的内核开发商感到更受约束。它听起来很奇怪,因为这些物联网设备往往比我开始的原始386更强大,但我们已经成长(很多),人们的期望也增长了。

硬件限制尚未成为影响开发实践的大问题,因为硬件随着我们的发展而增长。但我们肯定有其他影响我们如何做事的事情。

+相关:回顾Linux的旅程+

Linux是“严肃的业务”的事实显然是改变你的工作方式 - 你有更多的规则,需要更加深思熟虑和仔细。纯净的人也涉及到彻底改变了你如何发展的事情:当有几十个开发人员而且我们都可以通过电子邮件发送给彼此的补丁,事情不同,当有成千上万的人涉及时,我们显然需要源控制管理和Git的整个分布式模型。

我们的发展模式在四分之一世纪发生了很大的变化,但我认为这不是因为硬件限制。

您是否在今天与20年前的核心黑客看到了任何基本差异?

要做到内省和正确的处理是非常困难的。我不认为内核开发者是完全不同的;我认为项目本身的规模和成熟度是更大的区别。

二十年前,内核要小得多,开发人员较少。由于这个问题可能会更容易发展的程度:在周围包装的思想较小,并且更容易脱颖而出,并使(相对)与一个很大的新功能。

今天,找到尚未完成的一些大功能越难 - 内核是一个相当成熟的项目,毕竟。有很多开发人员已经存在了很长时间,所以它更难以脱颖而出。与此同时,我们为新人提供了更多的基础设施,以便参与其中,并且有许多司机和硬件支持您能够参与其中,所以在其他方面,事情已经更容易了。毕竟,今天你可以购买一个覆盆子PI,没有非常多的钱,并且参与做20年前的事情就是甚至不可能的。

改变的另一件事显然是20年前,您可以纯粹参与Linux纯粹用于技术挑战。这些天,它很容易被视为职业:这是一个有很多公司所涉及的大型项目,并且在这种感觉中,市场肯定会自然地改变事物。但我仍然认为你最终必须是一个漂亮的技术思想的人进入内核编程,我不认为种类的人已经改变了,但它有可能意味着那些20年前就走了,“我不能修补玩具项目,然而有趣的可能是,“现在看到Linux作为一个地方不仅在技术上有一个有趣的挑战,也是一种工作和职业。

您是否查看高级和解释语言的开花增长以及相关的编码方法,作为绘制核心内部OS开发的人才开发人员?

一点都不。我认为它主要是扩大市场,但那种对低级细节和硬件实际互动感兴趣的人仍然会倾向于内核等项目。

更高级别的语言主要反映了问题空间(和硬件)扩展的事实,而C的语言仍然与系统编程相关(但是C已经发展过多年),显然很多C绝对不是正确答案的地区,永远不会。这不是一个或情况(它不是零和游戏);这只是关于各种问题和资源限制的思考。

您认为未来的X86是什么?

我对一个水晶球并不多,但显然是“小机器长大”的大型模式,以及与PC如何长大的所有历史比较几乎超越了它。每个人都在看嵌入式和手机,并看到长大而且PC市场不会产生。

这是一个明显的故事线,它让很多人对整个x86-vs.-arm的东西兴奋:“手臂要长大并取代x86。”

与此同时,也有一些相当大的差异。电脑长大和接管的一大原因是,它是如此容易开发,不仅你有整整一代的开发人员成长与家用电脑(尤其是个人电脑),甚至当你开发一个大机器,电脑最终取代,你经常使用电脑。后端机器可能是大而严肃的机器,但前端通常是一个pc级工作站。

当PC增长时,它们很容易移位更大的机器,因为您拥有习惯于PC环境的所有这些开发人员,其实际上是具有与其最终部署环境相同的开发环境。

这种模式没有持有整个x86-vs臂的比较。事实上,它正在逆转:即使您正在为较小的臂生态系统开发,您仍然几乎肯定使用PC(成为Linux,MacOS或Windows)进行开发,而且您只是部署在手臂。

在那种非常真实的意义上,在历史比较与x86 pcs接管计算世界的比较中,手臂实际上看起来更像是被移位的大硬件,而不是流离失所的PC。

这是什么意思呢?我不知道。我没有看到手臂成长,直到它足够自足,似乎并没有发生。我现在一直在等待它,谁知道它实际上发生了。

我们可能会遇到这样的情况:针对不同的利基市场,你最终会得到不同的体系结构:用于消费电子产品和嵌入式的ARM,用于PC/工作站/服务器市场的x86。随着IBM永远支持自己的体系结构(嘿,S/390仍然存在,而且功能似乎也不会消失),现实可能没有Thunderdome体系结构(“两个体系结构进入,一个体系结构离开”)那么令人兴奋。

电脑市场不是疯狂而疯狂的东西。是的,智能手机肯定震撼了东西,但那既现在正在成熟。

你怎么看待目前正在进行的用像Rust这样的语言开发OS内核的项目(吹捧它具有C所没有的内置安全性)?

这根本不是一个新的现象。我们已经拥有使用Modula-2或Ada的系统人员,我不得不说Rust看起来比任何一种都好多了那些两个灾难。

我不相信OS内核会生锈(尽管系统编程比内核多得多),但与此同时,毫无疑问C有很多限制。

对任何想要从头开始建造自己内核的人,我可以祝福他们运气。这是一个庞大的项目,我认为您实际上并不是解决您选择的编程语言的任何一个真正的硬质合脉问题。大问题往往是关于硬件支持(所有这些驱动程序,关于不同平台的所有奇怪细节,内存管理和资源会计中的所有微妙之处),以及任何认为语言选择的人都会简化很多事情非常失望。

对您来说,驱动内核开发的最大优先级是什么:支持新的硬件或CPU特性、改进性能、增强安全性、启用新的开发人员行为(比如容器技术),或者其他什么?

我个人呢?实际上,我最担心的是“开发流程”问题,而不是直接的代码问题。是的,我仍然会涉及一些领域(主要是VFS层,偶尔也会涉及VM),在这些领域我关心特定的性能问题,等等,但实际上,这更多的是我的业余爱好,而不是我现在的主要工作。

我承认仍然找到新的CPU架构很有趣 - 这就是为什么我首先启动Linux,毕竟,它仍然是我追随的,喜欢看到有趣的新事物。我非常兴奋地看到事务内存功能例如,即使炒作似乎已经死了很多。

但实际上,我实际上工作关键在于开发过程本身和维护内核,而不再是代码的特定领域。我阅读电子邮件,我请求,我把事情转移到正确的开发人员,我试着确保发布,人们可以信任我和内核一直在那里。是的,回复记者的邮件也是我的工作。

我(关于)内核开发的主要模型是确保我们得到所有正确的细节,我们有正确的人在正确的事情上工作,没有任何不必要的事情阻碍开发。如果过程运行良好,相关人员也关心质量,那么在某种意义上,最终结果会自行解决。

是的,这与25年前的情况非常不同,显然是。然后我自己写了所有代码,写作代码是我所做的。如今,我编写的大部分代码实际上是电子邮件中的伪代码片段,在讨论一些问题时。

您认为还需要做些什么来改进Linux容器?

我实际上在等他们更广泛使用 - 现在他们主要是一个服务器端,很多大公司用来管理他们的工作负载,但是在用户发行版中使用它们存在所有这些噪音,以及我真的认为,这种使用是你最终发现很多新问题并抛光了结果。

服务器人员习惯于用一些特定于他们特定负载的怪癖来解决他们特定的问题。相反,一旦你在桌面/工作站环境中使用容器,应用程序发行等都依赖于它,并且每个人都受到影响,你就必须正确处理它。这就是为什么我仍然坚信桌面作为一个非常重要的平台:它是一种通用的东西,您无法解决特定负载的一些问题。

我实际上希望容器能够从云中脱离云,所以要说,到处都是。我并不完全相信将实际发生,但显然有很多人都在努力。

在过去的几年中,我们已经看到微软、谷歌和苹果以前所未有的速度推出了新的桌面和移动操作系统。您对桌面和移动操作系统越来越快的发布周期有什么看法?

嗯,在内核中,我们显然是我们自己的大释放模式发生了大约10年前的变化,我们从多年释放(2.4到2.6)到更多的滚动发布(每两个月左右的新发布,​​而且更多“持续改进”而不是“大功能”)。

有关:
12 4.
第1页,共2页
工资调查:结果是