Jordan Hubbard 曾是 FreeBSD 的创立者之一, 现任苹果公司 Darwin 项目的负责人. Jordan 只拥有高中学历, 但对计算世界做出了令人注目的贡献. 在这篇访谈里, Jordan 将谈及他参与 Darwin, FreeBSD 和 386BSD 的情况,以及他决定离开 FreeBSD 核心团队的背景.

问: 请简单介绍一下你的个人情况.

答: 好的. 我现住在加州硅谷, 以前是在旧金山. 我实际出生在夏维夷, 在不同的时期到过世界上不同的地方. 我一生中不断在移动, 并没有固定在某一个地方, 我喜欢这样. 我现在39岁, 只接受过高中教育, 因为我当时想尽早结束我的学校教育以便有充足的时间来投身于工业界. 我的第一个工作是用 BASIC 写一个会计软件, 当时我十四岁. 后来还做过 清单管理软件(inventory management software), 文字处理软件, 大型机的系统管理等等. 在与UNIX 和各种古怪神秘的操作系统打交道的同时, 我多数情况是一个小型机和大型机的***. 直到486出现以后, 我才开始接触 PC, 并在上面运行 BSD.

问: 请谈一谈你参与苹果公司 Darwin 项目的情况.

答: 我负责苹果公司中专门于 Darwin 发布 和 Mac OS X 中 Darwin 部分的维护工作的小组. 此外, 我们不停地在融和 Darwin, FreeBSD, 以及其他开源项目中共有的一些技术, 尽我们所能地把 Darwin 做成一个好的 UNIX.

问: Mac OS X 的 Darwin 部分是由那些部件组成的?

答: 几乎所有与命令行界面有关的部分, 内核,以及相当一部分设备驱动程序. 你可以把 Darwin 看作是"图形界面下的一切"(everything below the GUI).

问: 如果没有 Mac OS X 的其他部分, 光 Darwin 本身有什么用吗?

答: Darwin 可以完全独立地运行在 Power PC 和 X86 平台上. 如果加上 XFree86 以及其他你所想要的东西(比如KDE 或 fvwm), 你可以得到一个和其他开源 UNIX 相当的桌面操作系统.

问: Darwin 和 FreeBSD 相似到什么程度?

答: 从某些角度讲, 它们非常相似. 不仅仅是人们熟知的 userland, 也包括大量的网络支持代码, 文件系统支持代码, 以及几个文件系统都是共享的. 但从微内核和能源管理的角度, 它们有很大的不同, 另外, 安全和认证(authenticat)模型也有相当的区别. 也就是说, 从某些方面做比较相对简单, 但从其他的方面则相当困难.

问: Darwin 相对于 FreeBSD 有什么优势吗?
答: 坦率地说, 我认为 Darwin 有更大的创新自由度. 尽管是建立在大量的经过检验证明良好的技术之上, 但作为一个操作系统而言 Darwin 还很"年轻", 并且它的目的是进入一大批 FreeBSD 可能永远不会涉及的用户群. 这将有力地推动解决一些 FreeBSD 不可能投入资源去解决的老大难问题". 另外, 有一批全职的, 有薪水的工作人员也有助于实现这一的目标. 我实际上两个系统都喜欢, 但是当桌面和服务器有了一个统一的 BSD 前端的时候, 很难讲有什么优势和不足.

问: Darwin 于 1999 年作为开源项目首次发布, 那以后, 苹果公司以外的社区参与情况如何呢?

答: 有过一些曲折. 我们花了一些时间来让人们相信苹果公司对开放源代码是严肃的, 并且将一直参与开放源代码运动, 现在这已是发生了的事实. 最近, 随者 OpenDarwin 项目的建立, 情况有了新的进展, 人们可以更容易的参与. 我可以说, 到目前为止, 苹果公司以外的社区已贡献了相当数量的代码. 在开放源代码社区和UNIX 社区, 对 Mac OS X 和 Darwin 都有很高的热情.

