Ted Ts'o 访谈
Don Marti 和 Richard Vernon 最近有幸从 Ted Ts'o 繁忙的日程中抽出一些时间,与他探讨他在 Linux 内核、IBM 和 Linux 社区中的角色。Ted 似乎在 Linux 社区的各个角落都活跃着——无论内核内外。他目前是 IBM Linux 技术中心的 Linux 基础技术团队的高级技术人员。他还担任 Linux International 技术委员会主席,Free Standards Group 董事会成员,互联网工程任务组 (Internet Engineering Task Force) 成员,以及 IETF 安全区域理事会 (Security Area Directorate of the IETF) 成员。此前,他曾在 MIT 信息系统部门工作,担任 Kerberos 开发团队的负责人。在所有这些工作中,他都在 Linux 内核的开发中发挥了主要作用。

LJ 许多 Linux 爱好者因您在 Linux 内核方面的工作而认识您,但可能不太熟悉您为 Linux International 和 Free Standards Group 提供的服务。您能否简要谈谈您在这些组织中分别担任的职务?
Ted 嗯,我担任 Linux International 技术委员会主席。Linux International 是一个厂商组织,它起源于 Linux 创业的早期——那时 Bob Young 会亲自出现在贸易展上,帮助分发包含 Slackware 发行版的 CD。因此,从一开始,Linux International 就非常强调其成员应该团结起来,共同“做大蛋糕”的概念。
技术委员会旨在帮助确保该组织与技术根基保持联系,后来承担起审查 Linux International Development Grant Fund 申请的责任,该基金至今仍在运作。
最近,Linux International 开始考虑一项新计划,该计划将侧重于加强各个地方 Linux 用户组,并与他们合作,支持那些有兴趣进行各种类型的“Linux 推广”(即推动 Linux 在当地公立学校或企业基础设施中使用)的人们。这是我一直在与 Jon “maddog” Hall 讨论的一个想法,我认为这是一个很棒的倡议。我希望它能顺利进行。
至于 Free Standards Group,我目前在 FSG 董事会任职。FSG 为 Linux Standards Base (LSB) 和 Linux Internationalization (Li18nux) 工作提供法律和财务支持。我从一开始就参与了 LSB,因为我坚信提供一个稳定的环境非常重要,这样社区成员可以发布程序的二进制发行版,这些发行版可以在任何相同架构的 Linux 系统上运行,而无需考虑用户选择使用的发行版。
在 UNIX 战争的高峰期,我曾在 MIT Project Athena 担任学生系统程序员,并亲眼目睹了各种 UNIX 系统之间的不兼容性如何让微软在桌面领域占据主导地位。因此,我认为 LSB 对于 Linux 社区来说极其重要。
LJ 您如何看待 LSB 最近的进展(LSB 1.1 的发布),您认为 LSB 的未来会怎样——它会发展成为一个普遍存在的标准吗?对于以源代码形式分发软件的开发人员来说,LSB 有哪些优势?
Ted LSB 方面的进展缓慢但稳步。LSB 1.1 并不完美,但它已经到了发行版和独立软件供应商都可以开始针对它进行实施的阶段。我们预计在一年内开始看到 LSB 兼容的发行版和应用程序。
LSB 标准正在努力使第三方应用程序可以在多个发行版上安装和运行。最初,Linux 系统上的大多数软件包仍将由发行版提供,而不是 LSB 兼容的软件包。
希望随着发行版开始看到 LSB 的优势,以及对各种发行版之间更多共同性的需求增加,LSB 将有助于鼓励发行版开始逐步趋同,随着新功能的添加。这将有利于所有开发人员,甚至包括那些已经以源代码形式分发代码的开发人员。
ABI 兼容性虽然对于以二进制形式分发源代码的个人或公司最为重要,但对于仅使用开源软件的人来说也很重要。例如,一些库维护人员在进行不兼容的库更改时,不费心更改符号名称,甚至在某些情况下不更改库版本号。如果安装在同一系统上的两个应用程序需要引用不同的库,这可能会导致各种麻烦。ABI 不稳定性的一个极端例子可以在 libgal(GNOME 应用程序库)中找到,它在大约几个月的时间里进行了 19 次不同的、不兼容的 ABI 更改。即使源代码可用,这种 ABI 不稳定性也极其不方便。
LJ FSG 接下来将着眼于哪些领域的标准化?
Ted 嗯,有两个团体已经与 FSG 接触。一个团体有兴趣标准化某种高级打印库接口。另一个团体有兴趣标准化集群的库接口。总的来说,FSG 不会尝试寻找新的技术来进行标准化;相反,它允许有兴趣成立工作组的人员致力于制定某些标准。FSG 董事会只是坚持该过程是开放的,并且尽可能让所有相关方在制定标准时都参与其中。
LJ 您能否简要描述一下您在 IBM 的工作?
Ted 嗯,我继续致力于内核工作,特别是 ext2/ext3 文件系统的工作。我还一直在为 Linux 技术中心的其他一些团队提供咨询,帮助他们解决设计问题,并帮助他们更容易地将他们的贡献被主线 Linux 内核接受。
LJ 您认为 2.5 系列内核最显著的进展有哪些?
Ted 现在还是 2.5 开发系列的早期阶段,所以现在很难说。我想说,扩展到更大的机器以及相关的子目标,例如减少或消除对全局“大内核锁”的需求,肯定是 2.5 系列更重要的努力之一。O(1) 调度器的引入也非常重要。继续改进虚拟内存子系统和 I/O 子系统的工作也在进行中,并且最终非常重要。除了少数新功能,例如更好的 ACPI 支持和异步 I/O 支持外,我怀疑 2.5 内核的大部分改进将与性能相关。
话虽如此,正如 Linus 所说——我非常同意——Linux 社区中正在发生的许多令人兴奋的新工作不一定发生在内核中,而是在用户空间中。例如,谁会想到在五年前,Linux 不会只有一个,而是 两个 图形桌面环境系统正在开发中?
LJ 您是 /dev/random 的作者。Linux 内核黑客将如何处理内核中的加密技术?是谨慎行事,还是在美国出口限制放宽后,开发人员现在正全力投入?
Ted 嗯,Peter Anvin 在奠定法律基础方面做了一些出色的工作(也必须感谢 Transmeta 支付了法律费用),以便可以从 kernel.org FTP 分发网络分发加密软件。当然,有些人仍然有点谨慎。这是可以理解的,因为许多开发人员在加密铁幕 (Crypto Iron Curtain) 后面生活了太久,以至于他们仍然担心美国政府可能会改变主意,并突然试图再次监管密码学。不过,在这一点上,我认为密码学精灵已经完全从瓶子里出来了,这种噩梦般的场景非常不可能发生。
我认为开发人员开始在内核中添加更多加密技术只是时间问题。另一方面,有很多加密解决方案,真正放置它们的正确位置是在内核之外。
LJ 鉴于您参与的众多高要求活动,您是如何保持组织性和找到足够的时间投入到每项活动中的?
Ted 这很难。参与更多组织性任务,例如在 FSG 董事会任职和参与 LSB 工作,令人失望的事情之一是,这意味着我用于进行真正的内核级编程的时间更少了。但是,总得有人来做,而我碰巧在这方面还不错,所以……。
话虽如此,我希望我能调整我的工作量,以便我有更多机会进行一些真正的编程,而不是过去一两年那样。
我尝试找到时间的另一种方法是将项目交给其他人。例如,我是最初发起将可插拔身份验证模块 (Pluggable Authentication Modules) 架构引入 Linux 的人之一。当时,我在 MIT 工作,我访问了 Sun Microsystems,讨论了一些与 Kerberos 相关的问题。在会议即将结束时,Sun 工程师向我介绍了 PAM 这个东西,我立刻觉得这真是个好主意,而且,如果 Linux 也能拥有它,那岂不是很棒。所以我开始建议这是一件好事,接下来我就知道,Andrew Morgan 挺身而出并付诸行动。关于整个故事有趣的是,即使工程师们在向我介绍 PAM 之前已经研究了至少一两年,Linux-PAM 项目的初始实现已经可以工作了,并且在 Sun 能够发布具有 PAM 支持的 Solaris 版本之前,就已经在商业发行版中发布了。这就是开源模式的伟大之处。
LJ IBM 如何为开源软件的开发做出贡献?
Ted 嗯,IBM 成立了 Linux 技术中心,拥有大约 250 名工程师,分布在 16 个城市和 6 个国家/地区,全部致力于开源软件。我们的任务是努力使我们的更改被内核或我们可能正在从事的任何开源项目的主线版本接受。因此,我们正在非常努力地作为 Linux 和 OSS 社区的成员进行工作。当然,我们选择从事的 OSS 增强功能也是对 IBM 客户重要的那些,但这在所有 Linux 公司都是如此。美妙之处在于,在大多数情况下,全球 Linux 社区的利益与 IBM 和其他 Linux 公司客户的利益是相同的。
LJ 您现在正在研究内核的哪些部分?
Ted 现在,我主要专注于 ext2/ext3 文件系统。我想研究一下重做 tty 层,但是一周的时间只有那么多。也许在一两个月后,我会有时间真正尝试解决这个问题。
LJ 您对业余无线电感兴趣多久了?是什么让您对此感兴趣?
Ted 我自 1997 年以来就拥有业余无线电执照。我参与其中是因为我认识许多在 MIT 使用 MIT UHF 中继器进行通信的人,这吸引了我。
LJ 您在开发 Linux POSIX capabilities 中扮演了什么角色?您对当前的 28 个数量有何看法?您认为应该保持还是扩展?
Ted 就像 PAM 一样,Linux POSIX capabilities 是我尝试推动的事情之一,但不太成功。我仍然认为像 POSIX capabilities 这样的东西很重要,但我不再确定 Posix capabilities 是否是解决问题的正确方法。大多数系统管理员在处理每个文件 12 位的 UNIX 权限位时都会遇到麻烦。再添加 3 × 28 = 84 个 capability 位,这些位必须正确配置,否则可执行文件将停止工作或不安全,这简直是噩梦。
一个更简单的系统,程序仍然是 setuid root,但随后永久删除所有他们不需要的 capabilities,这当然不如完整的 POSIX-capabilities 模型灵活,但我认为它更容易管理,这使得它比其他考虑因素更重要。
LJ 您试过 SELinux 吗?如果试过,您怎么看?
Ted 没有,我还没有时间积极安装和试用 SELinux。不过,我认为 NSA 一直在研究它,这很棒。
LJ 您是否看到在为中型或大型服务器优化 Linux 吞吐量与为嵌入式系统追求小尺寸和低延迟之间存在冲突?
Ted 嗯,我认为想出既能在中型和大型服务器上良好工作,又能很好地适应典型桌面机器的算法是一项挑战。但是,我认为这是可以做到的。在某些情况下,最终结果可能看起来不像传统上用于支持大型服务器或小型嵌入式系统的方式。但这正是 Linux 内核工作的魅力所在!我们并不总是以传统方式实现事物,而是尝试寻找新的方法来解决问题。
所以不,我不认为在为大型服务器和小型服务器优化 Linux 之间必然会存在冲突。我确实认为,主要调整目标将继续是典型的桌面机器,因为这是大多数开发人员拥有和能够负担得起的。然而,典型的桌面(以及典型的嵌入式系统)已经逐渐变得越来越强大,随着时间的推移,Linux 将具有出色性能的系统范围将随着每个新的 Linux 主要版本而继续增长。
LJ 除了 Rubini 和 Corbet 的书之外,您会如何建议想要贡献的人学习内核,无论是为 2.4 编写驱动程序还是为 2.5 编写狂野的功能?
Ted www.kernelnewbies.org 网站绝对是最好的入门网站之一。除此之外,学习内核的最佳方法是跳进去并开始使用它!快来加入吧!水很棒!
LJ 您还有什么要补充的吗?
Ted 只是我认为自己非常幸运。十年前,Linux 只是一个爱好;我为了乐趣而做的事情。现在它已成为计算机行业的主要力量,所以我可以全职从事我曾经仅仅因为喜欢而做的事情。这太棒了。真的太棒了。
电子邮件:dmarti@zgp.org
Don Marti 是 Linux Journal 的技术编辑,Richard Vernon 是 Linux Journal 的主编。