Linux 长期展望,第一部分
我在 1990 年遇到了 Phil,那时离我遇到我的妻子 Joyce 不久。这有点像打包交易。Joyce 结交了很多有趣的朋友,而 Phil 在她的名单上名列前茅。她早些时候在西雅图约会另一位 UNIX 极客时认识了他。他们都自认为比几乎所有人都要聪明(虽然 Joyce 对此比较谦虚),并且有很多共同的兴趣,包括旅行、商业、美食和不断地用充满爱意的侮辱来调味的诙谐幽默。
Joyce 每次访问西雅图(我们住在湾区)总是住在 Phil 家。而且,他可以说“我睡你的妻子比你时间长”,而我会请他喝啤酒,这在很大程度上解释了这个人的性格。像这样的话纯粹是 Phil 的风格。他知道底线在哪里,所以他会越过它。这只是让他成为一个伟大的极客的原因之一。

Phil 也是一位博学家。他不仅仅擅长很多事情——他简直是才华横溢。
以汽车维修为例。这家伙亲自维护着一辆三十年前的梅赛德斯柴油车,还有一辆他自己用旧大众 Rabbit 改装的电动汽车。
他是一位电子学奇才,对广播电子学有着惊人的了解。作为一个曾经痴迷于无线电的爱好者,我以为我对无线电工程略知一二。直到 Phil 和我开始谈论他青少年时期在洛杉矶作为极客寻找发射器的日子。作为一个在新泽西州长大的孩子,我过去常常带着晶体管收音机去梅多兰兹,解开哪些巨型塔楼属于哪些巨型 AM 广播电台的谜团。与此同时,Phil 和他的伙伴们玩捉迷藏游戏,用他们自制的微型发射器藏在洛杉矶盆地周围,有时还会玩一些花招,比如把发射器连接到铁轨上,这样辐射的轨迹就会长达二十英里。优势:Phil。
去年夏天在我们家,Phil 修理了一个困扰我一年的 FM 发射器套件。他花了大约三分钟,在此期间他解释了不仅我的工具出了什么问题,而且发射器设计也存在问题,从完成大部分工作的芯片开始。他自己自制的发射器(我相信是他自己设计的)更好。我怎么反驳?何必呢?
在计算机方面更糟糕,因为那是 Phil 的专业。他接触计算机的时间比地球上大多数人都要长。当他看到一个重要的趋势时,他也能意识到,这就是为什么他在世界上大多数人甚至还没有注意到互联网时,就将注意力转向了 Linux。
在 93 年和 94 年,他通过将我的电子邮件地址列入一个探讨创办免费软件杂志的想法的名单中来奉承我。我尽可能地跟进(对于一个绝对不与其他名单上的人属于同一阶层的极客来说)。但是,当 Phil 突然决定创办一本关于 Linux 的杂志时,我们都很惊讶。Linux 到底是什么?Phil 知道。
在 94 年,当 1.0 内核发布时,《Linux Journal》也随之诞生了。我惊讶地看到它稳步增长,以及(像往常一样)Phil 似乎是对的,Linux 在市场上不可避免地会取得胜利。他说,即使它是免费的,商业也会发现它比大多数与之竞争的昂贵产品更有用,就像互联网一样。而且,与互联网一样,商业开发是不可避免的。
在 99 年初,Phil 向我展示了在运行 KDE 的 Linux 笔记本电脑上运行的 Star Office。它看起来像是 Windows 杀手,这种可能性让我大吃一惊。然后他邀请我加入《Linux Journal》以扩大对商业问题的报道,所以我加入了。(这正是我开始与人合写 The Cluetrain Manifesto 的时候,这对我来说有点像职业生涯的双重打击。)
去年八月,红帽(Red Hat)上市了。 Cobalt、VA Linux 和 Andover 紧随其后。在不到两个季度的时间里,创造了数十亿美元的 Linux 新财富。然后,它像冬末的雪一样融化了。主流媒体,尤其是旧的 PC 杂志,一直将 Linux 描绘成去年的潮流。但是,正如 Phil 很快指出的那样,所有 Linux 公司的总价值比一年前要高得多。再次强调,要放眼长远。既然我们都 52 岁了,我能理解这一点。
我采访过很多因某些新闻原因而备受关注的 CEO。但是,采访 Phil 有其他的原因。首先,他是一位重要的 Linux 人物,他的谦虚使他没有出现在自己的杂志上。其次,他的观点不仅仅来自暂时的好运。他一开始就很聪明,但他从经验中学习,而且他比几乎所有人都有更多的经验。
Doc Searls: 当 Linus 还是个孩子,还在玩 Commodore VIC-20 时,你已经是 UNIX 的老手了。随着 Linux 行业进入企业,在那里最熟悉的计算世界是 Microsoft NT 和 Windows,关于 UNIX,你有什么可以告诉我们,但似乎正在被遗忘的事情吗?
Phil Hughes: 我第一次接触 UNIX 是在 1980 年,当时我说服我所在的公司,UNIX 系统和 C 语言将解决我们所有的问题。这是一家以工程为基础的公司,生产半导体测试设备。
我们需要的是一个软件开发环境,在那里,少数工程师和程序员正在编写代码来控制我们正在设计的设备。UNIX 是正确答案的原因是,我们需要一个协作环境,多个用户可以共享文件;我们需要编译器和汇编器;并且我们需要构建块来组装一些支持工具,例如可以将代码重新格式化并下载到我们正在构建的机器中的程序。
有人,可能是 Dennis Ritchie,将 UNIX 描述为一个装满工具的工具箱。当您遇到问题时,您会将其分解为一组较小的问题,然后查看是否有可用的工具来解决每个较小的问题。编写少量 C 代码,也许是 awk 或 sed 脚本,以及对 sort 和 uniq 等实用程序的一些调用,并使用 shell 脚本将整个内容粘合在一起,这并不罕见。
这与今天的 GUI 方法大不相同,在 GUI 方法中,您会找到一个巨大的单片程序,并尝试诱使它执行您想要的操作。也许您可以——但是,如果您不能,您就走到了死胡同。
Doc: 这正是我几周前在 SGI 参加的优秀“Linux 入门”课程中学到的东西(这可能有点夸张,但我们姑且这么认为)。让我惊讶的是,UNIX 的工具箱性质使创建工具和解决问题都变得非常容易。是的,学习 shell 命令肯定需要动脑筋,但了解创建和移动目录、查看和更改权限、同时重命名和移动文件是多么容易,这真是一种启示。通过 grep 和正则表达式搜索也是如此。当然,您可以使用 KDE、Gnome 和 PC 操作系统中的 GUI 查找命令进行复杂的搜索,但速度、灵活性和内在的复杂性就是不如 UNIX。而且它们很慢。
Phil: 这始终是我们在招聘新人时遇到的问题。如果我们给他们 Star Office,他们可以更快地提高工作效率,但投资于他们并教他们 shell 命令、vi、troff 等,从长远来看会让他们更有效率。最好的例子是在编辑方面,每个人都使用 vi 来准备文章以进行排版。如果他们使用文字处理器而不是 vi,那将花费更长的时间。像 Darcy 这样长期与我们共事的人就是证明。
Doc: 我想知道两件事:1) 人们学习 Linux 基础知识(例如您刚刚列出的那些)需要多长时间,以及 2) 非极客的人在解决自己的问题时感到有多大的能力。一些背景:我注意到在大多数企业中,人们倾向于学习关于 Microsoft Office 的五个方面:如何格式化文档、如何在电子表格中求和、如何构建幻灯片、如何编写和发送电子邮件以及如何在系统出现故障时致电技术人员寻求帮助。
Phil: 我们雇用的一些人是 UNIX 人员,所以他们具备他们需要的所有背景知识。然而,大多数人不是。那些在学习 Linux 方面最成功的人,一开始从事的工作只需要最少的 Linux 知识就能相当高效地工作。Darcy 就是一个例子。她五年前以运输人员的身份来到这里。就计算机而言,她只需要学习我们专有的数据库系统和电子邮件。随着她学到更多,她可以做更多的事情。
我们很少看到极客决定他们可以在严肃的层面上解决自己的问题。有些人对学习更多知识表现出了兴趣。这就是为什么我们实际上给了一些员工一些系统。
Doc: 所以 GUI 计算在 Linux Journal 是次要的。在很大程度上,公司以命令行模式运行。
Phil: 是的,但我并不是说 GUI 计算不好,只是它并不总是解决方案。我最大的担忧是它正在改变人们的思维方式。我看到人们不是查看问题并以逻辑方式解决问题,而是因为他们只了解电子表格,所以就认定电子表格是解决所有问题的方案。
或者,回到一个常见的类比,如果你的唯一工具是锤子,那么一切看起来都像钉子。您可以不断为您的锤子添加功能,但您仍然拥有一把锤子。
Doc: 我将其视为类似于汽车维修的东西。如果您了解计算机的真正工作原理,您可以做更多的事情。但很少有人知道,就像很少有人知道汽车是如何工作的一样。
举个例子。几天前,一位朋友开着我的旧斯巴鲁旅行车送我们去机场。在回家的路上,她惊慌失措,因为汽车逐渐失去动力,最终似乎爆炸了,引擎盖下冒出巨大的噪音和白色烟雾。她讲述了一个令人痛苦的故事,因为她确信发动机已经爆炸了。我从来都不是专业的机械师,但多年来,我开的车都需要在后备箱里放一个工具箱,而且我在很多汽车上做了很多解决问题的工作。当我仔细听取她的报告时,很明显我们在这里处理的是冷却问题。果然,我在加热器和冷却系统其余部分之间的软管线的中间发现了一个破碎的塑料部件。所以,我拿起从破碎的塑料部件上幸存下来的短管,把它塞进两根软管的末端,把它们夹紧,大约 20 分钟后就让这辆车重新上路了。不同之处在于我的朋友不了解汽车是如何工作的,甚至不知道如何解决简单的问题。她甚至从未看过仪表板上的水温表。
我认为 UNIX 爱好者看待操作系统的方式,就像懂机械的驾驶员看待汽车一样。如果出现问题,它们很可能会被暴露出来并可以修复。
Phil: 完全一样。你甚至可以用汽车继续沿着这条思路走下去。你不必懂物理学才能开车,但如果你懂,你就能更好地应对诸如在湿滑路面上开车的情况。
Doc: 我认为您也理解什么时候是重大故障,什么时候是可以关注甚至忽略的问题。作为一名 GUI 人员,关于 Linux(和 UNIX)让我震惊的是,它能够承受各种程序和其他故障,并继续运行下去。故障就像广阔的进程流中的岩石,进程流不断流动。用汽车的比喻来说,在像 Windows 或 Macintosh 这样的密封引擎盖系统中,小故障会导致整个系统崩溃。Windows 最终发展到足以处理多任务处理,但这并没有减少 NASA 所谓的 Crit-One 故障的数量:无法解决的致命问题。我听说 Windows 2000,实际上是最新的 NT,在这方面做得更好,但在逻辑上(在我看来)它不可能在可靠性方面与 Linux 竞争,仅仅是因为它的太多部分对机械师来说是禁区。它在秘密的比特中,被密封在混凝土中。
然而,PC 媒体从未谈论过这一点,仅仅(我认为)是因为他们习惯于驾驶带有自动变速器和密封引擎盖的豪华汽车。UNIX 世界——包括整个互联网及其运作方式——是一个整体,不能用几个个人部分来理解,无论它们多么花哨。
Phil: NT 是一个从头开始编写的新系统。因此,它在某些方面具有优势,因为它可以在编写时解决旧的 MS 产品的问题。但是,有两个问题。第一个是兼容性。NT 中有很多东西使其几乎与 Windows9x 兼容。这意味着它必须支持 Windows9x 的一些缺点。其次,它有惊人的新代码行数。这保证了一定数量的错误。
Doc: 运行 GUI(例如 KDE 或 GNOME)的 Linux 计算机的优点之一是,您可以进入终端模式并在命令行中工作。您无法在 Windows 上做到这一点。您也无法在 Macintosh 上做到这一点,尽管下一版本的 Mac GUI 将基于具有 Mac 内核和命令行访问权限的开源 BSD。如果您愿意,您可以打开一个 shell,进入其中并进行真正的计算工作。我很想看看这是否会对市场产生任何影响。Apple 已经在新操作系统上悄悄运行其大部分重型服务器。这可能是 Steve Jobs 在 NeXT 的 UNIX 世界中度过十年时间的结果。
Phil: 您可以在 Windows 计算机上获得 shell,但与 Linux 相比,其功能要少得多,复杂性也低得多。我很少使用 Windows,但每次使用时,我做的第一件事就是启动一个 shell,以防我想做任何真正的事情,我将其定义为删除文件、移动文件、复制文件……您明白了。请注意,我最终做的最常见的事情是将文件复制到软盘,以便我可以将它们带到 Linux 系统并使用 sed 和 awk 等工具来处理它们。vi 不是问题;我总是把 vi 放在 Windows 计算机上。
Doc: 我记得 Linux Journal 是从一次电子邮件对话中发展起来的——我不太可能参与其中——关于创办一本免费软件杂志。这里有两个问题:1) 最初的团队中还有谁?以及 2) 到底发生了什么?
Phil: 在 1993 年,我有一个创办一本免费软件杂志的想法。当 SSC 正在为 UNIX 和 UNIX 相关程序制作袖珍参考书时,我决定独立于 SSC 创办这本杂志。我们有六七个人参与讨论最初的想法。早期的参与者包括 Arnold Robbins,SSC 一些产品的作者;Laurie Tucker,亚特兰大的一位朋友;Gerry Hammons,一位多年的朋友和前同事;David Keppel,一位华盛顿大学计算机科学研究生;以及 Melinda McBride,另一位前同事。
我建立了一个邮件列表,以便我们所有人都可以保持联系。有一天,我意识到,要办一本好的免费软件杂志,你必须像《消费者报告》(Consumer Reports)一样,没有广告。我做了一些算术,意识到我们离我估计创办杂志所需的 1000 万美元还差大约 9999900 美元。我在我们的列表中发布了我最初认为是玩笑的话:我们为什么不只报道 Linux 呢?
每个人都认为这是一个好主意。所以,我决定认真考虑一下,并同意了。它具有平衡性:做起来不会花费太多,但市场也不大。不确定这是否是好的平衡,但它是平衡。
我在 comp.os.linux 上发布了一些问题,那是当时唯一的 Linux Usenet 新闻组,并收到了非常积极的响应。因此,看起来我们有受众,所以我开始着手行动。
事情看起来不错,我们几乎准备全力投入,但这时发生了一些灾难。最重要的是我的朋友 Gerry 去世了。他正在为我们所需的基础设施做一些编程工作,而且他还打算投资。显然,我们需要暂停这个项目,我再次在 Usenet 上发帖,让人们知道道路上有一个非常大的障碍。
当时,Bob Young 创办了一份名为《纽约 UNIX》(New York Unix)的出版物。有人看到了关于我们问题的帖子,并把它给了 Bob。Bob 联系了我,并建议如果我可以承担编辑的任务,他可以担任出版商。我们决定尝试一下。
在发行了两期之后,Bob 和我都清楚地意识到这不是正确的合作关系。我们分担了责任,他承担了已完成印刷的债务,我承担了订阅义务——926 位读者已经支付了杂志的 10 到 12 期费用。我将《Linux Journal》并入 SSC,然后我们继续经营。
Doc: 所以你确实给了 Bob Young 他在 Linux 领域的起点?
Phil: 是的。
Doc: 那就对了。几周前我和 Bob 谈话时,他非常感谢您为他开启 Linux 职业生涯所做的一切。当我告诉他“Phil 说他教你如何拼写 Linux”时,他说:“没错!我欠 Phil 很多。他甚至给了我我最喜欢的比喻之一:闭源就像一辆引擎盖被焊死的汽车。”(注意:我有这段对话的录音,所以我可以使用原始措辞,这与此非常接近。他还表示愿意帮助宣传您的下一本书,无论它是什么。)
Phil: 虽然他将引擎盖比喻归功于我,但我真的不记得用过它。但是,我确实喜欢它。
Doc: 这就像产生《The Cluetrain Manifesto》(线索火车宣言)名称的那句话:“线索火车在那里每天停靠四次,持续了十年,但他们从未收货。” 告诉我那句话的人已经不记得说过这句话了。
无论如何,现在还有谁参与其中?
Phil: Laurie Tucker 在 SSC 工作,职位是特别项目。她编辑文章、编写代码,目前负责《LJ Buyer's Guide》(LJ 买家指南)。Arnold Robbins 曾为我们写过一段时间的文章,但我们当时付不起他应得的报酬,所以他去做其他事情了。David Keppel 获得了博士学位,现在在 Transmeta 工作。
Doc: 对我来说,《 Linux Journal 》最有趣的事情之一是,它似乎在很大程度上像 Linux 本身一样编写。许多功能和专栏都来自读者——Linux 社区的成员。而且他们中的大多数人都在解决实际问题。我感觉 Linux 和《 Linux Journal 》都在共同努力建造谷仓。
Phil: 完全是这种感觉。在早期,许多作者惊讶于我们实际上付钱给他们为我们写作。有些人只是将这笔钱捐赠给了自由软件基金会(Free Software Foundation)或其他项目。
Doc: 你知道,电子世界充满了所有这些围绕商业的新缩略词:B2B 代表企业对企业,B2C 代表企业对消费者,B2E 代表企业对企业。这些缩略词都没有对话的含义。所有这些都只是我们自祖先以来就拥有的旧式传送带商业模式的新名称,那时我们祖先的姓氏是 Smith、Miller、Farmer 和 Baker 等手工艺人,他们被从自己的作坊中拉出来,在矿山或工厂的工业供应商那里找到了一份工作。商业界已经与真实的市场和真实的客户脱节了整整两个世纪。我在商业媒体上读到的大部分内容,而商业媒体本身就是一个庞大的新兴产业,都是关于利用这种模式:将我们对行业的了解——这条传送带,从少数到多数的“价值链”——并将其安装在技术世界中,坦率地说,技术世界是由极客们建立的……而不是为了企业目的。
所以我有《 Linux Journal 》的一个缩略词:G2G 代表极客对极客。因为这就是正在创造新世界的模式,而最大的讽刺是,新经济领域的人们对此一无所知。这使得它更具颠覆性。
Phil: 这不是什么新鲜事。记住,UNIX 的诞生是因为 30 年前,几个极客想玩电脑游戏。我想知道 30 年后,是否大多数人甚至都不知道 Linux 是一个学生项目。实际上,我想知道现在有多少人不知道这一点。
Doc: 您如何看待今天的自由/开放运动?它发生了怎样的变化?是变得更好了吗?
Phil: 这里有两件事:开放和自由。我们在 60 年代和 70 年代的 mainframe(大型机)上拥有开放和自由的软件。如果您购买了 mainframe,它会附带一个包含源代码的操作系统。当您花费数百万美元购买计算机,或者更常见的是,租赁一个价值数百万美元的计算机系统时,为什么不给您代码呢?这不像您会去 Radio Shack,购买另一台计算机并复制操作系统。
硬件价格下降、通用硬件和 Amdahl 公司共同迫使发生了改变。首先,设计了 IBM mainframe 的 Gene Amdahl 创立了自己的公司,生产像 IBM mainframe 这样的机器。我所说的“像”是指它们具有相同的指令集,因此可以运行相同的操作系统。IBM 现在不得不将操作系统解绑并收费,以便从销售给 Amdahl 用户的产品中赚钱。
Doc: 我以前从未听过这种分析。这真的很令人着迷。您是说,至少在历史上,软件确实想要自由。而 Bill Gates 发明了一个本不需要存在的行业。这就是 Neal Stephenson 在他的优秀小书《 In the Beginning was the Command Line》(In the Beginning was the Command Line)中提出的观点。
Phil: 是的。操作系统是计算机制造商必须随硬件一起提供的。没有它,他们就无法销售硬件。
Doc: 您认为 IBM 正在通过 Linux 回到那个方向吗?他们非常清楚地表明,他们不再那么在意销售操作系统了,也许是因为最初的想法就不是这样。他们销售硬件。为什么不销售更容易部署的硬件,因为它运行的是通用操作系统呢?
Phil: 是的,我这么认为。IBM 放弃了他们的 Web 服务器,转而支持 Apache。我认为他们知道人们不想购买操作系统——他们想购买解决方案。实际上,我认为他们在 PC 出现时就知道了这一点。我觉得 Microsoft 设法混淆了这个问题,而 IBM 在一段时间内也上当了。
第一台廉价且通用的计算机是 IBM PC。其他制造商纷纷效仿,制造廉价的克隆产品。这意味着操作系统的成本再次不能与硬件成本捆绑在一起。除了价格方面的“免费”结束之外,过去的开放性也消失了,因为存在直接竞争。
GPL 是一种试图将自由重新纳入其中的尝试。它只是一个例子,BSD 许可证是另一个例子。每种许可证都有其优点和缺点,但我的观点是,我们过去拥有这种自由,但由于硬件发生了变化,我们现在必须做一些不同的事情,才能将自由——在价格和自由方面——重新带回计算领域。
向商人解释 BSD 许可证相当容易。他们仍然会持怀疑态度,但很容易告诉他们,您可以免费获得一些东西,随意使用它,然后出售它。
Doc: 因为您只需要署名原创者,不是吗?
Phil: 完全正确。您可以构建专有产品,而不必传递您的添加或改进。
GPL 就困难得多。他们不明白为什么进行更改然后将其赠送出去是有意义的。
或者他们应该放弃他们所做的任何更改。换句话说,不要表现得像他们独家拥有它一样。
从商业意义上讲,脱离上下文来看,它没有意义。但是,上下文才是问题所在。这与 IBM 随硬件一起向您提供操作系统是一样的;您需要向商人展示,放弃操作系统将如何销售其他产品。有点像在汽车经销商处赠送钥匙链,然后希望您购买一辆汽车来搭配它。
随着每个新供应商进入 Linux 领域,您都需要教育他们。您需要向他们展示成功案例。最终,他们会明白的。
电子邮件:ljeditors@ssc.com