问: 在93年, 你是 FreeBSD 的创始人之一. 我也在FreeBSD手册中读到过一些关于 FreeBSD 早期的情况. 其中你提到 FreeBSD 始于对Bill Jolitz's 386BSD 的补丁盒(patchkit). 当时你是怎样参与到这个项目中的?

答: 当 386BSD 0.0 出来的时候, 我实际上已经在我的 486 PC 上运行 4.3 BSD. 当时是作为一个在真正的微内核模式(true microkernel mode) Mach 3.0 之上的单独服务(single server), 其中信息(messages)在 BSD server 部分和 Mach 部分之间传递, 地址空间(address spaces) 实现了真正的分离. 我很喜欢这种架构设计. 由于我当时拥有的代码是 AT&T 许可的, 我很幸运地成为当时少数能为有 OS 许可证并且能合法运行 AT&T 软件的公司工作的人. 这给更开放地和他人合作以改进代码带来很大障碍. 当 386BSD 0.1 出来的时候, 我发现它基本上是可用的而且是自由许可的(FREE), 就立即发生兴趣而再也没有回头. 自然而然, 我们可以开始相互合作, 我们中的一些人已经着手解决我们所发现的问题. 这些努力导致了 386BSD 补丁盒(patchkit), 其他的都已经基本是历史了. 我是最后几个 386BSD 补丁盒(patchkit) 维护者之一, 直到我们发现与 Bill 已经无法合作下去, 我们组成了 FreeBSD.

问: 在 FreeBSD 手册中, 你提到 " Bill Jolitz 没有任何暗示而突然决定从项目中拿走他的那部分". 他为什么那样做呢?

答: 坦率地说, 我们中间没有人真正理解 Bill 和他那古怪的思维模式. Bill 绝对是一个聪明的家伙, 能够完成很多难度很高的代码. 但他也是这样一种人, 他们如果为你的公司工作的话, 将把自己和一台工作站锁在一个屋子里, 吃着比萨饼这样的食品, 不开门而把所有的东西都塞到门下面. 这简直是一种耻辱, 实际上在 BSDi 打算进入和 AT&T 的愚蠢的法律纠纷的时候, 在一个出现了领导真空, BSD 社区充满恐惧,不确定和怀疑的关键时刻, 它导致了丧失大量领地给 Linux 的结局. 我们都有相当的技术背景和不错的头脑, 但缺乏足够的法律安全意识和有效的, 能在那样一个困难时刻团结不同的 BSD 部落的领导能力, 来带领大家走出给BSD 社区带来重大损害的这场风暴. 我们中的一些人后来奋身而起, 捡起了残渣碎片而重新开始, 并取得了不错的成就. 但在尝试与 Bill 合作下去的消耗中, 在努力使BSD 社区确信, AT&T 并不能够把 BSD 象虫子一样地捏死的过程中, 我们失去了非常重要的战略性的两年.

问: 386BSD 后来怎么样了?

答: 坦率地说, 我不知道. 它就象杜杜鸟那样地消失了. 也许 Bill 设法把最后一个支持者赶走以后, 项目本身失去了发展动力而最后消沉了. 没有人可以如孤岛般存在(No man is an island), 没有比一个大型软件项目的组织和开发更符合这句话了. 人际交往能力(People skills)是工程组织管理的基本要素. 386BSD 的领导方式简直不值一提, 于是它只能走上杜杜鸟那样的下场.

问: 是什么因素使你们选择了现在的 FreeBSD 许可? 有没有考虑过 GPL?

