Linus 与 Lunatics 团队,第二部分

作者:Doc Searls

本系列的第一部分是 Linus 在今年的 Linux Lunacy 航行中,在幻灯片演示的引导下所做的主要演讲的文字记录。在第二部分中,Linus 沉浸在他喜欢的演讲形式:问答环节。

第三部分将涵盖大约 30 位 Linux Lunatics 在同一 Geek Cruise 航行中与 维多利亚 Linux 用户组的 50 名成员之间的对话。

关于完整航行的报告在此处开始。

--Doc Searls

Linus & the Lunatics, Part II

Linus: 现在我们可以进入真正的问答环节了。

Neil Bauman: 在过去一年左右的时间里,Linux 已经被许多老牌公司所接受。[你]认为这是一件好事,还是一件坏事?你感到高兴吗?悲伤吗?

Linus: 我不在乎。我过去会更担心这个问题。很久以前,我曾经担心公司会有自己的[含糊不清]来做这些事情。但这种情况已经很久没有发生了。现在公司有两个理由加入并拥抱 Linux。其中一个是迷路的企鹅。

[笑声。]

但另一个更常见的原因仅仅是因为他们看到了一个切实可行的廉价开发模式。它既有廉价的部分,也有切实可行的部分。这是许多公司以前没有见过的。我发现一些公司,大公司,害怕过多地篡改这种模式,这很可笑。你有一些两三个字母的公司,实际上要求他们的员工[学习]开源策略——一系列关于该做什么和不该做什么的课程。我的意思是,这完全很奇怪,但在某种程度上令人鼓舞,因为其他加入的公司似乎确实意识到,如果他们想从中获得一些东西,他们需要程序合作,而不是对抗它。

听众成员: 你会惊讶于人们有多么的懵懂。我一直接到电话。“我想做这个项目,并以开源的方式进行。这意味着什么?”他们一无所知。

Linus: 有些人很难适应它。许多管理者往往觉得很难放手管理。例如,他们不接受来自外部的补丁。他们可能是开源的,因为他们发布了代码,并发布了他们所做的所有更改,但实际上不与任何外部人员交谈。

听众成员: [询问公司内部的课程。]

Linus: 英特尔就是一个很好的例子,因为他们过去非常封闭。他们有规定说,“当你加入公司时,你写的一切都属于我们,在法律允许的范围内,而且你永远不能公开使用你的公司电子邮件地址,用于任何事情,因为那会暗示英特尔认可……”或者类似的事情。

这在五年前是真实的情况。你有很多人在这样的公司工作了很长时间。然后他们需要真正改变他们的思维方式。他们会参加这些课程。但这些课程不是为那些了解开源的人设计的。非常入门级。

听众成员: 我在一家三个字母的公司工作。我们确实有一个让你参与开源的项目。我们需要承认我们理解各种开源许可证和传统的 IBM 开发模式之间的区别。这非常重要,因为像 SCO 诉讼这样的事情。因为如果不理解什么是知识产权,以及你被允许将谁的知识产权放入开源的东西中,你最终会……

Linus: 可怕的一点是,所有相同的问题也存在于专有源代码中。只是你没有被抓住。对吧?所以这不是关于开源与任何其他东西的对比。这实际上是关于“哎呀。现在他们真的看到我们在做这些事情了。所以我们最好小心点。”

听众成员: 每件 IBM 产品都必须附带一份原创性证书[含糊不清],以声明我们知道来源——

Linus: 对,但是实际参与其中的开发人员可能与此无关。

Doc Searls: 我想让你谈谈桌面 Linux 以及它的发展方向。

Linus: 所以我总是认为桌面 Linux 就是它现在的样子,对吧?那是我唯一关心的部分。服务器有点;它们容易。它们只做一件事。这一件事可能是N件事之一,但同时它非常可调,非常直接;人们已经做了很长时间了。服务器人员通常做他们已经做了十年、十五年的事情。所以我不认为服务器从技术角度来看很有趣。这一切以前都做过了。桌面是我使用的,而且无论如何,桌面在技术上更具挑战性。

显然,现在大多数在桌面上使用 Linux 的人往往都非常专业。好消息是这种情况正在改变。它主要在公司内部发生变化,这些公司刚刚决定,“嘿,我们的秘书实际上更适合使用 Linux,因为我们不想让他们玩纸牌游戏。”

[笑声。]

这就是 DOS 的由来,对吧?Linux 也有纸牌游戏,但你可以更好地控制如何安装它。对吧?最初在家购买 PC 的人这样做是因为他们在工作中使用了它们。所以事情就是这样完成的,而且这种情况似乎正在发生。

