TranslateProject/published/201507/20150618 What will be the future of Linux without Linus.md
2015-08-01 23:35:42 +08:00

23 KiB
Raw Permalink Blame History

没有 LinusLinux 的未来是什么样子?

这次采访是《Linux For You》杂志在2007年进行的现在我们发表在这里是为了存档的目的。

Q对于 Linux 内核,未来的计划/道路/提升是怎样的?

Linus我从来没有太多的预见性 — 与其从宏大的计划上看未来,我倾向于从一个相对短的时间框架,比如“几个月之后的事情”。我是一个忠实的‘细节成败论’的信仰者,如果你抓住了细节,再大的问题也会大事化小,小事化无。

所以,对于五年后内核会是什么样,我真的没有任何远见 — 仅仅是希望我们能够持续专注于Linux的发展。实际上对于我个人来说我最担心的事情之一甚至不是技术问题而是确保这个过程正常这样人们才可以相互协作好。

Q你怎么看 Linux 和 Solaris 之间的关系在未来的发展?它会如何使用户受益?

Linus我并没有看到太多交叉的地方除了我认为 Solaris 会使用更多的 Linux 用户空间工具对我自己来说并没有太多关注这个因为我真的只关心内核。Linux 桌面比起传统 Solaris 桌面好多了,而且我希望 Solaris 移植越来越多的 Linux 的东西,朝着一个更加类 Linux 的模式前进。LCTT 译注:时至今日,我们还需要讨论 Solaris 吗?/cry ,但是当时,整个开源社区确实期望接受 Solaris 一些遗产。)

从纯内核方面讲许可证的存在意味着没有太多的合作空间但是如果这种情况发生改变将会变得很有趣。Sun 已经声称将在 GPLv2 或 v3下授权 Solaris如果这种许可证的差异消失那么会导致一些有趣的技术出现。但对此我持观望态度。

Q现在 GPL v3 已经完成并发布了,你是否预见有什么情况会鼓励你开始移植内核到 Solaris 上去?或者,从你的角度看,它是否很糟糕以至于你从来没考虑过它?

Linus我觉得相比于早先的草稿v3 有了很多提高,并且我也不认为它是一个糟糕的许可证。我只是认为它没有 GPLv2 一样‘伟大’。

所以,如果没有 GPLv2我觉得自己将会使用 GPLv3。不过既然我已经有了一个更好的选择我为什么还要考虑它呢

这就是说,我始终秉承实用主义精神,并且我认为“ GPLv3 不像 GPLv2 一样好”这件事并不是一个‘非黑即白’的问题。这就像是一个天平,如果 GPLv3 有了其他的优点作为砝码,很有可能那些优点会让我对 GPLv3 更偏爱一些。

恕我直言,我到现在还并没有看到任何优点,但是如果 Solaris 真的在 GPLv3 下发布,可能避免不必要的许可证不兼容性这一条就分量足够了,足以值得我们去尝试将 Linux 的内核重新在 GPLv3 许可证下发布。不过,请不要误解,我认为这是不大可能的。但是我确实想澄清我本质上并不是一个许可证偏执者。我认为 GPLv2 是毫无疑问的好许可证但是许可证并不是一切。LCTT 译注事实上Solaris/OpenSolaris 最终也没采用 GPL 许可协议发布,而 20100年之后已经没有什么动静了。而 Linux 内核最终也没有更换到 GPLv3 上。)

总的来说,我使用很多其他许可证下的程序。我可能没有把任何一个我自己做的项目放在 BSD或 X11—MIT许可证下但是我认为它是一个伟大的许可证对于其他项目来说它可能是最佳的选择。

Q目前有没有任何你想特别提出作为 Linux 内核的关键贡献者的印度人?

LCTT 译注:本篇访谈中提到多次印度,是因为访谈者是印度人。)

Linus我不得不承认我并没有与来自印度的任何人直接合作过尽管我已经非常有意识地努力建立一个规模庞大的内核开发团队这样我不用总是独自工作。

我相信大多数人的社交基本上是受限制的,只对很少的人十分了解(比如你最亲近的家人和朋友),我也努力构造这样一个开发模型来改变这种状况:通过一个‘开发者网络’,人们可以在此互动,可能是与一批你信任的人,而且那些人反过来与他们信任的一群人互动。

所以,我偶然会与上百个发给我一两个不确定的补丁的开发者联系。我试着去建立一些由我熟知的人组成的小团体,我认为那就是人们工作的方式,当然也是我喜欢工作的方式。