答: 从来没有考虑过GPL! 我们喜欢 BSD 许可, 喜欢它的简短和灵活. 他对工程人员和律师一样通俗易读, 这达到了我们的目的, 尽管它限制了我们的责任(liability), 但同时使代码为尽可能多的人使用. GPL 不是我们所认为的许可认同, 而是一种政治宣言. 纯粹就我而言, 我更原意把我的代码许可和我的政治分开. 我认为如果代码没能在能用他的地方得到应用, 那么代码的价值就没有得到充分发挥(code which isn't being used in a situation where it COULD be used is code which isn't achieving its full potential), 而 GPL 吓跑了很多潜在用户, 这在我看来是不利(counter-productive)的. 我不介意用户是否反馈回他们对代码的修改, 如果这发生了, 是锦上添花(an added bonus), 但我不会特意做什么来让它发生, 如用枪指着对方迫其就范(enforce at the point of a gun).

问: 这些年来, 你在 FreeBSD 项目中担任什么角色?

答: 我虽然是创立者之一, 但做过各种职务, 包括发言人, 发布工程师, 程序员, 系统管理员(有一阵我睡在机房隔壁),公司宣传员(corporate evangelist), 送货员(倒弄 CDs)等等. 我的哲学基本上是什么需要就干什么, 不管它是给商业公司打电话, 还是找司机帮忙, 在贸易展览上做宣传(evangelizing), 或者是写一个安装程序使 FreeBSD 变得更易于接受. 在过去 9 年中我干过任何事情.

问: 在过去十年中, FreeBSD 的发展有怎样的变化?

答: 当然它变得越来越大而越来越难于管理. 我过去认识项目中所有的成员, 我们定期举行电话会议来安排各种事务. 已经好几年不能这么干了. 现在我们只是在贸易展览和一些大型活动上碰面. 在这几年里大家做出了令人惊叹的工作, 但是, 毫无疑问, 现在是一个大的多的家庭. 如果能认识其中百分之十的人, 我会感到很幸运. 我想这就是进步的代价吧.

问: 你最近宣布逐步推出 FreeBSD 核心团队. 是什么导致这一决定的呢?

答: 我想我的辞职信已经说的比较清楚了, 但最主要的(if there was anything which stands out above all else), 仅仅是由于我缺乏足够的时间和精力. 我到苹果公司已有一年, 新工作富有挑战和也给予我回报. 我已不能再想过去那样投时间到 FreeBSD 上. 我也认为, 在一件事变得乏味而失去乐趣之前, 应该留出一定的时间和空间来脱身而出, 而不是死钻牛角尖而变成一个讨人嫌的家伙(rather than sticking around and just becoming a nuisance). 我发现自己变得越来越失去耐心而爱发脾气. 这不是个好兆头. FreeBSD 现在做的非常棒, 我想我最好是功成身退(to leave on a high note). 另外我也感到, 我们这些"老家伙"阻碍了 FreeBSD 重新塑造自我以适应几年来计算行业的快速变化. 年轻人的全新视野, 精力 和热心代表着 FreeBSD 的未来. 于是我对他们说 "继续向前!", 并把自己的位置腾出来.

问: 你还打算参与 FreeBSD 的开发吗?

答: 我当然这样希望如此. 我还没有发现自己新的"宠物项目", 但我在睁大眼睛, 看看有没有能让我眼前一亮的东西. 如果我一旦发现, 我就会"拨弄"它的源代码, 我总是能从中得到作为工程人员的最大乐趣.

问: 有什么会使你考虑重新成为 FreeBSD 核心团队的一员呢?

答: (笑), 这可是个棘手的问题. 我猜想如果以下几种情况之一发生的话, 我可能会考虑. 一是, 关于什么是核心这一概念的重新定义. 另一个是核心总体上应和额外的领导真空的分离. 在这种情况下, 如果我被问及是否原意承担什么角色的话, 我会成为这种"临时政府"(interim goverment)的一员. 但我更希望这样事情不要发生. 而是由核心团队中的新鲜血液来激发 FreeBSD 去探索新的方向, 在从中得到乐趣.

问: 你能对 FreeBSD 的未来说点什么?

