LJ 采访 Linus Torvalds
Phil
为什么 2.0 如此出色?
Linus
如果你指的是“为什么我们称之为 2.0 而不是 1.4”,那么答案是它有很多重大的概念性飞跃,特别是多架构支持和 SMP [对称多处理器] 支持。即使没有其他新东西,这两个特性也足以保证一个主版本号的提升。
请注意,这并不意味着多架构和 SMP 工作已经完成——在 2.0 中真正支持的平台将只有 alpha 和 x86,并且 SMP 方面也需要继续努力以实现更好的扩展性。关于 2.0,重要的是支持已经存在,即使我们显然会继续在这方面努力(就像 1.0 具有网络支持一样,即使我们在发布 1.0 后显然也必须继续在这方面努力)。
现在,如果“为什么 2.0 如此出色”这个问题更偏向于“我为什么要升级”,也就是说,你的机器已经支持 1.2,那么答案是不,你不必升级,但是有很多事情使得升级到 2.0 是一个好主意。
例如,性能要好得多,尤其是在网络和 NFS 客户端方面。如果你的主目录是 NFS 挂载的,你绝对应该升级。在其他领域,2.0 也明显更快,例如进程处理和文件系统吞吐量。
此外,2.0 最终支持文件的读写共享内存映射,以及使用 Unix 域套接字的文件描述符传递。这两件事是 1.2 没有做到的,而大多数其他现代 Unix 系统都支持的。
Phil
接下来会是什么?
Linus
SPARC 和 PPC 端口非常接近集成到正常内核中——大部分已经存在,只是由于代码冻结,缺少一些尚未应用的东西。MIPS 支持也可能会在 2.1 开发内核的早期加入。因此,在 2.1 期间,我们将获得许多新的有趣的架构支持——本质上,2.0 为多架构奠定了基础,因此现在进行端口移植变得容易得多。
此外,SMP 需要进行更细粒度的锁定,以便在更多 CPU 上获得良好的性能,虽然 SMP 目前在 x86 和 Sparc 上工作,但我们可能会努力使其他架构也支持 SMP。
显然还有其他的事情:正常的内核更新,更多的驱动程序,以及更多的性能改进。IPv6、DECnet 等。
Phil
关于你自己,有什么想分享的吗?很多人要求我们更多地介绍开发人员。他们可以阅读代码或文档,但不是每个人都能见到开发人员。
Linus
呃,嗯,啊…… 没有发生太多事情,我终于拿到了理学学士学位,但我仍在攻读硕士学位。这很慢,因为 Linux 显然占用了我大量的时间。希望我能在年底前完成,我主要只剩下论文要写了。并不是我没什么可写的,只是在有这么多其他事情在进行的情况下很难开始。
Tove [Linus 的“另一半”] 和猫都很好……
Phil
当你拿到硕士学位后,你计划“找一份真正的工作”还是打算继续做计算机领域最受瞩目的失业人员?
Linus
嘿,我不喜欢这种说法。我没有失业,我只是对我的工作很挑剔……
实际上,在过去的几年里,我一直在赫尔辛基大学工作,这支付了我的账单。在学习期间,我也在从事研究和教学职位。计算机科学系非常灵活,我可以在工作时间做 Linux,他们通过尽量减少我的其他工作来鼓励这样做。
显然,“真正的工作”比大多数大学支付的薪水要高,但我对这种安排非常满意——我可以做任何我想做的事情,并且在做这件事时没有任何商业压力。获得硕士学位不会从根本上改变事情,尽管这显然会让我更容易接受其他工作,因为我不需要担心有一天想要毕业。
由于我一直能够靠大学的薪水过上幸福的生活,所以决定因素与其说是金钱,不如说是任何“真正的工作”的兴趣程度(但为了防止有人认为金钱根本不重要,我只想提一下,是的,金钱确实很重要)。
Phil
内核中还有多少代码是你的?
Linus
嗯…… 如果从代码行数来看,非常少。仍然“属于我”的是 mm/*.c,kernel/*.c,fs/*.c(只有 BVFS 代码,而不是特定的文件系统部分)以及 x86 和 alpha 特定的底层架构文件的一部分。
即使是这些部分,也有很多代码是由其他人贡献的,但基本的东西仍然在我的密切控制之下。基本上都是真正基本的东西——所有其他东西都依赖于这些东西。
有很多东西我甚至没有真正接触过:大多数设备驱动程序完全是由其他人编写的,虽然它们有时是基于我编写的东西,但它们真的不再是我的了。很多文件系统代码也是如此。
网络部分完全是由其他人编写的,尽管我也接触过其中一些。
按代码行数计算,这些天我可能只负责大约 10%。这只是一个粗略的估计,我还没有真正看过。
Phil
项目管理是如何(或者也许是为什么)运作的?也就是说,Linux 是一项巨大的努力,并且它继续进展良好。这种合作是如何可能的?
Linus
大部分都是自动发生的——为了乐趣而做事的人们自己会以正确的方式做事。话虽如此,我每天在 Linux 上工作 8 个小时(这只是最低限度),而且大部分时间都花在了管理事务上,主要是电子邮件。而且,好像我是唯一的“管理者”——还有其他人管理他们自己的子系统,然后给我发送已经清理过的补丁(尤其是在网络方面)。
Phil
是否存在任何专业知识的缺乏?是否有任何东西或任何人,如果可用,会使开发进展得更好?
Linus
我认为我们做得很好。我需要更长的工作日(和夜晚!),但是没有什么特别需要的东西。有很多领域需要工作,也有很多开发人员没有足够的时间,但我们真的不能抱怨。
Phil
我们之前问过这个问题,但答案可能已经改变了。在 Linux 开发中,你做错了什么(如果有的话)。(当 Ken Thompson 被问及 Unix 时,他说他把“creat”系统调用的“e”漏掉了。有什么你会做得不同的吗?)
Linus
我会很傲慢地说“没有”。我认为这和上次的答案一样。我犯了很多错误,但这没关系也很正常,而且内核因此变得更好——它往往只会帮助使更正后的版本更健壮。而且我显然忽悠了很多人免费为这个项目工作!
Phil
今年晚些时候或 1997 年初,你将参加美国的哪些展会?
Linus
我希望至少参加 1 月份的 USELINUX 会议(或其正式名称)。还没有确定的计划……
Phil
我希望在那里见到你,让你用我承诺的虚拟啤酒换取真正的啤酒。
Gena
你对 Linux 的商业化有何看法?
Linus
总的来说,这对我来说是一件非常积极的事情。我不担心内核本身或基本系统——所有的商业化都是关于发行版和应用程序的。因此,它只会为 Linux 带来增值的东西,而不会从 Linux 场景中夺走任何东西。
但是,我不认为商业化是任何问题的答案。它只是 Linux 的又一个方面,绝不是决定性的方面。让我以 Wabi 为例——一个商业 Windows 模拟器(当这篇文章发表时可能已经发布了;它现在正在进行 beta 测试)。
Wabi 是一个不错的程序(我一直在使用它在 Linux 下用 PowerPoint 制作幻灯片),很多人会找到付费购买它的理由。但是,它不会像 Wine 可能做到的那样革命性地改变 Linux——一个免费提供的 Windows 模拟软件包将对整个市场产生很大的影响,而 Wabi 只对市场的一小部分产生很大的影响。显然,目前 Wabi 比 Wine 先进得多,但我们会在一两年后看看会发生什么。
Gena
你认为 Linux 社区在未来 10 年将面临哪些挑战?
你对 Linux 的商业化有何看法?
Linus
我连两周后的计划都很难制定,更不用说 10 年了…… 太难说会发生什么。这一切都取决于优秀的应用程序的可用性,并且随着商业和免费的最终用户应用程序开始出现,第一步正在迈出。Linux 已经有很多传统的 UNIX 应用程序,我真正期待的是桌面个人和商业应用……
Gena
你有什么建议/智慧之言想与 Linux 社区的新成员分享吗?
Linus
嗯…… “善待彼此”?不,电影错了…… 啊…… “生养众多,遍布地面”?嗯,这也已经做过了……
Gena
是什么让你保持动力(即,为什么你坚持做你所做的事情)?
Linus
这是一个非常有趣的项目,我可以像蜘蛛一样坐在网上,看着可怜的新用户努力地使用它。 Mwbhahahhaaahaaa……
不,说真的,最初在 91 年我“完成”我的第一个 Linux 测试版本后,让我坚持下去的是人们的热情,以及知道人们觉得我的工作有趣和好玩,并且有人依赖我。今天仍然如此。
而且它在技术上也非常有趣——即使在过去的五年里仍然如此。新的挑战,人们需要或觉得有趣的新事物。但社区才是真正让我坚持下去的原因。
Phil
谢谢。一杯虚拟啤酒马上送到。
Linus
虚拟的,虚拟的…… 真正的东西在哪里?