听众: 你对大型和小型 Linux 有什么看法。是否会有 SMP 16 版本[含糊不清]……

Linus: 我过去认为,尝试在与常规机器相同的源代码树中支持大型机器是没有意义的。我过去认为,大型机问题与常规硬件截然不同,最好有一个分支,并为具有 256 个 CPU 或类似配置的机器提供一些特殊代码。但问题是,SMP 的可扩展性甚至通过清理东西和在做事方式上更加小心,也帮助了 UPK。而且我们已经能够控制住所有开销。因此,源代码中存在的自旋锁,因为你不需要它们而消失了。我们现在的扩展性非常好,以至于我看不到任何理由将高端硬件分离出来。首先使用 Linux 的很大一部分原因最终是你想要搭上拥有数百万台机器的浪潮,这些机器实际上比大多数大型机通常更快地融入新技术。因此,大型机人员希望在同一个树中,因为拥有一个单独的大树意味着它不会得到测试,它不会得到功能,它不会得到 Linux 拥有的所有东西,而传统的 Unix 通常没有这些东西。

听众: 你对目前设备驱动程序被引入[含糊不清]的方式有什么看法吗?

Linus: 设备驱动程序的问题是,它们通常没有很好的文档记录,硬件通常也不是那么容易访问,从某种意义上说,是的,你当然可以出去购买它,但很多人对此不感兴趣。因此,开发基础非常有限。硬件制造商,即使他们有兴趣,通常也不是软件人员。所以即使他们编写驱动程序,驱动程序也很糟糕。如果不是硬件制造商编写驱动程序,那么驱动程序通常也很糟糕,仅仅是因为没有文档。人们在猜测。相关人员实际上并不想编写驱动程序,但他们必须这样做,因为他们希望特定的硬件能够工作。

如果你将核心内核代码与设备驱动程序代码进行比较,设备驱动程序有更多的错误,更丑陋,维护得更差,这是一个根本问题。好消息是,集成意味着你需要支持的设备数量实际上已经减少了很多。如果我没记错的话,我们在内核中大约有 100 多个 SCSI 驱动程序。其中大约只有两个现在是相关的。这在五到十年前是非常不同的。确实有很多奇怪的东西。我们过去有十五到二十个不同的 CD-ROM 驱动程序。每张声卡和他的狗都有一块 CD-ROM 芯片,对吧?而且它们都不同。现在没人用它们了。它们已经死了。因为 IDE,不仅仅是 IDE,而是一个特定的 IDE 控制器实现,即英特尔的,刚刚成为标准。

USB 在某种程度上有所帮助。图形也在朝着相同的方向发展。过去有 10 家不同的图形供应商,而现在只有三四家了。因此,好消息是,设备驱动程序问题实际上可能正在改善,仅仅是因为小公司倒闭了。坏消息是,小公司倒闭了,无法制造硬件。它不再具有经济可行性了。

听众成员: 最大的问题一直是让供应商发布文档,他们一直有一种非常奇怪的信念,即如果你发布接口规范,竞争对手就会窃取他们的[财产]。你认为这个问题会变得更好还是更糟?

Linus: 情况已经好转了很多。目前,我们完全没有问题获得任何与服务器相关的东西的规范,例如 SCSI 驱动程序。SCSI 制造商基本上都在争先恐后地为我们编写驱动程序。或者,例如,Linux 在市场中占有很大份额的任何东西的多端口卡。仍然存在的真正问题往往非常具体。在嵌入式领域,情况似乎也在好转。Linux 最终对许多嵌入式供应商非常有趣。因此,嵌入式供应商倾向于实际编写驱动程序。因此,问题区域往往是笔记本电脑,以及台式机。我们还没有达到目标,但情况已经有所改善。这始终是一个问题领域。我实际上认为它似乎正在变得更好。

听众成员: 我想知道你是否可以谈谈一些与笔记本电脑相关的问题,以及哪些供应商倾向于支持 [Linux]。

Linus: 老实说,实际上没有任何笔记本电脑供应商真正支持 Linux。说实话。他们中的一些人会做一些表面功夫。如果不太痛苦,他们会在某些配置中支持 Linux。但支持的程度往往还可以[在有限的程度上]。它可能无法挂起。它可能实际上无法完成你希望笔记本电脑完成的一半事情。但是你可以在上面运行 Linux。

我预计这种情况会随着公司开始在桌面上更多地使用 Linux 而发生改变。如果你有几家大公司只是说,“嘿,Linux 必须在我们的笔记本电脑上工作”,硬件制造商突然会开始更加关心。