答: 我想, 对 FreeBSD 以及类似的系统来说, 现在是一个有趣的时刻. 我们已经翻越了象 "可移植性"(portability) 和 "安全性" 这些为人所知的小山包. 更高, 更陡的尖峰还留在前面, 比如 "集群"(clustering), "分布式文件系统"(distributed file system), "无处不在的计算"(ubiquitous computing). 并不是说这些"山头"有多么新, 而是现有的解决方案需要相当的发展. 我认为这是 BSD 社区可以使自己与众不同的地方, 通过吸引一些老的, 富有经验的***, 他们目睹了过去几十年中发生的各种传统错误, 并且原意再试身手. 打个比方, 没有人知道我们是否已有比 NFS 更好的东西, 或者说所有的 server farm 已能够用更好的方法 去管理, 实现和扩展应用程序到不同的机器上去. 我有时在想, 解决这些问题的最好例子可能在我们的过去. 六十年代和七十年代是操作系统研究的黄金时期. 我们只需要翻回去研究其中的一些例子, 搞明白如何让他们"与时俱进", 并完成其中从未完成 "最后的百分之十"(常言说的好(as the adage goes), 百分之十的部分往往会花掉百分之九十的时间).

问: 你多次用过 Linux 吗?

答: 谈率地讲, 不是这样. 老实说这不是由于偏见, 我确信我可能在过去十年中安装过的 Linux 已经是今非昔比了, 我只不过是没有时间(去再看一看).

问: 除了与计算机打交道, 你还喜欢做什么呢?

答: 阅读科幻小说, 上网搜寻一些有趣的信息(google 是我的最新好友), 在当地山区公路上飙车, 偶尔也去做"带水肺潜水"(scuba diving) 和射击等等. 我也喜欢航空驾驶, 但在拿到我的单引擎执照之前, 实在没有时间和金钱投入了. 这也是我需要回头去完成的事情之一, 也许在今年吧.

问: 我也是一个科幻迷. 你有最喜欢的书或作者吗?

答: 我有很多最爱. 最喜欢的作者包括 Ray Bradbury(who's a god), Ian M Banks, David Brin 和 Vernor Vinge. 我也比较喜欢 Orson Scott Card, Poul Anderson, John Varley 和 Piers Anthony 等人的作品. 我敢肯定我这个名单漏掉了很多重要的名字, 只不过他们恰好没能进入我的大脑罢了. 在非科幻小说方面, Terry Pratchett 和 Dave Barry 的作品总能带给我乐趣, 当然, 说到好的另类历史小说, 你不能漏掉 Harry Turtledove.

问: 有什么"诀窍"要告诉给年轻的内核***们吗?

答: 持之以恒, 实践, 实践, 再实践. 就象演奏音乐或这修理汽车发动机一样, 没有比利用何可能的机会把两手弄脏和抓住机会去实践的办法了. 没有什么捷径, 魔弹, 或"傻瓜系列"能够取代整小时地盯着代码, 用已麻木的大脑对着问题不断进功, 直到它彻底投降而向你展示出最后答案. 我也希望有这样的东西, 特别是当最后一滴咖啡被喝完的时候. 但恐怕我能给的唯一"启发"还是百分之一百的真实和诚实.

问: 还有什么要补充的吗?

答: 还有一点, 记住永远要充满乐趣地去做一名***. 没有其它原因去牺牲这样的时间和精力到你生命中的任何事情.( There's really no other reason to sacrifice this kind of time and energy to anything in your life.

问: 你的新工作有什么有意思的地方吗?

答: 当然首先是工作环境和朝夕相处的同事们. 但我认为最酷的还是能够从事于一个真正"棒" 的桌面操作系统的开发, 而没有象程序员们描述和 Windows 打交道的感受那样, "把盖子捂起来", 即做出过分的妥协来实现用户界面友好.(此处不大好翻: There's a real Unix under there and on the desktop, I can blast Wintel PC users over the net in Return to Castle Wolfenstein! How much better than that does it get? ).

问: 非常感谢在百忙中抽时间来回答我的问题. 您对计算事业的长期贡献将永远激励着人们!