来源A conversation with Linus at LinuxCon Japan
Linus Torvalds rather famously does not like speaking in public, so his conference appearances tend to be relatively rare and unscripted. At LinuxCon Japan, Linus took the stage for a question-and-answer session led by Greg Kroah-Hartman. The result was a wide-ranging discussion covering many issues of interest to the kernel development and user communities.
李纳斯(Linus)是出了名的不喜欢在公共场合演说,所以他出现在大会上比较少见,也无迹 可寻。在LinuxCon大会日本站,李纳斯回答了格雷格·克洛·哈特曼(译者注:Greg Kroah-Hartman,他是Linux内核稳定分支的维护人)的提问。这次访谈的范围很广,涉及到了很多内核开发和用户社区的有趣问题。

The opening topic was somewhat predictable: what was the reasoning behind the switch to 3.0 for the next kernel release? The problem, said Linus, was too many numbers which were getting too big. A mainline kernel release would have a 2.6.x number, which would become 2.6.x.y once Greg put out a stable release. Once distributors add their build number, the result is an awkward five-number string. Even so, we have been using that numbering scheme for about eight years; at this point, the “2.6” part of a kernel version number is pretty meaningless.
开 场第一个话题早在预料之中。下一个内核版本为什么要切换到3.0?李纳斯说,这个是因为目前的版本号太长太复杂了。当前的内核版本是2.6.x,格雷格如 果发布一个稳定版本,就变成2.6.x.y。如果发行商再添加他们自己的版本号,那就变成5个数字,这就比较难看了。即便如此,这个版本号规则也用了八 年。当前版本号中的“2.6”已经没有任何意义了。
Once upon a time, Linus said, making a change in the major number would be an acknowledgment of some sort of major milestone. The 1.0 kernel was the first to have networking, 1.2 added support for non-x86 architectures, 2.0 added “kind of working” SMP support, and so on. We used to think that incrementing the major version number required this kind of major new feature, but, in the 2.6.x time frame, we have stopped doing feature-based releases. The current development process works wonderfully, but it has caused the 2.6.x numbering scheme to stick around indefinitely. As we approach the 20th anniversary of the Linux kernel, we had a good opportunity to say “enough,” so that is what Linus did.
李纳斯说,以前,主版本号的变化代表了一 些重要里程碑的实现。1.0内核第一次支持网络,1.2加入了对非x86体系结构的支持,2.0加入了“勉强能用”的对SMP的支持,等等。我们习惯于认 为,主版本号的提升就必须伴有重大功能的实现。但是,在2.6.x时代,我们不再因为功能实现而发布版本。当前的开发模式工作得很好,但是它使2.6.x 的版本号命名规则变得模糊不清。现在马上要到Linux内核发布的二十周年了,这是一个好机会去说,“够了”。所以李纳斯就这么做了。
“3.x” will not stay around forever – or even until the kernel is 30 years old; Linus said he expects to move on around 3.20 or so.
Linus noted that some people were thinking that 3.0 meant it was time to start with big new features (or removal of old code), but that’s not what is meant to happen. It is just a number change, no more. Trying to have the kernel be stable all the time has, he said, worked very well; that is not going to change.  Greg was clearly happy with this change; he presented Linus with the bottle of whiskey he had promised as a token of his appreciation. After debating opening it on the spot (Greg brought paper cups too, just in case), they decided it might be best to finish the discussion first.
李纳斯指出,有些人认为,3.0意味着该加入一些重大的新 功能了(或移除老的代码),但事实不是如此。这只是一个数字的变化,没有其他意思。他说,“一直保持内核的稳定”这种开发模式工作得很好,所以不会改变。 格雷格对这种变化很高兴,他送了李纳斯一瓶威士忌以示感谢。他们先是争论了要不要当场打开这瓶酒(格雷格还带了纸杯,以防万一),后来决定最好先完成这次 讨论再说。
Greg asked: what recent changes did he like the most? Linus responded that he tends to like the boring features, things that people don’t notice. Performance improvements, for example; he called out the dcache scalability work as one example. There is no new interface for users, it just makes the same old stuff go faster.
格雷格问:最近的内核改动中,你最喜欢哪些?李纳斯说,他倾向于喜欢枯燥乏味的功能,那些东西一般人都不会注意到。性能的改进,他举了“缓存伸缩性(cache scalability)”的例子,这个不会改变用户接口,只是使一些旧代码运行得更快。
Features and bloat
Is the kernel, as Linus famously said on a 2009 panel, bloated? Linus acknowledged that it is still pretty big; it couldn’t possibly run on the machine that he was using to develop it 20 years ago. But even phones are far more powerful than that old machine now, so nobody really cares. The kernel has been growing, but that growth is generally necessary to meet the needs of current hardware and users.
是 不是如李纳斯在2009年所说,内核的功能有点臃肿?李纳斯回答说,内核确实太大了,在他20年前用来开发内核的机器上,很有可能无法运行。但现在,就算 手机也远比老计算机强大,所以没人会真的在乎这个。内核一直在变大,但是这种增长是必要的,它满足了当前的硬件和用户的需求。
What about the addition of features just for the heck of it – new stuff that is not strictly driven by new hardware? Is that something that we can still do? Linus said that there are certainly developers working on features with no current users, thinking five years or so into the future. Sometimes that work succeeds, sometimes we end up with code that we regret adding. Linus said that he is increasingly insisting on evidence that real users of a feature exist before he is willing to merge that feature.
关于那些只是为了好玩而加入的功能——这些新东西的研发,严格来说,都不是由 硬件的需求来驱动的。现在我们还能加入这类功能吗?李纳斯说,当然还有这样的开发人员,他们在做一些目前没人用的功能,他们看得更远,提早了大约五年。有 时候,他们会成功,有时候会后悔加入这些代码。李纳斯说他越来越坚持这样的观点,只有当一个功能真正有人用的时候,他才会考虑合入这个功能。
Greg asked about control groups, noting that a lot of kernel developers really object to them. Linus responded that control groups were a feature that did not initially have a whole lot of users, but they do now. Control groups were initially added for certain specific server setups; few others had any interest in them. Developers were unhappy because control groups complicate the core infrastructure. But control groups have begun to find a lot of users outside of the original target audience; they are, in the end, a successful feature.
格雷 格问了“控制组(control groups)”,提到很多内核开发人员反对这个功能。李纳斯回答说,“控制组”一开始没多少人用,但现在有很多人在用。“控制组”一开始是为了某些特定 的服务器而加入的,当时几乎没有其他人感兴趣。开发人员不喜欢这个功能,因为它使Linux整体框架变得更复杂。但这个功能逐渐在其初始用户之外找到了知 音,最终成为一个成功的功能。
Symmetric multiprocessing (SMP) was also, at the beginning, a feature with few users; it was a “big iron” feature. Now we see SMP support used across the board, even in phones. That illustrates, Linus said, one of the core strengths of Linux: we use the same kernel across a wide range of platforms. Nobody else, he said, does things that way; they tend to have different small-system and large-system kernels – iOS and Mac OS, for example. Linux has never done that; as a result, for example, there has never been a distinct cut-down kernel for embedded systems. Since the full kernel is available even at that level, Linux has been a real success in the embedded world.
对称多处理(SMP)也是这样,一开始没有多少人用。它是一块很大的功能。现在我们看到了对称多处理运用 在各种板子上,甚至手机上。李纳斯说,这表明了Linux的一个核心优势:我们在各种平台上使用同一个版本的内核。他说,没有其他人能做到。他们倾向于区 分小系统内核和大系统内核——比如iOS和Mac OS。Linux不会这么做,比如,从来没有专为嵌入式系统准备的瘦身版内核。因为在嵌入式系统这个领域,完整的内核也适用。Linux在嵌入式领域非常 成功。
Embedded systems, world domination, and the next 20 years
Continuing with the topic of embedded systems, Greg asked about the current furor over the state of the ARM tree. Linus responded that developers in that area have been a bit insular, solving their own problems and nothing more. That has resulted in a bit of a mess, but he is happy with how things are working out now. As a result of pushback from Linus and others, the ARM community is beginning to react; the 3.0 kernel, Linus thinks, will be the first in history where the ARM subtree actually shrinks. The embedded world has a history of just thinking about whatever small platform it’s working on at the moment and not thinking about the larger ecosystem, but that is changing; this community is growing up.
继续嵌入式系统的话题。格雷格问了关于最近对于ARM内核的争吵。李纳斯说,这个领域的开发人 员有一点点狭隘,他们只解决他们自己关心的问题,不干其他的。这会导致一些混乱,但他很高兴看到事情有所进展。在他和其他人的推动下,ARM开发社区开始 响应。李纳斯认为,3.0内核会是史上第一个ARM代码不增反减的版本。嵌入式开发人员过去只会考虑他们在用的小系统,而不会顾及整个Linux的生态系 统,但情况正在改变,这个社区也在成长。
Many years ago, Greg said, Linus had talked about the goal of “total world domination” and how more applications were the key to getting there. Is that still true? Linus responded that it’s less true than it used to be. We now have the applications to a large degree. He also no longer jokes about world domination; it was only funny when it was obviously meant in jest.
At this point, Linus said, we are doing really well everywhere except on the traditional desktop. That is kind of ironic, since the desktop is what Linus started the whole thing for in the first place – he wanted to run it on his own desktop system. We have most of what we should need at this point, including a lot of applications, but the desktop is simply a hard market to get into. It’s hard to get people to change their habits. That said, we’ll get there someday.
目前,我们在 各个领域都做得很好,除了传统的桌面应用。这个有点讽刺意味,因为李纳斯最初开发Linux就是作为桌面应用的——他希望它能在他的桌面系统上跑起来。现 在该有的我们都有了,包括很多应用程序,但是桌面系统市场是很难进入的,因为用户习惯很难在一朝一夕改变,我们只能说在将来的某一天能实现这个目标。
Can we do anything in the kernel to further that goal? Linus responded that he’d been thinking about that question, but he didn’t really know. A lot of work has been done to get the kernel to support the desktop use case; kernel developers, after all, tend to use Linux as their desktop, so they are well aware of how well it works. But it’s up to the distributors to target that market and create a complete product.
在 内核中,我们还能做什么来推进这个目标的实现?李纳斯回答说,他也想过这个问题,但是他真的不知道。内核已经做了很多的工作来支持桌面应用场景。毕竟内核 开发人员平时也拿Linux做桌面系统,所以他们很清楚目前的情况。但是要定位目标市场,开发一个完整的产品,这还是要依靠发行商。
Greg noted that 20 years is a long time to be working on one project; has Linus ever thought about moving on? Linus responded that he really likes concentrating on one thing; he is not a multi-tasker. He’s really happy to have one thing that he is doing well; that said, he never had expected to be doing it for this long. When asked if he would continue for another 20 years, Linus said that he’d be fairly old by then. Someday somebody young and energetic will show up and prove that he’s really good at this work. That will be Linus’s cue to step aside: when somebody better comes along.
格雷格提到,二十年如一日地为同一个项目工作,实在是有点 漫长,李纳斯有没有想过是否要继续下去?李纳斯回答说,他真的很喜欢专注于一件事情,他不喜欢同时承担多个任务。他真的很高兴他能把这件事做好,他从来没 预料到这件事情要干这么久。当被问道是否会再干二十年的时候,李纳斯说到那时候他岁数已经很大了。总有一天会有充满活力的年轻人出现,并证明他也能做好这 件事情,那时候就意味着李纳斯要隐退了。
What do we need to do to keep the kernel relevant? Linus said that relevance is just not a problem; the Unix architecture is now 40 years old, and it is just as relevant today as ever. Another 20 years will not make a big difference. But we will continue to evolve; he never wants to see the kernel go into a maintenance mode where we no longer make significant changes.
Moments, challenges, and licenses
A member of the audience asked Linus to describe his single most memorable moment from the last 20 years. Linus responded that he didn’t really have one; the kernel is the result of lots of small ideas contributed by lots of people over a long time. There has been no big “ah ha!” moment. He went on to describe a pet peeve of his with regard to the technology industry:  there is a great deal of talk about “innovation” and “vision.” People want to hear about the one big idea that changes the world, but that’s not how the world works. It’s not about visionary ideas; it’s about lots of good ideas which do not seem world-changing at the time, but which turn out to be great after lots of sweat and work have been applied.
一位与会者请李纳斯描述一下他过去20年中最 值得回忆的时刻。李纳斯回答说,真没有。Linux内核是在长时间内,依靠无数开发人员一点一滴的构思而形成的。Linux内核的历史上没有惊天动地的时 刻。李纳斯接着说了一个他无法忍受的,关于技术产业的观点:人们总是谈论“创新”和“高瞻远瞩”,总是认为有这么一个宏伟的构想,能毕其功于一役。但现实 世界不是这样的。实际上没什么高瞻远瞩的构想,有的只是很多好主意,这些好主意在当前看起来都不能改变世界,但是在经过辛勤的耕耘后,它们会变成伟大的事 物。
He did acknowledge that there have been some interesting moments, though, going back to nearly 20 years ago when Linux went from a personal project to something where he no longer knew all of the people who were involved in it. At that point, he realized, Linux wasn’t just his toy anymore. There have been exciting developments; the day Oracle announced that it would support Linux was one of those. But what it really comes down to is persistence and hard work by thousands of people.
他承认确实有一些很有意思的时刻。回顾将近二十 年,Linux从一个个人项目变成了一个大项目,大到很多为之工作的成员他都不认识,这个时候,他意识到Linux不再是他个人的玩具。这里面有很多激动 人心的事。甲骨文(Oracle)宣布支持Linux,算是其中之一。但归结起来,最重要的还是坚持和千万人的努力。
Another person asked whether the increasing success of web applications would mean the end of Linux. Linus responded that the move toward the browser has, instead, been helpful to Linux. There used to be a whole lot of specialized, Windows-only applications for tasks like dealing with banks; those are now all gone. When applications run in the browser, the details of the underlying operating system don’t matter, at which point it comes down to technology, licensing, and price – all of which are areas in which Linux excels.
还有一个人问,网页应用最近越来越成功,这是否意味着 Linux已经走到头了?Linux回答说,这种向浏览器靠拢的趋势,反而对Linux有利。曾经有很多特定的应用,只能在Windows下用,比如银行 类应用。现在这些都消失了。当应用程序能在浏览器中跑时,底层的操作系统就不重要了,关键看技术、许可证、价格——而这些都是Linux的优势。
The next question was: are you happy with Ubuntu? Linus suggested that Greg should answer that question for a more amusing result. He went on to say that Ubuntu is taking a different approach and is getting some interesting results. It is helpful to have a distributor working with a less technical, more user-centric approach. Ubuntu has been successful with that approach, showing the other distributors a part of the market that they were missing. Greg added that his main concern is that he wants to see the kernel community grow. Things are, Greg said, getting better.
下一个问题是:你对Ubuntu满意吗?李纳斯建议格雷格来回答这个问题效果更好(译者注:格雷格曾经 炮轰过Ubuntu)。他接着说,Ubuntu采用了一种不同的开发方式,并且取得了很有意思的成果。他们这种方式以用户为中心,而不是技术,有这样一个 发行商挺好。用这样一种方式,Ubuntu已经很成功了,向其他发行商展现了一片被他们所忽视的市场。格雷格补充道,他的主要关切是希望看到内核社区在壮 大,一切都在向好的方向发展。
What is the toughest technical problem that Linus has ever had to deal with? Linus answered that the biggest problems he faces are not technical. In the end, we can solve technical issues; we make bad decisions sometimes, but, over time, those can be fixed. When we have serious problems, they are usually in the area of documentation and help from hardware manufacturers. Some manufacturers not only refuse to help us support their hardware; they actively try to make support hard. That, Linus said, irritates him, but that problem is slowly going away.
李纳斯处理过的最棘手的技术问题是什么?李纳斯回答说,他面临的最大问题不是技 术方面的。技术问题早晚都能解决。有时候我们会作出错误的决定,但是时间一长,这些问题肯定能被纠正过来。如果说我们有严重的问题,那就是硬件开发商提供 的文档和帮助不够多。某些硬件开发商不仅拒绝帮助我们来支持他们的硬件,还会故意捣乱。李纳斯说,这使他很难受,不过情况在慢慢变好。
What is really hard, though, is the problem of mixing the agendas of thousands of developers and hundreds of companies. That leads to occasional big disagreements over features and which code to merge. If Linus loses sleep, it tends to be over people and politics, not technical issues; the interactions between people can sometimes frustrate him. We usually solve these problems too, but the solution can involve bad blood for months at a time.
真正棘手的事情,是协调全世界那 么多开发人员和公司。在决定哪些代码应该合入这个问题上,有时候会有重大的分歧。把李纳斯搞得睡眠不足的,是人和政治,不是技术问题。人与人之间的交互, 有时候会使他很难堪。我们也能解决这些问题,但是解决方案会使人在一段时间内产生厌恶感。
The linux-kernel mailing list, Linus said, is somewhat famous for its outspoken nature; it is seen as a barrier to participation sometimes. But it’s important to be able to clear the air; people have to be able to be honest and let others know what they are thinking. If you try to be subtle on the net, people don’t get it; that can lead to developers putting years of work into features that others simply hate. In the long run, Linus said, it can be much healthier to say “hell no” at the outset and be sure that people understand. Of course, that only works if we can then admit it when it turns out that we were wrong.
李 纳斯说,linux-kernel邮件列表以直言不讳闻名。有时候对于想参与的人来说,经常会被浇冷水。这里需要澄清一下,大家都应该诚实地告诉别人,自 己是怎么想的。如果你在网上含糊其辞,别人很难搞懂。这会导致开发人员花费多年的时间来做别人根本不喜欢的功能。李纳斯说,长期来看,一开始就说不,并且 让别人知道,这样会更好。当然,如果最后证明我们错了,我们也会承认。
The final question was about the GPL: is he still happy with the license? Linus said that, indeed, he is still very happy with GPLv2. He had started with a license of his own creation which prohibited commercial use; it took very little time at all before it became clear that it was making life hard for distributors and others. So he has always been happy with the switch to the GPL which, he said, is a fair and successful license. He feels no need to extend it (or move to GPLv3); the license, he said, has clearly worked well. Why change it?
最后的问题是关于通用公共许可证 (GPL):他对这个许可证还满意吗?李纳斯说,他仍然很满意通用公共许可证第二版(GPLv2)。他曾经自己创建了一种许可证,以禁止商业用途。但事实 马上证明了这会使发行商和其他人更难生存。他说,所以他一直很满意切换到通用公共许可证,这是一个公平而成功的许可证。他觉得没有必要去扩展这个许可证 (或升级到第三版(GPLv3))。他说,这个许可证工作得很好,为什么要改变?

此条目发表在Linux分类目录,贴了, , 标签。将固定链接加入收藏夹。