听众成员: 惠普已经开始在笔记本电脑上进行 Linux 质量保证,发布 BIOS 更新。不是在旧市场,而是在商业市场。商业市场需要有压力。客户正在站出来说,“我们将购买 10,000 台 Linux 机器……”因此,压力开始施加到更大的供应商身上。

听众成员: 你害怕 SCO 吗?

Linus: 我对美国的法律体系有点紧张。不是特别针对 SCO,而是针对随机性。似乎任何拥有比柠檬水摊位更大的生意的人都需要意识到法律问题,对吧?但在某种程度上,我相当高兴[SCO]似乎根本没有理由,这意味着当它最终得到解决时,这可能需要太长时间——IBM 的人似乎认为这很容易拖到 2005 年——我们实际上会有一个法律先例,这很好。但拖延时间是不好的。

听众成员: 这对你个人有任何影响吗?

Linus: 并没有真正的影响。我开始做这个项目。实际上有一个历史悠久的 Linux 内核树,作为一个 BitKeeper 存档,我花了一个星期的时间在上面工作,这让我从 0.01 升级到 0.99,大概是从 91 年 10 月到,我想,93 年 5 月左右。我把我能找到的每一个版本都签入了,连同我能找到的任何评论。我当时想,“好吧,如果 SCO 最终开始发出账单,那么[它将]开始侵犯我的版权。”届时我必须在处理版权的任何机构注册我的版权。版权局。然后几个月过去了,然后你收到一份文件,说你可以起诉人们侵权。只是为了打下基础。

但这实际上很有趣。看到旧名字很有趣。看到我们遇到的问题类型很有趣。看到提交的补丁数量如此之少很有趣。例如,在 92 年的某个阶段——我对 92 年非常活跃,很多人——有一个月的某个阶段,我可以轻松地浏览补丁,并确切地看到它做了什么。我想想现在一个月会发生什么,以及补丁最终会变得多大。这完全不同。所以这有点有趣。

关于 [SCO] 的另一部分有趣且具有启发意义的是,你如何亲自对待诉讼。以及它变得多么令人讨厌。例如,人们对这些事情的反应非常个人化,对吧。我通常很擅长避免这种情况。当我这样做时,我注意到了自己。而且……那很有趣。

但我不太关心[这个问题]。

哦!这些天我不得不和记者们纠缠。这真是令人头疼。如果以前记者给我发电子邮件,而我不认识这位记者,我只会[想]“又一封我不用回复的电子邮件”。这次如果记者给我发电子邮件并提到“SCO 怎么样?”,我觉得我必须回复它。这真的在降低我的工作效率。也许吧。

听众成员: 似乎有一种向集群化发展的趋势。我注意到没有很多真正成功的内核空间集群化实践或项目。正确的做法是什么——

Linus: 在集群化领域,我确信,主要问题是一个连贯的文件系统。而且没有表现良好、易于安装的连贯文件系统是大多数人感兴趣的。再说一次,有了连贯的文件系统,几乎所有其他事情都可以用,嗯……你不需要像许多公司历史上所做的那样,做完整的内核级 SSI,Compaq 就是其中之一。事实上,你不想那样做。但你想做一些工具,让它看起来非常接近单系统映像。你可能有一些内核钩子来更好地分发 IP 地址或 TCP 连接。诸如此类的东西。但是,这些都是细节。最重要的是集群文件系统不存在。人们正在研究几个。其中一些今天实际上可以工作。其中一些用起来很麻烦[含糊不清]。我想在家里有一个集群文件系统。有多少人在家里有不止几台电脑?并且觉得 NFS 有点烦人?所以我希望有一些在家里有用的东西,仅仅是因为拥有一个透明、连贯的文件系统很好。但是目前没有任何产品足够可用且易于设置,以至于值得这样做。

听众成员: 我只是想知道你是否对 Opteron 形成了印象,并且可以进行比较。

Linus: 在 64 位领域,除了 Opteron 和 Power 之外,其他一切都完全无关紧要。其他一切都不重要。事实就是这样。

我现在实际上发现 Power 非常有趣,因为他们制造了 9070。而且你实际上可以在合理的机器中购买它们。而且你可以购买一台 Macintosh G5 并获得真正的 64 位 CPU。我认为这可能也足够了。对于普通人来说,有足够的用户群,我怀疑很多 Linux 开发人员会很乐意拥有其中一台。并且准备完全放弃 X86。虽然我不认为这种情况会发生在 IA64 上。因为如果你要放弃 X86,就没有什么好的盒子可以让你转向。