同时坦白地说我甚至不知道许多与我一起工作的人生活在哪里。地理位置成了十分次要的东西。所以我很确信与我工作最紧密的前10—15个人中没有印度的可能这话稍后传到公众耳里然后被指出确实有一些人来自那里

Q因为 Linux 的内核开发对你依赖如此严重,你如何计划组织或重组,让它在没有你的情况下继续发展,假设你决定花更多的时间在你自己的生活和家庭上面的话?

Linus现在 Linux 比我重要得多,为了今天这一步我已经工作了很长时间。是的,我仍然十分密切地参与其中,而且我对其有着想当大的日常影响,我最终会是这样一个人——在某种程度上,扮演着许多内核开发活跃者的中心;但是,我不会说 Linux “严重依赖”于我。

所以,如果我得了心脏病并且明天就死了(很高兴没这种可能:我显然在任何方面都很健康),人们肯定会注意到,但是有成千上万的人为内核工作,并且不止一两个人能够毫无困难地接替我的角色。

Q印度是软件工程师的主要产地之一但是我们没有在 Linux 领域做太多贡献。你觉得为什么印度人没有积极参与Linux如果我们鼓励印度人参与并为 Linux 做更大的贡献,你觉得如何?你会乐意用你个人作为榜样激励印度工程师吗?

Linus对我来说这确实是一个不好回答的问题。参与开源取决于两方面的基础条件信息流和文化用你的话说是互联网和教育我甚至不知道这其中哪个是最大的障碍。

在很多方面,至少在那些印度讲英语文化的地方,参与 Linux 和其他开源项目是相对容易的,如果仅仅是由于语言门槛的话。这当然比起亚洲的许多地方,甚至欧洲的一些地方要容易些。

当然,这只是一些人,并不等同于印度的大部分群体,而且我自己关于印度的情况也知道不多,甚至没法不太负责的猜测最好的途径是什么。我猜一个热情的本地用户社区会是最好的途径,而且我猜测你们已经拥有这样的社区了。

至于我的‘偶像’形象,我自己不以为然。我不是一个伟大的公众演讲者,而且我最近些年已经避免出游,因为被看做符号化的‘偶像’让我很不自在。我就是一个工程师而已,而且我仅仅是喜欢我做的事情,并与社会上其他人一起工作。

Q什么样的理由会让你考虑去访问印度

Linus如前一个回答中提到我十分讨厌公开演讲所以我才想避免开会等等这些事。我更愿意某天去印度度个假但是如果我这样做我可能悄悄地干 — 出行之前不告诉任何人仅仅作为一个游客去游览印度LCTT 译注:所以 Linus 不来中国的道理是同样的,除非在中国召开一次世界性的 LinuxCon。

Q最近你好像在抨击 Subversion 与 CVS质问他们的架构基础。现在你已经从 Subversion 和 CVS 社区那里得到回应,你是否改变了看法,还是说并没有被说服?

Linus因为我发现这个争论很有趣所以我想做一个强硬的声明。换句话说我确实喜欢争论。并不是不经思考的但是我确实想要让争论更热烈些而不仅仅是完全的柏拉图式的。

做出强硬的争论有时会引来一个非常合理的反驳,然后我会很高兴地说:“噢,好吧,你是对的。”

但是话说回来,对 SVN/CVS 并不会发生这种情况。我怀疑很多人并不是真的很喜欢 CVS所以我真的不觉得会有谁坚持认为 CVS 就是一切,而不是一个老旧系统。要是我知道之前就有人这样认为的话,我就不会那么不礼貌地反对 SVN这么说没错 — 我真的不是一个非常礼貌的家伙!),我不相信任何人会认为 SVN 是‘好的’。

我认为SVN 就是一个‘还好’的经典案例。人们过去经常使用 SVN并且它也还好地广泛使用但是它的还好就如 DOS 与 Windows 的‘还好’一样。不是什么伟大的技术,只是普遍适用而已,同时它对人们来说运行良好,看着十分熟悉。但是很少有人以此为傲,或者对其感到兴奋。

Git从另外方面讲其身后有一些UNIX 哲学’,这和 UNIX 无关。实质上,就像原始的 UNIX在它身后有一个基本理念。对 UNIX 来说,最底层的哲学就是,“所有东西只是一个文件”。对 Git 来说,“则是每个东西只是内容寻址数据库中的一个对象”。