Opteron,我认为他们的方法是可靠的。但 AMD 似乎在执行方面一直存在问题。有时他们会实现每一个里程碑。凭借 Athlon,他们领先英特尔半年或更长时间。但从历史上看,他们也总是会绊倒。问题是,他们这次能否实现里程碑?他们已经绊倒了几次,但他们获得了非常好的评价。所以,谁知道呢?

IA64 确实有很多资金支持。这很重要。我不喜欢他们的架构,但至少他们修复了[含糊不清]带来的所有主要的性能问题。

听众成员: [关于 Opteron 的问题。]

Linus: Opteron 的问题很可能是一些核心技术问题,因为他们无法提高兆赫兹,对吧?他们的晶圆厂一直……不均匀。

听众成员: 你认为 DMCA 或其他立法,或者整个公关事件……是一个问题,是对……的威胁

Linus: 我是一个乐观的蓝眼睛的人。这不是一个让我真正感到不安的领域。因为 A,我认为消费者不会购买不允许他们做他们想做的事情的设备。我们在最初的 DivX 中看到了这一点,对吧?B,因为如果缺陷最终变得过于严苛,它们最终会影响到普通用户。计算机极客一直在抱怨 DMCA,大概有五年了吧?它是什么时候开始的?

听众成员: 1998 年 10 月。

Linus: 很久很久了。你有没有注意到在过去的几个月里,有些普通出版物抱怨 DMCA?不是出于任何计算机极客的原因,而是因为他们对 RIAA 目前使用它的方式感到不满。所以我有点乐观。[虽然]这不是我个人会纠结的领域,但我每年都会给 EFF 寄一张支票。我鼓励其他人也这样做。因为有人确实会为此感到纠结是好事。

听众成员: ……有一个 12 岁的女孩被 RIAA 起诉……而且它不起作用……

Linus: 当你开始将 DMCA 用于普通人关心的事情时,你最终会得到这种反弹。

Doc Searls: 这可能是过渡到欧洲软件专利的一个好时机。

Linus: 对此没什么好说的。

Doc Searls: [指向 Linus 的问答幻灯片上的主题。]

Linus: [笑] 是的。方法专利就是不好。它们在美国不好,在欧洲也不好。我没有密切关注它。他们似乎至少尝试稍微改进他们的专利法。但一些提案——我不确定他们现在在争论哪个提案——要求它不是纯粹的方法专利。它是设备的一部分。就像最初的专利要求一样。这仍然是一个坏主意。我对整个讨论的问题有点类似于 TCPA 的事情。这个话题变得非常两极分化,以至于互相交谈的人们实际上并没有在互相交谈。他们真的站在对立的两端,互相扔石头。对吧?而不是试图看看是否有中间地带。这意味着讨论本身没有价值。这就是我对它的问题。我不认为你应该被要求将这个问题两极分化。因为只要我们有这种本能反应——软件专利不好——这无助于我们与那些有另一种本能反应的人讨论这个问题,我很贪婪

听众成员: [询问 Linus 是否会对软件专利说一些有用的负面评价。]

Linus: 如果我能……组织一个有意义的句子,我非常乐意说任何关于软件专利的坏话。但我不是游说行业的,所以我不会。

听众成员: 与公关部门合作。让他们给你发一个引言,然后你批准它。

Linus: 完全正确。公关就是这样运作的。他们还没有给我发引言!

[笑声。]

Don Marti: 我将成为那个牺牲品,问这个问题,“2.6 版本什么时候发布?”[笑声。] 认真地说,你如何处理最后的 2.6 测试内核并决定称之为 2.6?

Linus: 我们和 Andrew 坐下来谈了好几次。你看,2.6 的问题是,每次我发布稳定版本之前,它都有点——我在水里划了一条线,但我仍然继续维护它。从历史上看,这并没有很好地发挥作用。我并不是说新方法会更好。但我希望 Andrew,他非常积极地参与了 2.5 内核,显然也参与了 2.6 测试内核,我希望这不仅仅是我划一条线,而是更多的是我和 Andrew 说,“好吧,Andrew 实际上愿意接受这个烂摊子。”这才是真正的意义所在。当他说,“好吧,我认为我们已经到了我可以接手的阶段”,那就是 2.6 版本。对吧?至于它什么时候发布,我不知道。

我们没有很多未解决的问题。我们有一些。现在的问题是。我今天拒绝了一个清理补丁,该补丁开始为你不应该做的事情添加警告。但现在甚至不是添加关于你不应该做的事情的警告的时候。因为这种补丁会导致人们查看警告并尝试清理代码。是的,它会清理代码;但它也会错误地破坏东西。这种情况实际上已经发生在这个补丁上。因此,在这一点上,我们只是陷入了一种难以说服人们不要进行清理的境地。

很多人都想为 2.6 版本进行润色。关键是,我们不希望它被润色。我们希望它像岩石一样坚固。看起来像岩石一样粗糙也没关系。但它必须是坚固的。

Andrew 和我都对我们目前的状态感到满意。但 Andrew 什么时候真正接手,我不知道。

听众成员: 这与维护内核的完整性有什么关系,因为它变得越来越大以支持所有这些 [SMP 点]。你提到了 8 路机器。你显然是自动化工具的有力倡导者——

Linus: 我实际上不是自动化工具的有力倡导者。我是一个帮助你做愚蠢事情的工具的有力倡导者。例如,我喜欢 C 类型检查的原因之一是,当我们进行重大更改,并且我们实际上更改了调用约定或其他内容时,编译器会为我们完成所有的繁重工作。它会说“第某某行,你正在使用错误的参数调用它。”这真是太棒了。我想到了那些人们不敢更改调用约定的项目,因为它会破坏一切。这就是为什么我非常喜欢类型检查。但这并不意味着我认为自动化对解决难题有好处。

难题应该通过确保符号不太可能出现奇怪的调用来解决。所以你提到的一个,锁定……我认为 Sun 花费了大量精力进行锁定验证,以确保你始终以正确的顺序获取锁,并为此开发了许多工具。但问题是,他们实际上有非常深的锁嵌套,这也最终成为一个巨大的性能问题。这意味着做某些事情真的很困难,因为它使代码更难处理。你不能再做显而易见的事情了,因为你现在违反了锁定规则。

例如,Linux 在锁定方面所做的就是制定规则不要有深层锁嵌套。我们有非常浅的锁嵌套。我们可能有很多锁,但它们很浅。这没关系。我们在少数几个地方实际上嵌套了大约四层,这些地方都有很好的文档记录。而且只有少数几个地方,因为让它们遍布各处是疯狂的。

所以,我实际上并不是一个狂热的拥护者,希望拥有能够为你解决问题的工具。因为如果你需要工具来解决问题,那么你一开始就设计错了。

我不喜欢将工具作为维护帮助。我喜欢类型检查,它是一种向你展示你犯错的地方的方式。但它是针对愚蠢的错误;而不是针对真正棘手的问题。

至于如何解决复杂性问题,到目前为止,真正的解决方案一直是良好的品味。

[听众轻笑。]

真的。

我的意思是,很多补丁最终被拒绝是因为它们很丑陋。而很多补丁最终被接受是因为它们清理了一些东西。例如,如果你看看 2.5 期间架构处理方式的变化,现在它要干净得多。

PC 就是 PC,对吧?内核过去就是这样认为的。但现在 PC 可以是普通 PC 或 NUMA 机器。或者是 SGI 奇怪的奇迹机器之一。或者是 Voyager,无论它们叫什么。或者是 PC 中的任何这些子架构。它们被分离出来,通用代码保留在通用文件中,并进行了大量清理。这仅仅是因为维护人员对 ifdef 感到头疼,并说“我再也无法管理这个了,所以我们需要清理它。”人们做到了。良好的品味。

Ifdevs 是不好的。修复它们。而不是,“好吧,让我们使用工具来验证我们是否正确地使用了它们。”明白了吗?这就是区别。

听众成员: 我很好奇……[含糊不清]……不太懂技术的人的整个过程……

Linus: 我认为在 [含糊不清] 上发生的最大的事情之一是出现了许多优秀的库框架。特别是 Qt,我认为它产生了巨大的影响。以及 KDE 库和工具构建器之类的东西……[含糊不清] 基础设施。Gnome 也正在迎头赶上。但出于某种原因,我只是注意到 KDE 人们认为让它工作和理智更重要。而不是试图追求完美,Gnome 人们正在努力做到这一点。

我不太参与其中。我过去经常向 KDE 人们发送很多错误报告,直到我不再有错误,我就停止了。

[笑声。]

但我很关心它。

问题是,构建这种基础设施需要花费大量时间……

Windows 的杀手级应用程序是 Visual Basic。它允许你制作你自己的蹩脚的、自制的应用程序,这些应用程序为你的企业做一些愚蠢的事情。但你可以让它们看起来不错,而且你可以使用数据库。而且你不需要理解它。或者关心。对吧?那是一次巨大的飞跃。

而这种飞跃现在正在发生,因为现在为 Linux 制作一个美观、干净的应用程序变得容易得多,它具有所有这些神奇的东西。比如你可以拖出来的菜单,对吧?所有这些都是为你编写好的。你不需要关心。你可以专注于蹩脚的应用程序,它也会看起来不错。这在去年发生了变化。至少对我来说是这样。在此之前,如果你想制作一些美观的图形应用程序,它会充满错误,而且你必须自己做很多工作。