Q现在如此多的发行是好事还是坏事选择是很有意思的但是选择太多了就是干扰。相较于这么多的人每天花费数小时去构建成百上千的发行版如果人们可以一起来支持少数的发行版这样在企业级市场去挑战微软是不是更容易些呢对此你怎么看

Linus我认为多个发行版是开源不可回避的部分。它会造成困惑吗当然。它会变得低效率吗是的。但是我喜欢拿它与政治比较民主也有那些令人困惑的选择往往没有任何一个选择是你真正想要的。而且有时候如果你不需要操心选举、不同党派和联合等等方面的困惑的话你可能会感觉事情更加容易一些更有效率一些。

但是最后我想说,选择可能会导致低效率,但是它也让每个人至少保留了‘所谓的’诚信。我们可能都希望我们的政治家更诚信,我们也希望不同的发行版可以让我们有一天有其他的选择,而如果没有选择的话,事情可能会更糟。

Q为什么你觉得 CFS 比 SD 更好?

Linus一部分原因是我与 Ingo [Molnar] 工作过很长一段时间,也就是说,我了解他,并且知道他会对发生的任何问题非常负责。那种品质是非常重要的。

但是一部分原因就简单的与用户有关,大多数人实际上表示 CFS 比 SD 好。包括许多 3D 游戏方面(这是人们声称 SD 最强的一点)。

尽管如此,我认为并不是任何一段代码都十分‘完美’。最好的情况是,想成为 SD 支持者的人会努力提高 SD从而通过其它方式取得了平衡 — 而我们会保持两个阵营都尝试有趣的事情,因为内部的竞争会刺激他们。

Q在 Google 的一次关于 Git 的访谈中,有人问你如何将当前集中存放的超大代码库迁移到 git 上,而不用将开发工作停止六个月。你对此的回答是什么?

Linus啊哈那个问题我在现场没有听清楚在录音里问题会听得更清楚些当我回头去听录制的音频注意到了我没有回答他的问题但是我觉得这问题他问过。

无论如何,我们确实有很多导入的工具,所以你实际上可以仅仅是将一个大的项目从任何其他的早期的 SCM (源代码控制系统)导入到 git 里,但问题显然不是经常以导入动作本身结束,而是需要‘习惯’这种新模式!

坦白来说,我认为关于如何‘习惯它’没有任何其他答案,而只能是去开始使用和尝试它。显然,你不会冒险率先导入你现有的最大、最重要的项目,那确实会导致工作停顿下来,然后使得每个人都很不高兴。

所以没有任何理智健全的人会拥护在一夜之间将一切移到 git 上去,并强迫人们改变他们的环境。是的,你需要从公司里的小项目开始,可能是一些由一个小组主要控制和维护的项目,然后开始转移其到 git。这是你能让人们习惯这种模式的方式你应该以一个核心的组开始他们知道 git 如何工作,如何在公司里面使用它。

接着,你就会铺展开来。并不需要一次到位。你会导入越来越多的项目 — 甚至是在你公司里采用‘单一大型仓库’模式;那个仓库基本上是作为许多模块的集合,因为让每个人去检查每件事不是一个可执行的工作模型(除非这个‘每件事’并不非常大)。

所以,你基本上只会一次转移一个模块,直到你发现使用 git 是如此酸爽,这时你可以移植余下的所有(或者‘余下’的太旧了,没有人用了)。

git 最赞的一个功能是,它实际上可以同很多其他 SCM 相处很好。很多 git 用户使用它的时候,与他们一起工作的人并没有发现,因为他们看到 git 的结果,会联想到一些传统的 SCM 上去。

QLinux 用了你在 Transmeta全美达上实现备用指令集的经验吗[Transmeta Crusoe 芯片看起来像一个非常轻量级的 CPU — 记得有一台 Burroughs B1000 解释器,它实际上实现了多个虚拟机。有的用于系统软件,有的用于 Cobol还有的用于 Fortran如果没错的话那么人们可以在芯片上实现 Burroughs 6/7000 或者 HP3000 类似的堆栈架构,或适用于 JVM 的指令集等等。LCTT 译注Linus 于 1997-2003 期间就职于全美达)]