框架真的开始在那里了。

在我看来,OpenOffice 仍然是一场彻底的灾难。部分原因是它没有使用任何为不同应用程序设计的框架。它构建了自己的框架。我被告知人们正在尝试修复它。

听众成员: [关于 OpenOffice 的评论,含糊不清]……或者编写他们自己的。

Linus: 自己动手写才是男子汉的象征。

听众: 您能谈谈新版本的内核吗?[以及您是如何测试它的]?

Linus: 大体上和我们一直以来的方法相同。发布出去,然后希望有人使用它。而且很奇怪,心理因素非常重要。把它叫做 2.60 Test 1 产生了巨大的不同。因为我们开始收到很多来自那些人提交的 bug 报告,而这些人即使是用十英尺长的杆子也不会去碰 2.5.79,即使代码是相同的。尤其是在桌面端,这是唯一测试它的方法。因为桌面环境非常多样化,你真的需要用户群来测试它。

除此之外,所有的 Linux 发行版基本上都有他们自己的内部 QA 流程。而且他们都在转向 2.6 以供内部使用。他们中的一些计划在下一个版本中将 2.6 作为安装时的选项。这将再次获得更多的用户测试,更广泛的测试基础。因为这将吸引那些不愿意自己编译内核的人。他们愿意更新到新的 SuSE 或新的 Red Hat 或新的 Mandrake。然后还有所有的大公司,他们实际上有自己的测试套件。所以 OSDL 有 Linux 测试套件,他们正在进行数据库测试。IBM 自己也做了很多测试。

据我所知,一些公司只测试他们感兴趣的东西,比如他们自己的硬件,使用 2.6 内核。

听众: 那么,由不太精通技术的人测试测试内核,您如何获得有用的 bug 报告呢...?

Linus: 通常情况下,你实际上并不需要非常出色的 bug 报告。很多问题最终都归结于传统的内核开发者和最终使用 2.5 开发内核的人,实际上往往是非常同质化的一群人。他们拥有高端硬件。他们拥有的硬件通常是为 Linux 构建的。他们在选择硬件时考虑了 Linux。他们有半 GB 或更多的 RAM。

让随机的人来测试真正重要的是,你会开始看到这些模式,比如,“哦,我们从来没有测试过这种配置,从来没有。而且它显然坏掉了。” 对吧?然后唯一重要的部分是,“这种配置在这种负载下坏掉了。” 这本身就非常有趣。

有时会遇到一些 bug,你实际上需要用户...来回沟通,试图重现完全相同的症状等等。但实际上,这些情况远不如“嘿,这个东西坏了”这种情况常见。

听众: 你们使用什么进行 bug 报告?

Linus: 一些供应商有他们自己的 bug 报告配置。还有内核的 Bugzilla。据我所知,它主要被开发者自己使用,用来提醒自己他们已经看到的问题。事实是,当发行版发布 2.6 版本时,那将会产生巨大的不同。而且这是无法避免的。2.6.0 会有一些 bug,这些 bug 在半年后发行版发布之前不会被发现。然后他们有工具来跟踪支持电话。他们有很多这样的工具。

听众: 两个稍微轻松一点的问题。Linux 系统到达过离地球表面最远的地方是哪里?

Linus: 我知道它上过航天飞机,但那只是近地轨道。我想知道它是否上过更具吸引力的东西。

听众: [有人提到有人在太空中使用 IBM 笔记本电脑上的 Linux 渲染图像。]

Linus: 是的,它肯定去过太空。但我不知道它是否像火星探测器那样去过更远的地方。我知道它没有上过旅行者号。

[笑声。]

听众: 第二个问题。您有没有考虑过量子计算?

Linus: 我认为那都是胡扯。我看到所有这些新闻报道说,“嘿,我们用一套化学装置计算出了圆周率小数点后七位!” 那基本上就是他们在做的。他们不是在做计算。他们是在用 DNA 做模式匹配。如果你要匹配的是 DNA,那很好。但如果你真的想做计算,你显然不想采用这种生物学解决方案,只是[希望]答案会自己出现,对吧?所以眼见为实。在那之前,我还是选择晶体管。它们会变得更小。而且它们会开始产生量子效应,那也没问题。

听众: [听不清]

Linus: LVM 应该可以工作。但是所有的工具都需要一些调整。我自己不用它。

它现在不叫 LVM 了。它叫 DM,磁盘映射器(Disk Mapper)。但它是一样的东西。接口不同了,而且更智能了。有时所有的用户级工具都完全不同,对吧?是的,它不是二进制向后兼容的。你不能直接扔进一个系统,这最终会很痛苦。但是,我不是做这部分工作的合适人选。

听众: 你在幻灯片上有一个问题是“企鹅是怎么回事?”

Linus: 我放这个是因为很多人问我这个问题。我实际上没有一个好的答案。它就是这样,对吧?

关于企鹅有很多原因。我被企鹅咬过。这是一个真实的故事。这很有趣,因为有很多关于企鹅的网站。比如 Tux 的历史,以及诸如此类的东西。这些网站中的一些有我的解释。他们几乎都说,“这是一个很棒的故事,但这不是真的。” 我被企鹅咬过这件事。

这是真的!我被企鹅咬过!我是认真的!相信我!我受伤了。好吧,它没有六英尺高。

[笑声。]

听众: 它是放射性的,是真的吗?你后来把它杀死了,是真的吗?

[笑声。]

Linus: 好吧,有些传言不是真的。

我和一些做广告的人谈过,他们喜欢企鹅。他们认为这是有史以来最伟大的标志。回想起来很有趣。因为我们制作它是为了,我想,2.0 版本。大概在 95 年左右?很多人讨厌它,因为它不够严肃。但它很棒。广告界的人真的很喜欢你可以用它做各种事情。“这是天才之笔!想出企鹅的人是个营销天才!” [讽刺地] 是啊。

[笑声。]

所以,随便吧。

听众: 您对您的职业道路感到满意吗?您打算继续这份工作一段时间吗?

Linus: 是的。我讨厌换工作。因为它在精神上非常消耗精力。我认识一些人,尤其是在硅谷——现在已经不那么真实了——但有些人基本上认为,如果你不每年换两次工作,你就做错了。我想我做不到那样,因为,嘿,压力水平会要了我的命。

我唯一想要的是每月或每两月收到支票。而且我不想为此担心。所以是的,我对我的选择非常满意。

听众: 您是否认为内核的 фундаментальный 单内核本质会在任何方面发生改变?

Linus: 内核模型随着时间的推移发生了很大变化。现在完全不同了。与此同时,很多东西保持不变。我的意思是,单内核与微内核之争不会改变,我知道这一点。但是我们在内部如何完成事情以及如何组织事情方面非常灵活。

再说一遍,回顾早期的内核,有趣的事情之一是代码真的有多糟糕。以及我们在显然应该是内联函数或宏定义的地方使用了裸汇编语句。

它是一种不同的生物,它正在以 фундаментальный 的方式进化。但与此同时,很多东西是相同的。

我不得不说,我已经认不出很多代码了。它们都已经被重写了。但很多想法是相同的。

听众: 既然我们有了这么大的用户空间,有没有可能 [听不清]

Linus: 是的。我的意思是,挂起和恢复真的应该能够做到所有这些。很多人只想用同一个内核来做。因为替换内核真的很难。所以,谁知道呢?让我们先让挂起和恢复功能正常工作起来。

其中最棘手的部分是,它实际上在某些机器上可以工作,但完全不可能调试。因为当机器无法启动时,你需要一个 ICE 才能知道到底发生了什么,因为你没有任何设备可以工作。即使获取串行线路也不是很好,因为你的南桥坏了。你甚至无法到达进行串行 I/O 的芯片,对吧?

这就是为什么它真的很棘手。在这方面,APM 要容易得多。当你使用 APM 时,你有 BIOS,但至少它可以确保串行线路工作。

现代 PC 非常糟糕。ACPI 在各个方面都是一个彻底的设计灾难。但我们有点被困住了。如果有任何 Intel 的人在听这个,并且你参与了 ACPI,现在就 самоубийство 自己,在繁殖之前。

[笑声。]

听众: [关于“更有趣”和“即将到来”的一些内容]

Linus: 所以我们在几个月前在渥太华举行了内核峰会。在某些方面,它实际上有点令人失望,因为没有太多有趣的事情。很多关于事情如何完成的讨论,但不多——

人们对他们获得的支持水平非常满意。我的意思是,这是一件好事。但这使得会议不如本应有的那么令人兴奋。

我认为内核峰会上每个人都同意的唯一事情实际上是集群文件系统。在其他领域有一些细节。但它们在任何方面都不是惊天动地的。

我正在和某人谈论页面大小扩展。我现在忘记他们的名字了。有很多小项目,人们正在考虑将它们用于 2.7。但与此同时,我认为我们正接近内核实际上对大多数人来说都能工作的地步。模块化设备驱动程序,对吧?以及仅仅为新硬件进行更新。