Linus我们确实有一些备选的结构集合不过我不打算谈论太多这个我可以说的是我们已经做了一个混合结构集合的公开演示。我们有一个技术展示在那里你同时可以跑 x86 指令和 Java 字节码(实际上,它是一个轻量的扩展 pico—javaiirc

我想我们展示的这个应用会在 Linux 上运行 DOOM这里 Linux 的部分是一个完全标准 x86 发行版。但是 DOOM 的二进制程序是一个特定的编译版本,它实际上编译为 pico-java 代码。而 CPU 最终以相同的方式来运行它们——从 JIT 到原生 VLIW 指令集。

(选择 DOOM 的原因仅仅是其源代码可用,并且游戏的核心部分非常小,足以很容易拿它来做一个验证 — 而且它也显然看起来十分有趣。)

有更多的事情是在内部运作,但是我不能谈论他们。而且实际上,就我个人而言,对 Java 不怎么感冒。

Q386BSD 衍生了 NetBSDFreeBSD 和 OpenBSD在 Linux 出现之前已经发展不错了,但是 Linux 传播比 386BSD 及其衍生者更为广泛。这在多大程度上左右你对许可证的选择,这个选择的发展过程是怎样的?你不认为比起 GPLv2 来,是 GPLv3 创造了发展空间,迄今为止,让 Linux 比 BSD 变得更好?

Linus我认为这不仅是一个许可证问题也是一个社区及人格问题。BSD 的许可证总是鼓励分叉,但是这也意味着,如果某些人取得了成功并做了商业性的分叉,他并不需要将他的修改返回来。因此,哪怕实际上这种事情没有(而实际上,这种事情的确发生了,比如 BSDi人们也难以建立彼此信任。

相比之下GPLv2 也鼓励分叉,但是它不仅仅鼓励分叉出去,它也鼓励(并‘要求’)能够融合回来。所以,我们现在达到了新的层次的信任:你‘知道’每个人都被许可证所约束,所以每个人都不会占你便宜。

所以在我看来GPLv2 作为许可证来说,它允许人们在要求总是回馈贡献的前提下,在另外的方面取得了最大可能的自由。没有人能阻止你对源代码的改进。

那么BSD 许可证是更‘自由’的吗?是的,毫无疑问。但是我不会在我在意的任何项目里面使用 BSD 许可证,因为我不仅仅想要自由,我也想要信任,可以让我总是能使用其他人为我的项目所写的代码。

所以对于我来说GPLv2 最终在‘尽可能自由’上取得了完美的平衡,这样,我们做到了让每个人都能信任,他们总是可以取得源代码并使用它。

这就是为什么我认为 GPLv3 最终并没多大意思,它不再是那种‘返回源代码’的信任;它退化成了‘我写了这些代码,所以我能控制你如何使用它’。

换言之,我只是觉得 GPLv3 太狭隘和自私了。我认为 GPLv2 在‘自由’和‘信任’之间取得伟大的平衡。它不如 BSD 许可证自由,但是它让你安心回馈,而且它符合我认为的‘以德报德’:我给你源代码,你也回馈我源代码。

而 GPLv3 试着控制源代码的‘使用’。现在它就是“我给你我的源代码,如果你使用它的话,你就准备好让我对你的设备动手动脚吧”,看见了没?在我看来,不但小气,而且小心眼。

Q-rt 代码树的功能正在缓慢而稳定地逐渐集成到主线代码中。你对将剩余的 -rt 树合并到主线代码的看法是什么?(我说的不是 CFS

Linus: 我不能保证来自 -rt 的一切‘都’会被合并进入标准内核(有一些部分肯定不适合常规的内核),不过是的,这些年来我们实际上将它的大部分都集成进去了,剩下的部分最终以后也会合并进去。

我提倡高效工作,但是我同时也很保守。我退回了一些激进的合并请求,只是因为我需要确保它们对我们所有人都有意义,不仅仅是用于极端情况下的实时环境,而且也对并不需要这种环境的‘普通’用户有用。这解释了为什么这个过程相当缓慢却稳定不断地合并代码,因为它需要足够稳定和有意义。

顺便说一句,这不仅仅是针对 -rt ,它也出现在许多开发中。-rt 出现这种情况是因为它是更‘直接’的内核项目,而且也是因为它的一个主要开发者直接参与到了常规内核开发。通常其它功能的迁移(安全、虚拟内核变化、虚拟化,等等)也遵循类似的方式:他们针对特定的环境进行开发,然后这些功能片段缓慢而稳步地合并到标准内核。

Q我对 Linux 内核所支持的文件系统发展很感兴趣。你觉得 Reiser4、XFS4、ZFS 以及 Oracle 的新项目哪个更有前途?这些天 ZFS 有不少新闻Reiser4 也发布了很不错的性能基准测试XFS4 正紧随其后,而 Oracle 发布的那个也有很多像 Sun 的 ZFS 一样的特性。我们将走向何方呢?以你的观点来看,哪个文件系统更有前途?

Linus 实际上,就在昨天我们发现了一个 git 的性能问题,有一个用户发现他采用 ZFS 要比 UFS 慢一个数量级(不是在 Linux 下git 已经得到了许多关注,甚至是来自内核开发团队之外)。所以,我认为许多‘新文件系统’的拥护者部分原因是因为他们了解到旧文件系统的不足,然后(有点不切实际地)期望一个‘崭新的、改进的’文件系统能使一切都完美。

最后,这是一个永无止境的领域,看看谁是最终的赢家——也许并不需要(看起来不需要)一个赢家。几乎总是这样,对文件系统的选择最终取决于负载和环境。

相比你提到的这些文件系统,我个人对基于闪存的硬盘很快就可以供甚至是‘普通’用户使用的这个事实更感到兴奋。当然,它们仍然很昂贵(而且相当的小),但是基于闪存的存储和传统硬盘的性能完全不可同日而语,我怀疑它们最终将对文件系统的设计有巨大的影响。而现在,多数文件系统的设计都是在考虑如何处理硬盘延迟。

Q操作系统变得越来越不重要。你说过好几次用户根本不应该看见操作系统。应用更为重要。基于浏览器的应用如 Google 的办公软件影响力越来越大。你认为操作系统将走向何方?

Linus我并不真的认可浏览器 OS因为我认为人们总是需要在本地做一些事情。也许是因为安全或者仅仅是因为隐私的原因。而且即便当到处可以接入时它也并不是无处不在

所以我认为整个Web OS这件事有一部分是真实的但是另外一部分人们也许忘记了操作系统已经存在了几十年它已经相当稳定而且它的发展是有目共睹的。人们真的不应该期望操作系统有魔法般的变化现在已经不是操作系统刚刚起步的六十年代甚至连硬件也和过去完全不同了

所以,别指望一场革命。我认为操作系统将在很大程度上继续它们所擅长的,当然,我们也会进步,但是我不认为会从根本上改变。也许会发生巨变的是界面和操作系统顶层的那些东西(当然,操作系统下面的硬件也会继续进步),这显然才是人们所关心的。

至于操作系统?它显然是应该尽可能隐藏起来的东西。你真的不应该在意它,除非你特别想知道在机器里面真正在发生什么。

Q最近我听说你正在使用一台 PPC G4/5 作为个人计算机,你使用它来做什么?为什么呢?

Linus我最终放弃了那台 PowerPC因为没有人能在这台工作站上做到更多特别是自从 x86-64 开始变得越来越强大了。所以这些天,我在用一台标准的 PC里面是一个普通的 Core 2 Duo CPU。

在其它架构下运行是非常有趣的alpha 作为我的主要架构运行了好几年,所以这并不是第一次),但是这种 CPU 得当成商品买得到才行。我认为,唯一能取代 x86 架构的,也许未来十年并不需要使用 x86 作为主要架构,我认为或许是 ARM这得益于移动设备市场的发展。

QLinux 对你意味着什么?一种业余爱好、哲学、人生意义、工作、最好的操作系统,还是什么?

Linus它是所有的这一切。它是爱好而且是具有深刻意义的爱好。最好的爱好是你真的非常在意它。这些日子里它显然也是我的工作我非常高兴工作和兴趣能合二为一。

我不了解所谓的‘哲学’,我并不真的是因为深层次的道德或哲学的原因才做的 Linux但是可以肯定的是对开源的深层思考是我非常重视的。所以我并不是因为什么明确的理由做 Linux也不能说是它在激励我但是我的确在思考开源是如何工作。

Q微软的黑衣人有没有和你交谈过

Linus我从来没有真正和微软交谈过没有。我偶尔会和一些微软的人出现再同一个会议上我比以前参加的会议更多了但是我从来和他们没有任何关系。我认为彼此都很谨慎吧。


via: http://www.linuxveda.com/2015/06/17/what-happens-to-linux-after-linus/

作者:Swapnil Bhartiya 译者:wi-cuckoowxy 校对mahua, wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出