而且很多令人兴奋的工作最终都变成了用户空间的垃圾。我的意思是,从的角度来看,不令人兴奋,但如果你从大局来看,实际上大部分努力和创新都发生在那里。

听众: [关于将东西推入内核的一些内容。]

Linus: 没有人想这样做。实际上有一些事情人们试图在用户空间中做,他们应该在内核空间中做更多的事情。所以发生的事情是,你知道,DRI。

有些人非常害怕内核空间编码,以至于他们只在内核中放置最少的支架来完成某些事情,触摸某些硬件寄存器,然后他们根本不告诉内核它实际在做什么。但他们把所有困难的工作都放在用户空间中完成。内核收到数百万个调用,说“做这个”。但它不明白它在做什么。它只是在模仿。它只是在鹦鹉学舌般地重复用户空间告诉它做的事情。这真的很危险,因为这意味着当内核不明白它在做什么时,而且它显然是在以提升的权限来做——这不是一个好主意。

所以有时你最好在内核空间中做更多的事情,如果这意味着内核空间中的东西实际上知道它在做什么。但人们真的不希望他们的东西——

听众: [听不清。]

Linus: 没关系。是的。我不知道。DRI 工作得很好。性能方面,我知道 OpenGL 很糟糕。但是,调试起来非常痛苦。

听众: [听不清。]

我搞不定它。好吧,你把我的纯内核移到用户空间,然后你用 GDB 来调试它。你搞什么鬼

[笑声。]

Linus: 但它对于进行虚拟化非常有用。

问题是,一旦你真正开始关心性能……如果你不想更改内核,你只需部门化。我认为 OpenBSD 在这方面做得很好。他们称他们的更强大的哨兵机制是什么?

听众: FreeBSD 有 jails

Linus: 我认为它来自 OpenBSD。而且从性能的角度来看,它要好得多。如果你只想做主机虚拟化。但它不如完整的内核虚拟化那样万无一失。所以如果你有一个 bug,你会使一切崩溃。但从性能方面来看,它显然更好。

Doc Searls: 想象一下,一年后,大型公司的客户需求迫使大型 OEM 开始制造可用的 Linux 笔记本电脑。他们会遇到我们在某种程度上有所回避的问题。这里的情况是什么?这是 Intel 解决的问题吗?还是每个 OEM 都解决的问题?我知道 Microsoft 不遗余力地确保所有这些 OEM 都让他们的笔记本电脑与众不同。它们本质上都是嵌入式机器。会发生什么?

Linus: 所以,好消息是,笔记本电脑正在摆脱嵌入式机器的那种东西。它们变得非常标准化,尤其是像 Centrino 这样的芯片组。如果你使用奔腾处理器而不使用 Centrino,你就做错了——除了他们不支持 802.11 A&G; 之外,而且现在你无法获得 Linux 的 Centrino 驱动程序。

实际上,有些人决定转向 Broadcom,因为他们需要 A&G。但这只是时间问题。

Doc Searls: 我听说 Intel 有 Linux 驱动程序。

Linus: 我也听说它们存在,但 Intel 的其他人说“那是胡扯。我们把它放在了路线图上,但我们一直无法让它运行起来。” 他们一直承诺在 2004 年推出,但我绝不是 Intel 的发言人。所以我不知道实际日期是什么时候。但它应该会到来。

他们在 A&G 上实际上搞砸了。他们不得不推迟。他们本应在第三季度推出支持 A&G 的芯片组,但他们将其推迟到明年或更晚。

问题是,当你制造笔记本电脑时,你过去必须在人们的后院里四处搜寻奇怪的硬件,才能让所有东西都装配起来。但这肯定会消失。

而且这不仅仅是 Centrino。你将不再拥有数百种不同的芯片组,以数百万种不同的方式连接它们,你可能会有五种不同的芯片组,而且你只能以它们连接的方式连接它们。这即将发生。

这就是十年前我们在台式机上遇到的情况。康柏制造了自己的非标准 PC 台式机。实际上惠普更糟。但这因为标准芯片组而消失了。这种情况现在开始在笔记本电脑领域发生。

所以,一年后,我预计——假设我们可以解决那些 ACPI 问题——当你购买笔记本电脑时,它更有可能直接工作。[敲木头。]

Neil Bauman: 非常感谢!

Doc SearlsLinux Journal 的资深编辑,负责商业报道。他在杂志上的月度专栏是 Linux For Suits,他的双周通讯是 SuitWatch

电子邮件:doc@ssc.com

加载 Disqus 评论