最初是命令行 #18
1Haschwalth
started this conversation in
Show and tell
最初是命令行
#18
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
最初是命令行
尼尔-史蒂芬森(Neal Stephenson)1999 年出版的《起初是命令行》(In the Beginning was the Command Line)是一部篇幅巨大的长篇小说,讲述了与操作系统有关的许多话题。他用有趣的比喻(将图形用户界面比作汽车)探讨了图形用户界面这一隐喻,并展示了命令行是如何发展起来的,以及为什么命令行至今依然存在。他还对微软当时在操作系统领域的垄断地位进行了批判,并将其与迪斯尼相提并论,认为他们都在向愿意相信自己的客户推销自己的愿景,即使存在更好、更便宜的替代品。
请注意,这其中有很多内容都非常非常陈旧过时。BeOS 已经死了,Mac OS X 还没有诞生。Linux 不再只是一个服务器方法论、一个命令行、一个小小的驱动程序库或几个低劣的窗口管理器。现在,Linux 已拥有众多软件公司的大力支持、多个先进的桌面环境和足够的驱动程序,只需对一些较新的系统进行一些调整,就能让任何系统正常运行。
简介
大约二十年前,苹果公司的创始人乔布斯和沃兹尼亚克提出了一个非常奇怪的想法:销售家用信息处理机器。苹果公司的业务一飞冲天,创始人赚了很多钱,并因大胆的远见卓识而获得了应有的荣誉。但就在同一时间,比尔-盖茨和保罗-艾伦提出了一个更奇怪、更天马行空的想法:销售计算机操作系统。这比乔布斯和沃兹尼亚克的想法要奇怪得多。电脑至少有某种物理现实性。它装在盒子里,你可以打开它,插上电源,看着灯光闪烁。而操作系统则完全没有实体。当然,它是装在磁盘里的,但实际上,磁盘只不过是装操作系统的盒子而已。产品本身就是一串很长的 1 和 0,只要正确安装和使用,就能让你操作其他很长的 1 和 0 字符串。即使是那些真正了解计算机操作系统的少数人,也很容易把它看作是一种天马行空的神秘工程奇才,就像增殖反应堆或 U-2 间谍飞机一样,而不是一种可以(用高科技的术语来说)"产品化 "的东西。
然而,盖茨和艾伦创立的公司现在却像吉列销售剃须刀片一样销售操作系统。新版操作系统的推出就像好莱坞大片一样,有明星代言、脱口秀表演和全球巡演。操作系统市场之大,足以让人担心是否已被一家公司垄断。现在,即使是我们社会中最不懂技术的人,也至少对操作系统的作用有一个模糊的概念;更有甚者,他们对操作系统的相对优点也有强烈的意见。即使是不懂技术的计算机用户也普遍认为,如果你有一个在 Macintosh 上运行的软件,如果你把它搬到 Windows 机器上,它将无法运行。事实上,这是一个可笑而愚蠢的错误,就像在别克车的轮胎上钉马蹄铁一样。
如果一个人在微软公司成立之前昏迷不醒,现在醒过来了,他就可以拿起今天早上的《纽约时报》,了解其中的一切--几乎所有的内容:
这到底是怎么回事?操作系统行业是有未来,还是只有过去?以下是我的观点,完全是主观臆断;但由于我不仅花了大量时间使用 Macintoshes、Windows 机器、Linux 盒子和 BeOS,而且还对它们进行了编程,因此我的观点或许还不至于消息闭塞到毫无价值的地步。这是一篇主观性文章,与其说是研究论文,不如说是评论,因此与 PC 杂志上的技术评论相比,可能显得不公平或有偏见。但自从 Mac 问世以来,我们的操作系统就一直以隐喻为基础,在我看来,任何带有隐喻的东西都是公平的。
MGB、油罐车和蝙蝠车
就在乔布斯、沃兹尼亚克、盖茨和艾伦梦想着这些不可能实现的计划时,我还是一个住在爱荷华州艾姆斯的少年。我一个朋友的父亲有一辆旧 MGB 跑车,在他的车库里锈迹斑斑。有时,他真的能把车开动起来,然后带着我们在街区里兜风,脸上洋溢着令人难忘的青春狂放的神情;在担心他的乘客眼里,他是个疯子,在爱荷华州的艾姆斯市熄火、回火,吃着生锈的小精灵和平托车的灰尘,但在他自己心里,他是达斯汀-霍夫曼(Dustin Hoffman),带着风穿过海湾大桥。
现在回想起来,这告诉了我两件事,关于人们与技术的关系。其一,浪漫和形象在很大程度上影响着人们的看法。如果你怀疑这一点(如果你有很多空闲时间),可以去问问那些拥有苹果电脑的人,他们会因此把自己想象成被压迫的少数群体的一员。
另一个更微妙的观点是,界面非常重要。当然,MGB 几乎在所有方面都是一辆糟糕的汽车:笨拙、不可靠、动力不足。但它很有驾驶乐趣。它反应灵敏。路面上的每一块小石子都能感觉到,路面上的每一个细微差别都能瞬间传递到驾驶者的手中。他能听出发动机的声音,并知道它出了什么问题。方向盘会立即响应他手中的指令。对我们乘客来说,这只是一种无意义的练习,无处可逃--就像他在电子表格上打数字时,从别人肩膀上窥视一样有趣。但对司机来说,这是一种体验。在很短的时间内,他将自己的身体和感官延伸到了一个更大的领域,并做了一些在无人协助的情况下无法做到的事情。
汽车和操作系统之间的类比并没有半点不好,所以让我用它来概括一下我们今天的情况。
想象一下,在一个十字路口,有四家相互竞争的汽车经销商。其中一家(微软)比其他几家大很多很多。多年前,它以销售三速自行车(MS-DOS)起家;这些自行车并不完美,但很好用,坏了也很容易修。
隔壁有一家与之竞争的自行车经销店(苹果公司),有一天,它开始销售电动汽车--价格昂贵但造型吸引人的汽车,其内部结构被密封起来,因此其工作原理是个谜。
作为回应,大经销商急忙在市场上推出了轻便摩托车升级套件(最初的 Windows)。这是一个鲁布-戈德堡(Rube Goldberg)装置,安装在三速自行车上后,可以勉强跟上苹果汽车的速度。用户必须戴上护目镜,而且总是从牙缝里抠虫子,而苹果车主则在密闭的舒适环境中飞驰,并对着窗外嗤之以鼻。但与苹果汽车相比,微型轻便摩托车既便宜又容易修理,其市场份额不断攀升。
最终,大经销商推出了一款成熟的汽车:一辆巨大的旅行车(Windows 95)。这辆车具有苏联工人住宅区的所有美感,它漏油、漏垫片,获得了巨大的成功。稍后,他们又为工业用户推出了一款庞大的越野车(Windows NT),它并不比旅行车更漂亮,只是更可靠一些。
从那时起,虽然吵吵嚷嚷,但变化不大。规模较小的经销商继续销售时尚的欧洲风格轿车,并在广告宣传上花费大量资金。他们的车窗上贴着 "倒闭!"的招牌,时间长了,招牌已经变得又黄又卷。大公司则不断生产更大的旅行车和越野车。
另一边是最近出现的两个竞争对手。
其中一家公司(Be 公司)正在销售可完全运行的蝙蝠车(BeOS)。它们甚至比欧洲轿车更漂亮、更时尚,设计更好,技术更先进,至少与市场上的任何其他产品一样可靠--而且比其他产品更便宜。
但有一个例外:Linux,它就在隔壁,而且根本不是一家企业。它是一群房车、蒙古包、帐篷和大地穹顶在田野里搭建起来的,以协商一致的方式组织起来。住在那里的人正在制造坦克。这些坦克不是老式的铸铁苏联坦克;它们更像是美国陆军的 M1 坦克,由太空时代的材料制成,从头到尾都塞满了尖端技术。但它们比陆军坦克更好。它们经过改装,永远不会发生故障,轻便灵活,足以在普通街道上使用,而且耗油量不超过一辆超小型汽车。这些坦克正在以惊人的速度当场生产出来,大量的坦克在路边一字排开,钥匙还在点火器上。任何人只要愿意,都可以爬上一辆,免费开走。
顾客们不分昼夜,成群结队地来到这个十字路口。他们中的 90% 直接去最大的车行购买旅行车或越野车。他们看都不看其他车行一眼。
在剩下的 10%中,大多数人都会去买一辆时髦的欧洲轿车,对那些去买旅行车和越野车的市侩们嗤之以鼻。如果他们注意到马路对面有人在卖价格便宜、技术高超的汽车,这些顾客就会嘲笑他们是傻瓜和白痴。
蝙蝠车专卖店偶尔也会卖几辆车给那些想要第二辆车来搭配旅行车的汽车狂人,但至少现在看来,它似乎接受了自己是个边缘人的事实。
这个免费赠送坦克的组织之所以能维持下去,是因为它有一些志愿者,他们拿着喇叭在街边一字排开,试图引起顾客对这一令人难以置信的情况的注意。典型的对话是这样的
拿着喇叭的黑客:"省点钱吧!接受我们的免费坦克吧!它无坚不摧,能以每小时九十英里的速度穿过岩石和沼泽,每加仑油能行驶一百英里!"
旅行车买家"我知道你说的是真的,但是......呃......我不知道如何保养坦克!"
牛角号:"你也不知道如何保养旅行车!"
买主:"但这家车行有机械师。如果我的旅行车出了问题,我可以请一天假,把它开到这里来,付钱让他们修理,而我可以在候车室里坐几个小时,听着电梯音乐。"
牛角号:"但如果你接受我们的免费油箱,我们会派志愿者到你家,在你睡觉时免费修理!"
买家:"离我家远点,你这个怪胎!"
牛角:"但是......"
买家:"你没看到大家都在买旅行车吗?"
BIT-FLINGER
在我乘坐那辆 MGB 时,我并没有想到汽车和计算机交互方式之间的联系。我报名参加了艾姆斯高中的计算机编程课程。在听了几堂入门课后,我们这些学生被允许进入一个小房间,里面有一台电传打字机、一部电话和一个老式的调制解调器,调制解调器由一个金属盒子组成,盒子顶端有一对橡胶杯(注:许多读者在读完这堂课后,会发现调制解调器和电传打字机是完全不同的:许多读者在读到最后一句话时,可能会感到一阵恐惧,担心这篇文章会变成一篇乏味的、老顽固式的回忆文章,讲述我们在过去的日子里是多么艰难;请放心,我其实是在棋盘上摆好棋子,准备就开源软件等真正时髦、新潮的话题发表观点)。电传打字机与几十年来用来收发电报的机器如出一辙。它基本上就是一台只能打出大写字母的打字机。它的一侧安装着一个较小的机器,上面有一卷长长的纸带,下面是一个透明的塑料料斗。
为了把这台设备(它根本不是电脑)连接到城对面的爱荷华州立大学主机上,你需要拿起电话,拨通电脑的号码,倾听奇怪的声音,然后把听筒狠狠地摔到橡胶杯上。如果你的目标是正确的,一个会用氯丁橡胶嘴唇裹住听筒,另一个会裹住话筒,完成一种信息的 "soixante-neuf"。 电传打字机被遥远主机的灵魂附体后会颤抖,并开始敲打出一些神秘的信息。
由于电脑时间是稀缺资源,我们使用了一种批处理技术。在拨电话之前,我们会打开打孔机(电传打字机侧面的附属机器),输入我们的程序。每按下一个键,电传打字机就会在我们面前的纸上打出一个字母,这样我们就能读出输入的内容;但与此同时,它还会将字母转换成一组八位二进制数字或比特,并在纸带的宽度上打出相应的孔洞。从纸带上打出的小纸片会飘落到透明的塑料料斗里,料斗里慢慢装满了只能用 "比特 "来形容的东西。在学年的最后一天,班里最聪明的孩子(不是我)从课桌后面跳出来,把几夸脱的碎纸片像纸屑一样扔到我们老师的头上,算是一个半亲切的恶作剧。这个人坐在那里,处于 "要么战斗,要么逃跑 "的原始反应的最初阶段,数百万比特(兆字节)从他的头发中飘落下来,进入他的鼻孔和嘴巴,他的脸在爆炸前逐渐变成紫色,这是我在正规教育中最难忘的一幕。
总之,显而易见,我与计算机的互动是极其正式的,被清晰地划分为不同的阶段,即:(1)坐在家里,拿着纸和笔,在离任何计算机都很远很远的地方,我会非常非常认真地思考我想让计算机做什么,并把我的意图转化为计算机语言--页面上的一系列字母数字符号。(2) 我会带着这些符号穿过一种信息封锁线(三英里长的雪堆)到学校,然后把这些字母输入一台机器--而不是计算机--它可以把符号转换成二进制数字,并把它们明显地记录在磁带上。(3)然后,通过橡皮杯调制解调器,我将这些数字发送到大学主机,主机会(4)对这些数字进行运算,并将不同的数字发回电传打字机。(5)电传打字机将这些数字转换成字母,并将它们敲打在页面上;(6)我在一旁观看,将这些字母理解为有意义的符号。
这一切所隐含的责任分工非常明确:计算机对比特信息进行运算。人类将比特理解为有意义的符号。但是,由于现代操作系统的出现,这种区别正在变得模糊,或者至少变得复杂,这些操作系统使用并经常滥用隐喻的力量,让更多的人可以使用计算机。也许正是因为这些隐喻,让操作系统成为了一件艺术品,人们开始对软件产生感情,就像我朋友的父亲对他的 MGB 一样。
那些只通过 MacOS 或 Windows 等图形用户界面与电脑互动的人--也就是说,几乎所有用过电脑的人--听到我在 1973 年用电报机与电脑交流时,可能会大吃一惊,至少会感到困惑。但是,过去和现在,使用这种特殊技术都是有道理的。人类有各种相互交流的方式,如音乐、艺术、舞蹈和面部表情,但其中有些方式比其他方式更适合用符号串来表达。书面语言是最简单的一种,因为它一开始当然就是由一串串符号组成的。如果这些符号恰好属于拼音字母(而不是表意文字),那么将它们转换成比特是一个微不足道的过程,而在十九世纪初,随着摩斯密码和其他电报形式的出现,这个过程在技术上已经完成。
早在计算机出现之前的一百年,我们就有了人机交互界面。当计算机在第二次世界大战前后问世时,人类很自然地将其嫁接到已经存在的将字母转化为比特的技术(即电传打字机和打卡机)上,从而与计算机进行交流。
它们体现了两种根本不同的计算方法。当你使用卡片时,你会打出一大堆卡片,然后一次性通过读卡器,这就是所谓的批处理。你也可以使用电传打字机进行批量处理,正如我已经描述过的那样,通过使用纸带阅读器,在我上高中的时候,我们当然被鼓励使用这种方法。但是--尽管我们努力不让自己意识到这一点--电传打字机可以做一些读卡器做不到的事情。在电传打字机上,一旦建立了调制解调器链接,你就可以直接输入一行字,然后按回车键。电传打字机会将这一行发送给计算机,计算机可能会也可能不会做出回应,电传打字机会敲出自己的几行字--随着时间的推移,就会产生你与机器交流的文字记录。这种方式在当时甚至没有名字,但在很久以后,有了一种替代方法,人们就把它追溯为命令行界面。
升入大学后,我在宽敞闷热的教室里学习计算机,几十个学生坐在略有更新的相同机器前编写计算机程序:这些机器使用点阵打印机制,但(从计算机的角度来看)与老式电传打字机完全相同。到那时,计算机在分时通信方面的能力已经有所提高--也就是说,大型机仍然是大型机,但它们在同时与大量终端进行通信方面的能力更强了。因此,不再需要使用批处理功能。读卡器被推到了走廊和锅炉房,批处理成了书呆子们的专利,因此在我们这些知道它存在的人中间,批处理也有了某种古老的味道。现在,我们都不再使用批处理,而是使用命令行界面--这是我在操作系统范式上的第一次转变,如果我早知道就好了。
每台美化过的电传打字机下面都有一大堆手风琴折叠的纸张,数英里长的纸张在滚筒中颤动。几乎所有这些纸张都被扔掉或回收利用了,连油墨都没沾过--这种生态暴行如此明显,以至于这些机器很快就被视频终端取代了--即所谓的 "玻璃电传打字机"--后者更安静,也不浪费纸张。同样,从计算机的角度来看,这些机器与二战时期的电传打字机毫无区别。实际上,我们仍在使用维多利亚时代的技术与计算机进行通信,直到 1984 年,Macintosh 推出了图形用户界面。即使在此之后,命令行仍作为许多现代计算机系统的底层--一种脑干反射--一直存在到图形用户界面(我从现在起称之为 GUI)的鼎盛时期。
GUIs
现在,任何一个编码员在编写一个新软件时,首先要做的工作就是弄清楚如何将正在处理的信息(在图形程序中,是一幅图像;在电子表格中,是一个数字网格)转化为线性的字节串。这些字节串通常被称为文件或(时髦一点的)流。它们对于电报的意义,就像现代人对于克罗马农人的意义一样,也就是用不同的名称来表达同样的意思。你在电脑屏幕上看到的所有东西--你的古墓丽影、数字化语音邮件信息、传真和用 37 种不同字体书写的文字处理文档--从电脑的角度来看,仍然和电报一样,只不过更长,需要更多的运算。
了解这一点的最快方法是打开浏览器,访问一个网站,然后选择 "查看/文档源 "菜单项。你会看到一堆类似下面这样的计算机代码:
这种垃圾被称为 HTML(超文本标记语言),它基本上是一种非常简单的编程语言,指示网络浏览器如何在屏幕上绘制页面。任何人都可以学习 HTML,而且很多人都在学习。重要的是,无论 HTML 文件代表了多么绚丽的多媒体网页,它们都只是电报。
当罗纳德-里根还是一名电台播音员时,他经常通过阅读电报中的简短描述来播报棒球比赛,这些描述通过电报线传送过来,并打印在纸带上。他一个人坐在带麦克风的软垫房间里,纸带从机器里挤出来,爬过他印有隐晦缩写的手掌。如果数到三和二 里根就会描述他脑海中的场景"彪悍的左投手走出打击区,擦去额头上的汗水。裁判员上前清扫本垒板上的泥土。"等等。当纸带上的密码宣布击出安打时,他会用铅笔捶打桌子边缘,发出轻微的声响,并描述球的弧线,就好像他真的能看到球一样。他的听众(其中许多人可能以为里根真的在球场观看比赛)会根据他的描述在脑海中重构当时的场景。
这正是万维网的工作原理:HTML 文件就是纸带上精辟的描述,而你的网络浏览器就是罗纳德-里根。图形用户界面也是如此。
因此,操作系统就是一堆隐喻和抽象概念,它们挡在你和电报之间,体现了程序员用来将你正在处理的信息--无论是图像、电子邮件信息、电影还是文字处理文档--转换成字节项链的各种技巧,而字节项链是计算机唯一知道如何处理的东西。当我们使用真正的电报设备(电传打字机)或更高科技的替代品("玻璃电传打字机 "或 MS-DOS 命令行)来使用计算机时,我们已经非常接近堆栈的底部了。不过,当我们使用大多数现代操作系统时,我们与机器的交互在很大程度上被中介化了。我们所做的一切,都要通过所有的隐喻和抽象概念进行一次又一次的解释和翻译。
Macintosh 操作系统从好坏两方面来说都是一场革命。显然,命令行界面并不适合每一个人,让技术含量较低的用户更容易使用电脑是件好事--如果不是出于利他主义的考虑,那也是因为这些用户构成了一个无比广阔的市场。很明显,Mac 的工程师们看到了一个全新的国度在他们面前展开;你几乎可以听到他们在喃喃自语:"哇!我们再也不用受文件作为线性字节流的束缚了,革命万岁!让我们看看我们能把它做到什么程度吧!"Macintosh 上没有命令行界面,只能用鼠标操作,或者根本不用。这在某种程度上是一种声明,一种革命纯粹性的证明。Mac 的设计者似乎想把命令行界面扫进历史的垃圾堆。
我与 Macintosh 的情缘始于 1984 年春天,当时我在爱荷华州锡达拉皮兹的一家电脑商店里,我的一位朋友--巧合的是,他是 MGB 所有者的儿子--向我展示了一台运行 MacPaint(革命性的绘图程序)的 Macintosh。1995 年 7 月,我试图在 Macintosh Powerbook 上保存一个重要的大文件,但它非但没有这样做,反而将数据彻底销毁,以至于两个不同的磁盘崩溃实用程序都无法找到它曾存在过的任何痕迹。在这十年间,我对 MacOS 的热情在当时看来是理所当然的,但现在回想起来,就像我朋友的父亲对他的汽车一样痴迷。
Mac 的问世引发了计算机世界的一场圣战。图形用户界面究竟是一项杰出的设计创新,让计算机更加以人为本,从而为大众所接受,引领我们迈向人类社会前所未有的革命;还是由海湾地区那些浮躁的黑客们梦想出来的侮辱性视听噱头,剥夺了计算机的强大功能和灵活性,将崇高而严肃的计算工作变成了幼稚的视频游戏?
与 20 世纪 80 年代中期相比,今天的我对这场辩论似乎更感兴趣。不过,当微软公司推出第一代 Windows,认可了图形用户界面的理念后,人们或多或少就不再争论这个问题了。至此,命令行的拥护者沦为愚蠢的老顽固,而 MacOS 用户和 Windows 用户之间的新冲突也随之爆发。
争论有很多。第一代 Macintos 即使在关机状态下,看起来也与其他 PC 不同:它们由一个盒子组成,内含 CPU(计算机中进行比特运算的部分)和显示器屏幕。这在当时被称为一种哲学宣言:苹果公司希望把个人电脑变成一种电器,就像烤面包机一样。但这也反映了运行图形用户界面的纯技术要求。在图形用户界面机器中,在屏幕上绘图的芯片必须与计算机的中央处理器(CPU)集成在一起,其集成程度远远高于命令行界面,而命令行界面直到最近才知道它们不仅仅是在与电传打字机对话。
这种区别是技术性的,也是抽象的,但当机器崩溃时,这种区别就变得更加明显了(对于技术来说,通常的情况是,你可以通过观察它们的失败,对它们的工作原理有最深入的了解)。在 CLI 机器上,当一切都变为地狱,CPU 开始喷出随机比特时,屏幕上就会出现一行又一行形状完美但随机的字符,这就是所谓的 "西里尔字符"(going Cyrillic)。但对于 MacOS 来说,屏幕不是电传打字机,而是放置图形的地方;屏幕上的图像是位图,是计算机内存中特定部分内容的字面呈现。当计算机崩溃并向位图中写入胡言乱语时,其结果就隐约像一台坏掉的电视机上的静电--"雪崩"。
即使在 Windows 推出之后,这种潜在的差异依然存在;当 Windows 机器出现问题时,旧的命令行界面就会像石棉防火帘一样盖在图形用户界面上,将燃烧的歌剧院的前厅封闭起来。当 Macintosh 遇到麻烦时,它就会向你展示一个炸弹的卡通形象,第一次看到时还觉得很有趣。
这些绝不是表面上的差异。Windows 在遇到困难时退回到 CLI 的做法向 Mac 的拥护者证明,Windows 只不过是一个廉价的门面,就像一块花花绿绿的毛毯盖在一张烂沙发上。他们感到不安和恼火的是,在 Windows 表面友好的用户界面下潜藏着--简直就是--潜台词。
对于 Windows 的粉丝来说,他们可能会酸溜溜地指出,所有的电脑,甚至是 Macintosh,都是建立在同样的潜台词之上的,而 Mac 的用户拒绝承认这一事实,似乎意味着他们愿意,几乎是急于上当受骗。
无论如何,Macintosh 必须切换显卡内存芯片中的各个位,而且必须以非常快的速度和任意复杂的模式进行切换。如今,这样做既便宜又简单,但在 20 世纪 80 年代初盛行的技术体制下,唯一现实的方法就是将主板(包含 CPU)和视频系统(包含映射到屏幕上的内存)紧密结合在一起--这就是 Macintosh 如此与众不同的密封外壳的由来。
Windows 刚问世时,它的丑陋是显而易见的,而它现在的后继者 Windows 95 和 Windows NT 也不是人们愿意花钱去看的东西。微软对美学的全然不顾,让我们这些 Mac 爱好者有很多机会对他们嗤之以鼻。Windows 看起来非常像 MacOS 的直接翻版,这让我们在道德上产生了强烈的愤慨。在真正了解和欣赏电脑的人(史蒂文-李维(Steven Levy)所说的非贬义的黑客)以及专业音乐家、图形艺术家和学校教师等其他少数群体中,Macintosh 曾一度被视为电脑之王。它不仅被视为一项卓越的工程技术,而且还体现了利用技术造福人类的某些理想,而 Windows 则被视为一种笨拙得可怜的模仿,是集统治世界的阴险阴谋于一身的产物。因此,在很早的时候,一种模式就已经形成,并一直延续至今:人们不喜欢微软,这没什么;但他们不喜欢微软的原因是考虑不周,最终弄巧成拙。
桌面上的阶级斗争
既然我们已经牢牢地抓住了 "第三条铁轨",那么就应该回顾一下一些基本事实:与其他公开上市的营利性公司一样,微软公司实际上是从一些人(其股东)那里借了一大笔钱,才得以从事比特业务。作为该公司的高管,比尔-盖茨只有一个责任,那就是最大限度地提高投资回报。他在这方面做得非常出色。微软在世界上采取的任何行动--例如发布的任何软件--基本上都是表象,除了反映比尔-盖茨履行其唯一职责的情况外,无法对其进行解释或理解。
因此,如果微软销售的商品不美观或不好用,这并不意味着他们是(分别)庸俗的人或愚蠢的人。这是因为微软公司优秀的管理层已经意识到,与把产品做得漂亮或没有漏洞相比,发布有明显缺陷的产品能为股东赚更多的钱。这固然令人讨厌,但(归根结底)还不至于比眼睁睁地看着苹果无情地自我毁灭更令人讨厌。
在网络上不难找到对微软的敌意,这种敌意有两种:一种是觉得微软太强大的人,另一种是觉得微软太俗气的人。这不禁让人联想到共产主义和社会主义的鼎盛时期,当时资产阶级遭到了两方面的憎恨:一方面是无产者,因为他们拥有所有的钱;另一方面是知识分子,因为他们喜欢把钱花在草坪装饰品上。微软正是现代高科技繁荣的化身--可以说,它就是资产阶级--因此也招致了同样的不满。
微软 Word 6.0 的开头 "闪屏 "很好地概括了这一点:当你启动程序时,你会看到一支昂贵的珐琅笔横躺在几张看起来很华丽的手工书写纸上。这显然是为了让软件看起来更有档次,对某些人来说可能有效,但对我来说却失败了,因为笔是圆珠笔,而我是钢笔一族。如果是苹果公司做的,他们会用万宝龙钢笔,或者中国毛笔。我怀疑这是否是个意外。最近,我花了一段时间在家里的一台电脑上重新安装 Windows NT,不得不多次双击 "控制面板 "图标。由于一些难以理解的原因,这个图标是一个爪锤和凿子或螺丝刀的图片,放在一个文件夹上面。
这些美学上的失误让人几乎无法控制地想嘲笑微软,但这都是题外话--如果微软对可能的替代图形进行了焦点小组测试,他们可能会发现,普通的中层办公人员会将钢笔与高高在上的管理者联系在一起,而更喜欢圆珠笔。同样,那些普通人,世界上那些秃顶的父亲们,他们可能首当其冲地承担着安装和维护家用电脑的重任,他们可能更喜欢爪锤的图片--也许他们还幻想着用真正的爪锤来敲打他们那笨重的电脑。
只有这样,我才能解释当前操作系统市场上的某些怪现象,比如,百分之九十的用户仍然在微软公司的停车场上购买旅行车,而免费的坦克就在街对面,任人宰割。
对于比尔-盖茨来说,分发一串 1 和 0 并不难,他早就想到了这个点子。难的是销售--让顾客相信他们的钱确实得到了回报。
在商店里买过软件的人都有过这样的经历:把包装精美的包装盒带回家,撕开包装盒,发现里面 95% 都是空气,然后扔掉所有的小卡片、派对礼品和垃圾,把磁盘装进电脑。最终的结果(丢失磁盘后)除了电脑屏幕上的一些图像和一些以前没有的功能外,什么也没有。有时甚至连这些都没有,只有一连串的错误信息。但你的钱肯定是没了。现在,我们几乎对此习以为常,但在 20 年前,这是一个非常危险的商业命题。比尔-盖茨还是成功了。他不是通过销售最好的软件或提供最便宜的价格来成功的。相反,他以某种方式让人们相信,他们用金钱换取了某种东西。
世界上每座城市的街道上都停满了那些笨重、嘎嘎作响的旅行车。任何一个没有旅行车的人都会觉得有些怪异,并且会想,是不是该停止抵抗,买一辆旅行车了;而任何一个拥有旅行车的人,都会觉得自己已经拥有了一些有意义的东西,即使是在汽车修理厂的升降机上。
所有这些都与资产阶级成员的身份完全吻合,资产阶级既是一种精神状态,也是一种物质状态。这也解释了为什么微软经常在网络上受到来自两方面的攻击。那些倾向于觉得自己贫穷和受压迫的人把微软所做的一切都看成是奥威尔式的险恶阴谋。而那些自认为聪明睿智的技术用户,则被 Windows 的笨拙所逼疯。
对于老于世故的人来说,没有什么比看到一个有钱到足以了解自己的人变得俗气更令人讨厌的了--除非他们在片刻之后意识到,他们可能知道自己很俗气,但他们根本不在乎,而且他们将继续俗气下去,继续有钱,继续快乐下去,直到永远。因此,微软与硅谷精英的关系,就像《比佛利山地人》(Beverly Hillbillies)与他们挑剔的银行家德赖斯代尔先生(Mr. Drysdale)的关系一样--德赖斯代尔先生并不是因为克兰佩特一家搬到他家附近而恼火,而是因为他知道,当杰特罗七十岁的时候,他仍然会像山地人一样说话,穿着围兜工作服,而且他仍然会比德赖斯代尔先生富有得多。
即使是 Windows 系统所使用的硬件,与苹果公司推出的机器相比,也像是垃圾堆里的垃圾,现在也是如此。原因在于,苹果公司过去是、现在也是一家硬件公司,而微软公司过去是、现在也是一家软件公司。因此,苹果垄断了可以运行 MacOS 的硬件,而兼容 Windows 的硬件则来自自由市场。自由市场似乎已经决定,人们不会为外观炫酷的电脑买单;那些雇佣设计师把自己的东西做得与众不同的 PC 硬件制造商,会被台湾克隆制造商打出的包装盒洗劫一空,这些包装盒看起来就像放在某人拖车前的煤渣上一样。但是,苹果公司却可以随心所欲地制造漂亮的硬件,只需将更高的价格转嫁给像我这样的狂热消费者。就在上周(我写这句话的时间是 1999 年 1 月初),所有报纸的科技版都充斥着对苹果公司如何发布 iMac 的各种新颜色(如蓝莓色和橘色)的赞美性报道。
苹果公司一直坚持硬件垄断,只是在 20 世纪 90 年代中期的一段短暂时期内,他们允许克隆厂商与之竞争,随后又将其淘汰出局。因此,Macintosh 硬件价格昂贵。你不能打开它随意摆弄,因为这样做会使保修失效。事实上,第一代 Mac 是专门设计成难以打开的--你需要一套奇特的工具,你可以通过 Mac 上市几个月后开始出现在杂志封底的小广告买到这些工具。这些广告总是带有某种不光彩的气息,就像在淫秽侦探杂志的背面推销开锁工具一样。
这种垄断政策至少有三种不同的解释。
现在,既然我要谈一下文化,为了避免利益冲突和道德败坏的指控,我可能有必要全面披露一下:(1)从地理位置上讲,我是西雅图人,土星性格,倾向于对戴奥尼亚湾区持不友善的看法,就像他们往往对我们感到恼火和震惊一样。(2)从时间上看,我是后婴儿潮时代的人。我之所以有这种感觉,至少是因为我从未体验过整个婴儿潮时代的乐趣和激动人心的部分--我只是花了很多时间,尽职尽责地笑着听婴儿潮一代讲述他们在各种场合如何酩酊大醉的毫无意义的轶事,并礼貌地回答他们关于他们的音乐有多棒的断言。不过,即使从这些琐事中也能总结出一些规律,其中有一个就像都市传奇一样经常出现,那就是有人搬进了一个由穿着凉鞋、打着和平旗号的花季少女组成的公社,最后却发现,在这层表象之下,管理这个公社的人其实是个控制狂;由于生活在公社里,人们口口声声说要实现和平、友爱与和谐的理想,这使他们失去了正常的、得到社会认可的发泄渠道,他们的控制狂倾向于以其他方式表现出来,而这些方式无一例外都更加邪恶。
将这一点应用到苹果电脑公司的案例中,将留给读者一个练习,这并不是一个非常困难的练习。
起初,将苹果公司视为控制狂有点令人不安,因为这与其企业形象完全不符。难道不是这些人播出了著名的 "超级碗 "广告,展示西装革履、蒙着眼睛的高管像旅鼠一样从悬崖上走下来吗?不就是这家公司现在还在做达赖喇嘛(香港除外)、爱因斯坦和其他非主流反叛者的广告吗?
这确实是同一家公司,而他们却能在如此众多的聪明人和媒体的怀疑论者心目中树立起自己是有创造力和反叛的自由思想者的形象,这确实让人感到不安。这证明了昂贵而华而不实的广告宣传的潜移默化的力量,或许,也证明了那些受广告宣传影响的人们的某种一厢情愿的想法。苹果公司的历史表明,只要给优秀的广告公司开出大笔支票,就能在聪明人的心目中树立起与现实完全不符的企业形象。(对于不喜欢 "达摩克利斯之问 "的人来说,答案是:既然微软已经赢得了沉默的大多数--资产阶级--的心,他们就不会在乎什么华而不实的形象,就像迪克-尼克松(Dick Nixon)一样。"我想要相信"--《X 档案》中福克斯-穆德(Fox Mulder)钉在办公室墙上的口头禅--以不同的方式适用于这两家公司;Mac 的拥护者想要相信那些广告中宣传的苹果公司的形象,相信 Mac 在某种程度上与其他电脑有着本质区别,而 Windows 的用户则想要相信,他们花了钱却得到了东西,参与了一场值得尊敬的商业交易)。
无论如何,截至 1987 年,MacOS 和 Windows 都已上市,运行在彼此截然不同的硬件平台上--这不仅体现在 MacOS 使用摩托罗拉 CPU 芯片而 Windows 使用英特尔芯片上,还体现在--当时被忽视但从长远来看却更为重要--苹果的硬件业务是严格的垄断,而 Windows 方面则是自由竞争。
但是,其全部影响直到最近才逐渐显现出来--事实上,这些影响仍在以非常奇特的方式发展,我在谈到 Linux 时会解释这一点。其结果是,数百万人习惯于使用这样或那样的图形用户界面。通过这样做,他们为苹果公司/微软公司赚了大钱。许多人的命运都与这些公司能否继续销售其销售能力受到极大质疑的产品息息相关。
HONEY-POT, TAR-PIT, WHATEVER
当盖茨和艾伦发明销售软件的想法时,他们遭到了黑客和头脑清醒的商人的批评。黑客们认为软件只是一种信息,因此反对销售软件的想法。这些反对意见部分是出于道义。黑客们来自科学和学术界,在学术界,必须将自己的工作成果免费提供给公众。他们的反对也有部分是出于实际考虑:你怎么能把容易被复制的东西卖出去呢?在很多方面都与黑客截然相反的商人也有自己的反对意见。他们习惯于销售烤面包机和保险单,自然很难理解一长串 1 和 0 如何能构成可销售的产品。
显然,微软和苹果都战胜了这些反对意见。但这些反对意见依然存在。理查德-斯托尔曼(Richard Stallman)是所有黑客中最有黑客精神的一位,也可以说是乌尔黑客。1984 年(Macintosh 上市的同一年),他对销售软件的恶行感到非常恼火,于是成立了一个名为自由软件基金会(Free Software Foundation)的组织,并开始了名为 GNU 的工作。Gnu 是 "Gnu's Not Unix"(Gnu 不是 Unix)的首字母缩写,但这只是一个笑话,因为 GNU 确实就是 Unix。出于商标方面的考虑("Unix "是 AT&T 的商标),他们根本无法宣称它是 Unix,因此,为了保险起见,他们宣称它不是 Unix。尽管 Stallman 先生和其他 GNU 追随者拥有无与伦比的才华和干劲,但他们建立自由 Unix 以与微软和苹果操作系统竞争的项目,却有点像试图用茶匙挖掘地铁系统。直到 Linux 的出现,这一点我稍后会讲到。
但是,从零开始重新创建一个操作系统的基本想法是完全正确的,也是完全可行的。它已经被做过很多次了。这是操作系统的固有特性。
严格来说,操作系统并不是必需的。一个足够敬业的编码员没有理由不在每个项目中从零开始,编写全新的代码来处理诸如控制磁盘驱动器上的读写头和点亮屏幕上的像素等基本的低级操作。最早的计算机就是这样编程的。但由于几乎每个程序都需要执行这些相同的基本操作,因此这种方法会导致大量的重复劳动。
对于黑客来说,没有什么比重复劳动更令人不快的了。人们在学习如何编写计算机程序时养成的第一个也是最重要的思维习惯就是 "概括、概括、概括"。尽可能使代码模块化、灵活化,把大问题分解成小子程序,在不同的环境中反复使用。因此,尽管在技术上没有必要,但操作系统的开发是不可避免的。因为从根本上说,操作系统不过是一个包含最常用代码的库,只需编写一次(希望能编写得很好),然后提供给需要它的每一个程序员。
因此,一个专有的、封闭的、秘密的操作系统是自相矛盾的。它违背了操作系统的全部意义。而且,无论如何都不可能将其保密。源代码--程序员编写的原始文本--可以保密。但操作系统作为一个整体,是由许多小的子程序组成的,这些子程序执行着非常具体、非常明确的工作。这些子程序的具体功能必须公开,而且要非常明确和准确,否则操作系统对程序员来说就毫无用处;如果程序员不完全了解这些子程序的功能,他们就无法使用这些子程序。
唯一没有公开的是子程序的具体做法。但是,一旦你知道了子程序的作用,一般来说就很容易(如果你是黑客的话)自己编写一个做同样事情的子程序。这可能要花费一些时间,而且很乏味,也没有什么回报,但在大多数情况下,这其实并不难。
黑客和小说一样,难的不是写作,而是决定写什么。而商业操作系统的供应商已经做出了决定,并公布了他们的决定。
人们对这一点的理解由来已久。在功能上,MS-DOS 被一个从零开始编写的竞争对手产品 ProDOS 复制了,该产品以几乎相同的方式做了所有相同的事情。换句话说,另一家公司能够编写与 MS-DOS 功能相同的代码,并将其出售获利。如果你使用的是 Linux 操作系统,你可以得到一个名为 WINE 的免费程序,它是一个 Windows 模拟器;也就是说,你可以在桌面上打开一个运行 Windows 程序的窗口。这意味着,一个功能完备的 Windows 操作系统已经在 Unix 系统中重现,就像瓶中之船。而比 MS-DOS 复杂得多的 Unix 本身,也是多次从零开始建立起来的。Sun 公司、惠普公司、AT&T 公司、Silicon Graphics 公司、IBM 公司和其他公司都在销售 Unix 版本。
换句话说,长期以来,人们一直在重新编写操作系统的基本代码,以至于构成传统意义上(图形用户界面之前)"操作系统 "的所有技术现在都非常便宜和普遍,简直就是免费的。今天,盖茨和艾伦不仅不可能出售 MS-DOS,他们甚至不可能将其赠送出去,因为更强大的操作系统已经被赠送出去了。就连最初的 Windows(1995 年以前只有 Windows)也变得一文不值,因为拥有一个可以在 Linux 中模拟的东西已经毫无意义,而 Linux 本身就是免费的。
在这方面,操作系统行业与汽车行业截然不同。即使是一辆破旧的汽车也有一定的价值。你可以用它去垃圾场,也可以把它拆成零件。制成品的命运就是随着时间的推移慢慢贬值,不得不与更现代化的产品竞争。
但操作系统的命运是免费。
微软是一家伟大的应用软件公司。应用软件--如 Microsoft Word--是创新为用户带来真正、直接、切实利益的领域。这些创新可能是直接来自研究部门的新技术,也可能是一些小玩意儿,但无论如何,它们经常是有用的,而且似乎能让用户感到满意。微软正在成为一家伟大的研究公司。但微软并不是一家出色的操作系统公司。这并不一定是因为从纯粹的技术角度来看,他们的操作系统有多么糟糕。当然,微软的操作系统确实存在问题,但它们已经比以前好了很多,对大多数人来说已经足够了。
那么,为什么我说微软不是一家伟大的操作系统公司呢?因为操作系统的本质决定了由一家公司开发和拥有是毫无意义的。首先,这是一项吃力不讨好的工作。应用程序为数以百万计的忠实用户创造了各种可能性,而操作系统则为成千上万脾气暴躁的编码员设置了各种限制,因此,操作系统制造商永远都会被高科技世界中任何有价值的人列在 "狗屎名单 "上。人们使用应用程序的最大问题是不了解它们的所有功能,而操作系统则会被那些因其局限性而恼火的程序员黑掉。操作系统业务对微软的好处仅仅在于,它为微软提供了开展真正出色的应用软件业务所需的资金,并雇佣了大量聪明的研究人员。现在,它真的应该被抛弃了,就像火箭上废弃的助推器一样。最大的问题是,微软是否有能力做到这一点。或者说,它是否也像苹果公司一样,沉迷于操作系统的销售?
要知道,苹果公司垄断硬件供应的能力曾被有识之士视为微软的一大优势。在当时,这似乎使他们处于更有利的地位。最后,这几乎要了他们的命,也许还会要了他们的命。对苹果公司来说,问题在于世界上大多数电脑用户最终都拥有了更便宜的硬件。但廉价硬件无法运行 MacOS,于是这些人转而使用 Windows。
把 "硬件 "换成 "操作系统",把 "苹果 "换成 "微软",你就能看到同样的事情即将重演。微软主宰着操作系统市场,这让他们赚得盆满钵满,而且目前看来似乎是个不错的主意。但现在有了更便宜、更好的操作系统,而且它们在世界上那些电脑还不像美国那么饱和的地区越来越受欢迎。十年后,世界上大多数电脑用户可能最终都会拥有这些更便宜的操作系统。但这些操作系统暂时无法运行任何微软应用程序,因此这些人将使用其他操作系统。
更直接地说:每当有人决定使用非微软的操作系统时,微软的操作系统部门就会失去一个客户。但是,从目前的情况来看,微软的应用软件部门也会失去一个客户。只要几乎每个人都使用微软操作系统,这就不是什么大问题。但是,一旦 Windows 的市场份额开始下滑,雷德蒙德人的算盘就开始变得非常凄惨。
有人反驳说,微软可以简单地重新编译其应用程序,使其在其他操作系统下运行。但这一策略违背了大多数企业的正常本能。苹果公司的案例也很有启发性。当苹果公司开始走下坡路时,他们本应将其操作系统移植到廉价的 PC 硬件上。但他们没有这么做。相反,他们试图充分利用其出色的硬件,增加新功能,扩大产品线。但这只会使他们的操作系统更加依赖于这些特殊的硬件功能,最终使他们的处境变得更糟。
同样,当微软在操作系统领域的地位受到威胁时,他们的企业本能会告诉他们在操作系统中加入更多新功能,然后重新调整软件应用程序以利用这些特殊功能。但这只会使他们的应用软件依赖于市场份额不断下降的操作系统,最终使他们的处境变得更糟。
操作系统市场是一个死亡陷阱,一个柏油坑,一个绝望的泥沼。投资苹果公司和微软公司只有两个理由:(1)这两家公司都与其客户存在所谓的共同依赖关系。客户 "想要相信",而苹果和微软知道如何满足他们的需求。(2)每家公司都非常努力地为自己的操作系统增加新功能,这有助于确保客户的忠诚度,至少在一段时间内是这样。
因此,这篇文章的大部分内容都将围绕这两个主题展开。
科技圈
Unix 是目前唯一一个图形用户界面(称为 X Windows 系统的大量代码)与旧意义上的操作系统分离的操作系统。这就是说,如果你愿意,你可以在纯命令行模式下运行 Unix,不需要任何窗口、图标、鼠标等,它仍然是 Unix,能够做 Unix 应该做的一切。但其他操作系统MacOS、Windows 系列和 BeOS 的图形用户界面与老式操作系统的功能纠缠在一起,以至于它们必须在图形用户界面模式下运行,否则就不是真正意义上的运行。因此,图形用户界面已不再可能与操作系统截然分开;现在,图形用户界面已成为其所属操作系统不可分割的一部分--而且是迄今为止最大的一部分,也是迄今为止最昂贵、最难创建的一部分。
销售产品只有两种方式:价格和功能。当操作系统是免费的时候,操作系统公司就无法在价格上竞争,因此他们只能在功能上竞争。这就意味着,他们总是试图在代码编写上超越对方,而直到最近,这些代码还根本不被认为是操作系统的一部分,比如图形用户界面。这在很大程度上解释了这些公司的行为方式。
例如,这也解释了为什么微软要在其操作系统中添加浏览器。获得免费的浏览器很容易,就像获得免费的操作系统一样。如果浏览器是免费的,操作系统也是免费的,那么似乎就没有办法从浏览器或操作系统中赚钱了。但是,如果能将浏览器整合到操作系统中,从而为二者注入新的功能,那么你就拥有了可以销售的产品。
暂且不说这会让政府的反垄断律师非常生气,这种策略还是有道理的。至少,如果你认为(微软管理层似乎也这样认为)必须不惜一切代价保护操作系统,那么这种策略是合理的。真正的问题是,是否每一种新的技术趋势都应该被用作维持操作系统主导地位的拐杖。面对网络现象,微软必须开发出一款真正优秀的网络浏览器,他们做到了。但是,他们当时有一个选择:他们可以让这个浏览器在许多不同的操作系统上运行,这样,无论他们的操作系统市场份额如何,微软都能在互联网世界中占据有利地位。或者,他们可以让浏览器与操作系统合二为一,赌的就是这将使操作系统看起来如此现代和性感,从而有助于保持他们在该市场的主导地位。问题是,当微软的操作系统市场份额开始下降时(由于目前微软的操作系统市场份额约为 90%,因此除了下降不会有其他任何变化),其他所有产品都会受到拖累。
在高中地质学课上,你可能会被告知,地球上的所有生命都存在于一个薄如纸的外壳中,这个外壳被称为生物圈,它被困在脚下数千英里的死寂岩石和头顶上冰冷的死寂放射性空洞之间。销售操作系统的公司也存在于某种技术层中。脚下是已经免费的技术。上面是尚未开发的技术,或者是过于疯狂和投机的技术,还无法实现产品化。与地球的生物圈一样,技术圈与上层和下层相比也非常薄。
但它的发展速度要快得多。在我们世界的各个地方,都有可能去参观丰富的化石床,在那里骨架堆在骨架上,上面是新近的骨架,下面是更古老的骨架。理论上,这些化石可以追溯到最早的单细胞生物。如果你稍稍发挥一下想象力,你就会明白,如果你在这里逗留的时间足够长,你也会变成化石,而随着时间的推移,一些更高级的生物也会在你的上面变成化石。
软件技术的化石记录--拉布雷亚沥青坑--就是互联网。在那里出现的任何东西都是免费的(可能是非法的,但却是免费的)。微软(Microsoft)等公司的高管必须习惯于这样的经历--这在其他行业是不可想象的--即投入数百万美元开发网络浏览器等新技术,但两年后、一年后、甚至几个月后,同样或同等的软件就会出现在互联网上。
通过不断开发新技术和增加产品功能,他们可以在化石化过程中保持领先一步,但在某些日子里,他们一定感觉自己就像在拉布雷亚(La Brea)被抓住的猛犸象,用尽全身力气,一次又一次地把自己的脚从想要覆盖和包裹它们的吸热焦油中拉出来。
要在这个生物圈中生存,组织的一端就必须有锋利的獠牙和沉重的双脚,而微软就拥有这些。但是,把其他猛犸象踩进焦油里只能让自己活得更久。危险在于,这些公司在执着于远离化石床时,会忘记生物圈之上的东西:新技术领域。换句话说,它们必须保持原始的武器和粗糙的竞争本能,但也要进化出强大的大脑。这似乎正是微软公司研究部门正在做的事情,该部门一直在招聘聪明人(在这里我应该提到,虽然我认识该公司研究部门的几个人,并与他们交往,但我们从不谈论商业问题,我也几乎不知道他们在搞什么鬼。通过使用 Linux 操作系统,我对微软的了解比使用 Windows 多得多)。
别管微软过去是如何赚钱的,今天,它是靠一种时间套利来赚钱的。通常意义上的 "套利 "是指利用不同市场之间的价格差异来赚钱。换句话说,它是一种空间套利,取决于套利者是否了解不同地方同时发生的事情。微软就是利用不同时间技术价格的差异来赚钱的。时间套利,如果我可以套用一个短语的话,则取决于套利者是否知道明年人们会花钱购买哪些技术,以及这些技术在多长时间后会变成免费技术。空间套利和时间套利的共同之处在于,二者都取决于套利者对信息的掌握程度;一个是在给定时间内整个空间的价格梯度,另一个是在给定地点随时间变化的价格梯度。
因此,苹果/微软几乎每天都会向用户推出新功能,希望通过源源不断的真正技术创新,再加上 "我愿意相信 "的现象,阻止用户将目光投向更便宜、更好用的操作系统。问题是,从长远来看,这样做是否合理。如果微软沉迷于操作系统,就像苹果沉迷于硬件一样,那么他们就会把全部赌注押在操作系统上,并把所有新的应用程序和技术都与操作系统捆绑在一起。他们的持续生存将取决于以下两点:为其操作系统增加更多的功能,这样客户就不会转而购买价格更低的替代品;保持其形象,以某种神秘的方式,让这些客户觉得他们的钱花在了刀刃上。
后者确实是一种奇怪而有趣的文化现象。
界面文化
几年前,我走进一家杂货店,眼前出现了这样一幅场景:在入口附近,一对年轻夫妇站在一个大型化妆品陈列柜前。男的双手紧紧地拎着一个购物篮,而他的伴侣则从陈列架上取下一包包的化妆品堆放在购物篮里。从那时起,我就一直认为那个男人是一种有趣的人类倾向的化身:我们不仅不反感被制造出来的形象弄得眼花缭乱,而且还喜欢这样。我们实际上坚持这样做。我们热衷于成为自己眼花缭乱的同谋:为主题公园的游乐设施掏钱,为一个明显在欺骗我们的人投票,或者站在那里拿着装满化妆品的篮子。
我最近去了迪斯尼世界,特别是其中名为 "魔法王国 "的部分,沿着美国大街走了一圈。这是一个完美的姜黄色维多利亚小镇,以迪士尼城堡为顶点。街上非常拥挤,我们只能蹒跚而行。我的正前方有一个拿着摄像机的人。这是一种新型摄像机,你不用通过取景器观看,而是注视着一个和扑克牌差不多大小的彩色平板屏幕,屏幕上播放着摄像机所看到的现场直播。他把摄像机紧紧地贴在自己的脸上,以至于摄像机挡住了他的视线。他没有免费去看一个真正的小镇,而是花钱去看一个假装的小镇,他没有用肉眼去看,而是在电视上看。
我没有呆在家里看书,而是在看他。
美国人对媒介体验的偏好是显而易见的,我不想再继续喋喋不休。我甚至不打算对此说三道四--毕竟,我是以付费顾客的身份来到迪斯尼世界的。但这显然与图形用户界面的巨大成功有关,所以我不得不谈一下。迪斯尼在媒介体验方面做得比任何人都好。如果他们了解什么是操作系统,以及人们为什么使用操作系统,他们就能在一两年内击败微软。
在迪斯尼世界名为 "动物王国 "的部分,有一个新景点,计划于 1999 年 3 月开放,名为 "大君丛林穿越"。我去的时候,它还在试营业。这是对印度丛林中一座假想的废墟的逐石复原。根据它的背景故事,它是由当地的一位酋长在 16 世纪建造的一个野生动物保护区。他和他的王公贵族们一起去那里狩猎孟加拉虎。随着时间的推移,这里年久失修,老虎和猴子接管了这里;最终,在印度独立前后,这里成为了一个政府野生动物保护区,现在向游客开放。
这个地方看起来更像我刚才描述的地方,而不是你在印度可能找到的任何实际建筑。断壁残垣上的所有石块都饱经风霜,仿佛几个世纪以来季风雨一直从上面滴落,华丽壁画上的油漆剥落褪色得恰到好处,孟加拉虎在断柱残骸中嬉戏。在对古建筑进行现代修缮时,不是像迪斯尼的工程师那样,而是像节俭的印度清洁工那样--用一大堆竹子和锈迹斑斑的一大堆钢筋。当然,这些锈迹是用油漆刷上去的,并用塑料透明涂层保护,以防真正生锈,但除非你跪在地上,否则是看不出来的。
在一个地方,你沿着一堵石墙走,墙上雕刻着一系列古老的坑坑洼洼的楣饰。墙的一端已经断裂,沉入了泥土中,也许是因为某个早已被遗忘的地震的缘故,所以有一条宽阔的锯齿状裂缝横穿了一两块面板,但故事仍然可以读懂:首先,原始的混沌导致了许多动物物种的繁盛。接下来,我们看到生命之树被各种动物环绕。这显然是在影射(或者用演艺界的行话来说,是在配合)迪斯尼动物王国中心的巨大生命之树,就像城堡主宰着魔法王国或球体主宰着艾波卡特一样。但它采用的是符合历史的风格,可能会骗过任何没有印度艺术史博士学位的人。
下一幅是一个留着大胡子的智人用弯刀砍倒了生命之树,动物们四处逃窜。之后的一幅画表现的是误入歧途的人类被潮水冲倒,这可能是他的愚蠢行为导致的后世大洪水的一部分。
最后一幅画描绘的是生命之苗开始重新生长,但现在人类已经扔掉了锋利的武器,和其他动物一起站在周围崇拜和赞美它。
换句话说,这是一个瓶颈期的预言:现代环保主义者普遍认为,世界即将面临一个严重的生态磨难期,这一磨难将持续几十年或几百年,当我们找到与自然和谐相处的新模式时,磨难就会结束。
从整体上看,这幅楣画是一件相当出色的作品。显然,这不是古印度的遗迹,现在活着的某个人或某些人对此功不可没。但在迪斯尼世界的大君狩猎保护区上并没有签名。任何东西上都没有签名,因为如果像好莱坞电影那样,每块定制的破砖上都挂着一长串制作者的名字,就会破坏整个效果。
在好莱坞编剧中,迪斯尼享有 "邪恶后妈 "的美誉。这并不难理解。迪斯尼的业务是推出天衣无缝的幻象产品--一面魔镜,将世界映照得比真实情况更好。但是,作家实际上是在与读者对话,而不仅仅是营造一种氛围或向读者展示一些东西;正如命令行界面为用户和机器之间开辟了一条比图形用户界面更直接、更明确的通道一样,文字、作家和读者之间也是如此。
归根结底,文字是唯一的思想编码系统--唯一的媒介--它是不可替代的,它拒绝溶解在电子媒介的吞噬洪流中(迪斯尼世界的富豪游客穿着印有著名设计师名字的 T 恤,因为设计本身可以被轻易盗版,而且不会受到惩罚。要想制作出不能被合法盗版的服装,唯一的办法就是在上面印上有版权和商标的字样;一旦迈出了这一步,服装本身就不重要了,所以一件 T 恤和其他任何东西一样好。印有昂贵字样的 T 恤如今已成为上流社会的标志。印有廉价字样或根本没有字样的 T 恤衫则是平民的标志)。
但是,文字和书面交流的这种特殊品质对迪斯尼产品的影响,就像在魔镜上喷涂涂鸦一样。因此,迪斯尼的大部分交流都不需要借助文字,而在大多数情况下,文字也不会被遗漏。迪斯尼的一些老作品,如《小飞侠彼得-潘》、《小熊维尼》和《爱丽丝梦游仙境》等,都出自书籍。但作者的名字很少被提及,你也无法在迪斯尼商店买到原版书。如果你能买到,它们都会显得又老又怪,就像迪士尼纯正版本的劣质山寨版。与《美女与野兽》和《花木兰》等最新作品相比,根据这些书改编的迪斯尼电影(尤其是《爱丽丝梦游仙境》和《彼得-潘》)显得非常怪异,不完全适合儿童观看。这也在情理之中,因为刘易斯-卡罗尔和 J.M. 巴利都是非常奇怪的人,而文字的本质就在于,他们个人的奇怪之处就像 X 射线穿过墙壁一样,直接穿过迪斯尼化的层层包装。也许正是因为这个原因,迪斯尼似乎已经完全不买书了,它现在从民间故事中寻找主题和人物,而这些民间故事就像大君废墟中的古砖一样,具有青石质地,历经岁月的洗礼。
如果我可以冒昧地笼统地说,去迪斯尼乐园的大多数人对从书中吸收新思想毫无兴趣。这听起来很冷酷,但请听我说:他们对其他形式的思想毫无保留。迪斯尼乐园现在充斥着环保信息,动物王国的导游能把生物学讲得你耳朵都起茧子。
如果你跟着这些游客回家,也许会发现艺术品,但那都是迪斯尼世界非洲和亚洲主题商店里出售的那种没有署名的民间艺术。一般来说,他们似乎只喜欢那些已经被伟大的时代所认可、被大众所接受,或者两者兼而有之的媒体。
在这个世界上,艺术家们就像那些默默无闻、目不识丁的石雕艺人,他们建造了欧洲的大教堂,然后又消失在教堂墓地里没有标记的坟墓里。尽管我们不知道是谁建造了这座大教堂,也可能是因为这个原因,大教堂作为一个整体令人敬畏和感动。当我们漫步其中时,我们不是在与单个的石匠交流,而是在与整个文化交流。
《迪斯尼世界》也是如此。如果你是一个知识分子,一个读书人或作家,你能说的最好的一句话就是这本书的执行非常出色。但是,你很容易发现整个环境有点令人毛骨悚然,因为缺少了一些东西:将所有内容转化为清晰明确的文字,将想法归属于特定的人。你无法反驳。似乎很多东西都被掩盖了,似乎迪斯尼乐园在欺骗我们,可能会让我们摆脱各种被埋没的假设和混乱的思维。
但这恰恰是命令行界面向图形用户界面过渡时所失去的东西。
迪斯尼和苹果/微软的业务如出一辙:用设计昂贵的界面来缩短费力的、明确的语言交流。迪斯尼本身就是一种用户界面,而且不仅仅是图形界面。我们称之为 "感官界面"。它可以应用于世界上的任何事物,无论是真实的还是想象的,尽管花费惊人。
为什么我们要摒弃以文字为基础的明确界面,转而拥抱图形或感官界面--微软和迪斯尼的成功都与这一趋势有关?
部分原因很简单,现在的世界非常复杂--比我们的大脑进化用来应对的狩猎-采集世界复杂得多--我们根本无法处理所有的细节。我们必须委托他人。我们别无选择,只能相信迪斯尼的某个无名艺术家、苹果或微软的某个程序员,让他们为我们做出一些选择,关闭一些选项,然后给我们一份方便包装的执行摘要。
但更重要的是,它源于这样一个事实:在本世纪,知识分子失败了,而且每个人都知道这一点。在俄罗斯和德国等地,普通民众同意放松对传统民俗、风尚和宗教的控制,让知识分子来掌权,结果他们搞砸了一切,把这个世纪变成了一个修道院。那些文绉绉的知识分子过去只是乏味,现在看起来也有点危险。
我们美国人是唯一没有在所有这一切中的某个时刻被蹂躏的人。我们之所以自由繁荣,是因为我们继承了十八世纪一群特殊的知识分子所创造的政治和价值观体系,他们碰巧做对了。但是,我们已经与这些知识分子失去了联系,与任何类似知识分子的东西也失去了联系,甚至到了不再阅读书籍的地步,尽管我们识字。我们似乎更乐于通过媒体的浸润,以非语言的方式向后代传播这些价值观。显然,这在某种程度上是行之有效的,因为许多国家的警察现在都在抱怨,当地的被捕者坚持要向他们宣读米兰达权利,就像美国电视警察节目中的罪犯一样。当警察向他们解释,他们是在另一个国家,在那里不存在这些权利时,他们就会变得非常愤怒。从长远来看,被配音成各种语言的《星空与哈奇》重播可能比《独立宣言》更能促进人权。
一个庞大、富裕、核尖端的文化通过媒体传播其核心价值观似乎不是一个好主意。这里显然存在误入歧途的风险。文字是我们拥有的唯一永恒不变的媒介,这也是为什么文字成为《十诫》、《古兰经》和《权利法案》等极其重要的概念的首选载体。除非我们的媒体所传达的信息以某种方式与一套固定的、成文的戒律挂钩,否则它们就会到处乱窜,并可能向人们的头脑中灌输大量垃圾信息。
奥兰多曾经有一个叫麦考伊空军基地的军事设施,那里有很长的跑道,B-52 可以从那里起飞,带着大量核弹飞往古巴或其他任何地方。但现在,麦考伊空军基地已被废弃,并被重新利用。它被并入奥兰多民用机场。长长的跑道被用来降落来自巴西、意大利、俄罗斯和日本的 747 型游客,这样他们就可以来到迪斯尼世界,在我们的媒体中沉浸一段时间。
对于传统文化,尤其是以文字为基础的文化,如伊斯兰教,这比 B-52s 的威胁性要大得多。显而易见,对于美国以外的每个人来说,我们的流行语--多元文化主义和多样性--都是虚假的幌子,被用来(在许多情况下是不知不觉地)掩盖消除文化差异的全球趋势。多元文化主义(或 "尊重多样性",或随你怎么称呼它)的基本原则是,人们需要停止相互评判--停止断言(并最终停止相信)这是对的,那是错的;这是对的,那是错的;这是丑的,那是美的;上帝存在,并具有这样或那样的品质。
大多数人从二十世纪汲取的教训是,为了让大量不同的文化在全球(甚至在一个社区)和平共处,人们有必要以这种方式暂停判断。因此(我认为),在现代文化中,我们怀疑并敌视所有权威人物。正如大卫-福斯特-华莱士(David Foster Wallace)在他的文章 "E Unibus Pluram "中解释的那样,这是电视的基本信息;无论如何,这是人们在媒体中浸淫够久之后带回家的信息。当然,这并不是用这些冠冕堂皇的词语来表达的。它表现为一种假定,即所有权威人物--教师、将军、警察、部长、政客--都是虚伪的小丑,而时髦颓废的酷才是唯一的出路。
问题是,一旦丧失了判断对错、真假等的能力,就没有真正的文化可言了。剩下的只有木屐舞和马卡连柯。做出判断、相信事物的能力是拥有文化的全部意义所在。我想,这就是为什么在卢克索这样的地方,时不时会冒出一些拿着机关枪的人,开始向西方人扫射。他们完全明白麦考伊空军基地的教训。当他们的儿子戴着芝加哥公牛队的帽子回家,而帽子上的钞票是侧着的时候,父亲们就会发疯。
被电视传播到世界每个角落的全球反文化本身就是一种文化,以伊斯兰教和法国等伟大而古老的文化为标准,它似乎非常低劣,至少在一开始是这样。你唯一能说的好处是,它降低了世界大战和大屠杀的可能性--这其实是件好事!
唯一真正的问题是,除了这种全球单一文化之外,任何没有文化的人都会彻底完蛋。如果一个人从小看电视长大,从未接触过任何宗教或哲学,在道德相对主义的氛围中长大,通过观看电视新闻中的 "双性恋 "来学习公民知识,在大学里后现代主义者争先恐后地推翻传统的真理和质量观念,那么他来到这个世界上就会成为一个相当无能的人。也许这一切的目的都是为了让我们变得软弱无能,这样我们就不会互相核打击了。
另一方面,如果你是在某种特定的文化中长大的,你最终会拥有一套基本的工具,可以用来思考和理解这个世界。你可能会用这些工具来拒绝你成长的文化,但至少你有了一些工具。
在这个国家,那些掌权者--那些在各大律师事务所和公司董事会中任职的人--在某种程度上都明白这一切。他们口口声声说要多元文化、多样性和非批判性,但他们并没有这样教育自己的孩子。我有一些受过高等教育、技术精湛的朋友,他们搬到了爱荷华州的小镇上生活和抚养孩子,纽约也有哈西德派犹太人聚居区,那里有很多孩子都是按照传统信仰长大的。任何郊区社区都可以被认为是持有某种信仰(大多是隐性信仰)的人与持有相同信仰的人共同生活的地方。
这些人不仅对自己的孩子负有责任,而且对整个国家也负有责任。当然,上层阶级中有些人卑鄙无耻、玩世不恭,但许多人至少有一部分时间在担心国家的发展方向和自己的责任。因此,对读书知识分子来说很重要的问题,比如全球环境崩溃,最终会通过大众文化多孔的缓冲区渗透出来,在奥兰多以古代印度教遗址的形式出现。
你可能会问:这一切到底和操作系统有什么关系?正如我已经解释过的,如果不从文化角度来解释,就无法解释苹果/微软对操作系统市场的统治,因此,在这篇文章中,我必须先让你知道我对当代文化的看法。
当代文化是一个双层体系,就像 H.G. 威尔斯的《时间机器》中的莫勒克人和埃洛伊人,只不过这个体系被颠倒了过来。在《时间机器》中,埃洛伊人是一个上流社会,由许多地下莫洛克人支持,他们维持着技术车轮的转动。但在我们的世界,情况恰恰相反。莫勒克人是少数,他们掌控着一切,因为他们了解一切是如何运作的。人数更多的埃洛伊人从一出生就沉浸在电子媒体中,在阅读书籍的莫勒克人的指导和控制下学习一切知识。这么多无知的人如果被引向错误的方向,就会很危险,所以我们进化出了一种流行文化,这种文化(a)几乎具有不可思议的感染力,(b)使每一个被它感染的人都变得中性,使他们不愿意做出判断,也无法采取立场。
莫勒克人拥有理解细节的精力和智慧,他们会去掌握复杂的主题,并制作出迪斯尼般的感官界面,这样伊洛人就可以不用费力思考或忍受无聊,就能掌握要点。这些莫勒克人会去印度,乏味地探索上百个废墟,然后回家建造卫生无虫版:就像高亮电影一样。这要花很多钱,因为莫勒克人坚持要好咖啡和头等舱机票,但这不是问题,因为埃洛伊人喜欢眼花缭乱,他们很乐意为这一切买单。
现在我意识到,这些话听起来可能冷嘲热讽、尖酸刻薄到了荒唐的地步:你这个流着鼻涕的知识分子对那些不学无术的市井小民大发脾气。就好像我是一个自称摩西的人,独自一人从山上下来,带着刻有十诫的石板--最初的命令行界面--对着崇拜图像的软弱、未开化的希伯来人大发脾气。不仅如此,这听起来像是我在鼓吹某种阴谋论。
但我想说的不是这个。我在这里描述的情况可能很糟糕,但不一定很糟糕,现在也不一定很糟糕:
现在的情况是,我们太忙了,无法理解所有细节。通过界面朦胧地理解总比完全不理解要好。让一千万伊洛人去迪斯尼世界的乞力马扎罗野生动物园,总比让一千名心血管外科医生和共同基金经理去肯尼亚的 "真正 "野生动物园要好。这两类人之间的界限比我说的更松散。我经常遇到一些普通人--建筑工人、汽车修理工、出租车司机、一般的痞子--他们基本上不识字,直到有什么事情让他们必须成为读者,开始真正思考问题。也许他们不得不面对酗酒的问题,也许他们被送进了监狱,或者得了某种疾病,或者遭遇了宗教信仰危机,或者仅仅是感到无聊。这些人可以很快地掌握特定主题的知识。有时,由于缺乏广泛的教育,他们会过度追求知识,但嘿嘿,至少追逐知识可以锻炼身体。有些选民居然相信百威啤酒和米勒啤酒之间有明显的区别,还认为职业摔跤是真的,这种政体被这些选民的时尚和奇思妙想所控制的幽灵,自然会让那些不相信的人感到震惊。不过,由双面知识分子通过命令行界面控制的国家,不管是宗教国家还是世俗国家,一般都是悲惨的生存环境。老于世故的人嘲笑迪斯尼式的娱乐节目是无聊的、糖衣炮弹,但是,嘿,如果这样做的结果是在言语前的层面上向数以亿计不懂媒体的人灌输基本上是温暖和同情的条件反射,那它又能有多糟糕呢?昨晚,我们在厨房里杀了一只龙虾,我女儿哭了一个小时。日本人曾经是世界上最凶猛的民族,现在却迷上了可爱的卡通人物。我自己的家庭--我最熟悉的人--被可能会读到这篇文章的人和几乎肯定不会读到这篇文章的人平均分配着,我不能肯定说其中一个群体一定比另一个群体更温暖、更快乐或适应得更好。
键盘上的莫勒克人和伊洛人
在命令行界面时代,用户都是莫勒克人,他们必须把自己的想法转换成字母数字符号并输入,这个过程枯燥乏味,消除了所有歧义,暴露了所有隐藏的假设,残酷地惩罚了懒惰和不精确。然后,界面制作者开始制作图形用户界面,在人和机器之间引入了一个新的符号层。使用这种系统的人放弃了直接向进行运算的芯片发送比特的责任和权力,而把这种责任和权力交给了操作系统。这很有诱惑力,因为向任何人或任何事物下达明确的指令都很困难。我们不可能不假思索地做到这一点,而且根据情况的复杂程度,我们可能必须认真思考抽象的东西,考虑各种后果,才能做好这件事。对我们大多数人来说,这是一项艰苦的工作。我们希望事情变得简单一些。我们的愿望有多强烈,可以用比尔-盖茨的财富规模来衡量。
因此,操作系统已成为一种节省智力劳动的设备,它试图将人类模糊表达的意图转化为比特。实际上,我们是在要求电脑承担一直以来被认为是人类职责的责任--我们希望电脑能够理解我们的愿望,预测我们的需求,预见后果,建立联系,在不被要求的情况下处理日常琐事,提醒我们应该提醒的事情,同时过滤掉噪音。
在上层(也就是更贴近用户的层面),这是通过一系列惯例来实现的--菜单、按钮等等。这些惯例的作用就像类比一样:通过将抽象或不熟悉的概念比作已知事物,帮助埃洛伊理解这些概念。不过,这里用的是更高大上的 "隐喻 "一词。
MacOS 的总体概念是 "桌面隐喻",它包含了许多较次要的隐喻(而且经常是相互冲突的,或至少是混合的)。在图形用户界面下,文件(通常称为 "文档")被隐喻为屏幕上的一个窗口(称为 "桌面")。这个窗口几乎总是太小,无法容纳文档,因此你可以 "移动",或者更矫情地说,通过 "点击和拖动""滚动条 "上的 "拇指 "在文档中 "导航"。当你在 "窗口 "中 "键入"(使用键盘)或 "绘制"(使用鼠标),或使用下拉 "菜单 "和 "对话框 "来操作其内容时,你的劳动成果会被存储到一个 "文件 "中(至少理论上是这样),以后你可以将相同的信息拉回到另一个 "窗口 "中。当你不再需要它时,就把它 "拖 "进 "垃圾桶"。
这里有大量杂乱无章的隐喻混杂在一起,我可以把它解构得天花乱坠,但我不会这么做。只考虑一个词:"记录"。当我们在现实世界中记录某件事情时,我们会对其进行固定、永久、不变的记录。但计算机文档是不稳定的、短暂的数据星座。有时(比如你刚刚打开或保存了文档),窗口中显示的文档与磁盘上文件中的同名文档完全相同,但有时(比如你做了修改但没有保存),文档又完全不同。总之,每次点击 "保存 "按钮,就会删除以前版本的 "文档",取而代之的是当前窗口中的内容。因此,即使是 "保存 "这个词,在使用时也会产生极大的误导--"销毁一个版本,保存另一个版本 "会更准确。
任何长期使用文字处理软件的人都难免会有这样的经历:在一个长文档中投入数小时的工作,然后因为电脑死机或停电而丢失。在文档从屏幕上消失的那一刻之前,文档看起来就像用墨水在纸上打出来的一样坚实和真实。但在下一秒,毫无征兆地,它就完全消失了,无法挽回,就好像它从未存在过一样。用户会有一种迷失方向的感觉(更不用说恼怒了),这种感觉源于一种隐喻剪切--你意识到你一直生活和思考在一个本质上是虚假的隐喻中。
因此,图形用户界面使用隐喻来简化计算,但它们是糟糕的隐喻。学习使用图形用户界面本质上是一种文字游戏,是学习 "窗口"、"文档 "和 "保存 "等词的新定义的过程,这些定义与旧定义不同,在很多情况下几乎截然相反。令人难以置信的是,至少从商业角度来看,这种做法非常奏效,也就是说,苹果/微软从中赚了不少钱。所有其他现代操作系统都认识到,要想被用户接受,就必须用同样的手段掩盖自己的内核。这样做有一些好处:如果你知道如何使用一种图形用户界面操作系统,那么你可能在几分钟内就能学会如何使用其他操作系统。一切工作方式都有些不同,就像欧洲的管道系统--但只要稍加摆弄,你就能打出备忘录或上网冲浪。
大多数人在选购操作系统时(如果他们费心选购的话),比较的不是基本功能,而是表面的外观和感觉。操作系统的普通买家并不真正为分配内存或将字节写入磁盘的底层代码买单,也不对这些代码特别感兴趣。我们真正购买的是一个隐喻系统。而且--更重要的是--我们购买的是隐喻是处理世界的好方法这一基本假设。
最近,许多新硬件的出现使计算机有了许多影响现实世界的有趣方法:让打印机喷出纸张,让文字出现在千里之外的屏幕上,向癌症患者发射辐射光束,制作泰坦尼克号的逼真动态图像。视窗现在被用作收银机和银行出纳终端的操作系统。我的卫星电视系统使用一种图形用户界面来更换频道和显示节目指南。现代移动电话的小液晶屏中内置了简陋的图形用户界面。甚至乐高积木现在也有图形用户界面:你可以购买一套名为 "头脑风暴 "的乐高积木,它可以让你建造小乐高机器人,并通过计算机上的图形用户界面对它们进行编程。
因此,我们现在要求图形用户界面做的远不止是充当一个光荣的打字机。现在,我们希望图形用户界面成为处理现实问题的通用工具。对于那些以向大众市场推出新技术为生的公司来说,这无疑是一笔巨大的财富。
显然,如果没有某种界面让人们能够使用,你就无法向人们推销复杂的技术系统。内燃机在当时是一个技术奇迹,但在连接离合器、变速器、方向盘和油门之前,它作为消费品毫无用处。这些奇特的小玩意儿组成了我们今天所说的用户界面,至今仍在路上行驶的每一辆汽车上使用。但是,如果汽车是在 Macintoshes 之后发明的,汽车制造商就不会费心费力地设计出这些复杂的装置。我们会用电脑屏幕代替仪表盘,用鼠标(或者最多是操纵杆)代替方向盘,通过下拉菜单来换挡:
PARK --- REVERSE --- NEUTRAL ---- 3 2 1 --- Help...
因此,几行计算机代码就可以替代任何可以想象的机械接口。问题是,在许多情况下,这种替代品都很糟糕。通过图形用户界面驾驶汽车将是一种痛苦的体验。即使图形用户界面完全没有错误,也会非常危险,因为菜单和按钮的反应速度根本无法与直接的机械控制相比。我朋友的父亲,也就是那位修复 MGB 的先生,如果这辆车配备了图形用户界面,他根本就不会去管它。那就没有任何乐趣可言了。
方向盘和换挡杆发明的年代,大多数家庭中最复杂的技术就是黄油搅拌器。那些早期的汽车制造商简直太幸运了,他们可以梦想出任何最适合汽车驾驶任务的界面,而人们也会学习它。同样,拨号电话和调幅收音机也是如此。到第二次世界大战时,大多数人都会几种界面:他们不仅会搅拌黄油,还会开车、拨电话、打开收音机、用点烟器点火和换灯泡。
但现在,每件小东西--手表、录像机、炉子--都被各种功能塞得满满的,而没有界面,每种功能都毫无用处。如果你和我以及其他大多数消费者一样,你从未使用过微波炉、录像机或手机上百分之九十的可用功能。你甚至不知道这些功能的存在。它们可能给你带来的一点点好处,却被你不得不去了解它们的麻烦所抵消。对于消费品制造商来说,这肯定是个大问题,因为如果不提供功能,他们就无法在竞争中取胜。
对于工程师来说,为每一件新产品发明一个全新的用户界面已经不再被人们所接受,就像他们在汽车领域所做的那样,部分原因是这样做太昂贵,部分原因是普通人只能学到这么多。如果录像机是在一百年前发明的,那么它就会有一个用来调整跟踪的指轮,一个用来在前进和后退之间切换的变速杆,以及一个用来装载或弹出磁带的铸铁大把手。它的前面会有一个大的模拟时钟,你可以通过移动表盘上的指针来设置时间。但由于录像机的发明时间正处于机械接口时代和图形用户界面时代之间的尴尬过渡时期,所以它的正面只有一堆按钮,要设置时间就必须以正确的方式按下按钮。对于负责设计的工程师来说,这一定是很合理的,但对于许多用户来说,这简直是不可能的。因此,许多录像机上都出现了著名的闪烁的 12:00。计算机人员称其为 "闪烁的 12 点问题"。不过,当他们谈论这个问题时,他们通常不是在谈论录像机。
现代录像机通常具有某种屏幕编程功能,这意味着您可以通过某种原始的图形用户界面来设置时间和控制其他功能。当然,图形用户界面也有虚拟按钮,但也有其他类型的虚拟控件,如单选按钮、复选框、文本输入框、刻度盘和滚动条。对许多人来说,这些组件构成的界面似乎比按下机器前面的那些小按钮要容易得多,因此,闪烁的 12 点钟本身正慢慢从美国的客厅中消失。闪烁的 12 点问题也开始困扰其他技术。
因此,图形用户界面已经不再是个人电脑的界面,而是一种元界面,每一种新的消费技术都会使用它。它很少是一个理想的界面,但拥有一个理想的界面,甚至是一个好的界面已不再是当务之急;现在最重要的是拥有某种客户会实际使用的界面,这样制造商就可以堂而皇之地宣称他们正在提供新的功能。
我们之所以需要图形用户界面,主要是因为它方便、简单--或者至少图形用户界面让人看起来是这样的。通过图形用户界面控制的汽车会比通过踏板和方向盘控制的汽车更容易驾驶,但也会非常危险。
通过一直使用图形用户界面,我们不知不觉地接受了一个前提,如果直截了当地向他们介绍这个前提,很少有人会接受:即通过给困难的事情加上合适的界面,可以使它们变得容易,使复杂的事情变得简单。为了理解这有多离奇,可以想象一下,书评是按照我们对用户界面所采用的价值体系来撰写的:"这本书的写作手法非常简单,而且侃侃而谈;作者对复杂的主题一笔带过,几乎每句话都采用了简单的概括。读者很少需要思考,也免去了阅读老式书籍时通常会遇到的所有困难和乏味"。只要我们坚持进行简单的操作,比如设置录像机上的时钟,这还不算太糟。但是,当我们试图用我们的技术做更多雄心勃勃的事情时,我们不可避免地会遇到这样的问题:"我们的技术是什么?
隐喻剪切
大约在 1985 年,微软 Word 的第一个版本一发布,我就开始使用了。在经历了最初的一些麻烦之后,我发现它比当时唯一的竞争对手 MacWrite 更好用。我用早期版本的 Word 写了很多东西,全部存储在软盘上,然后把所有软盘上的内容转移到我的第一个硬盘上,这是我在 1987 年左右获得的。随着 Word 新版本的推出,我忠实地进行了升级,因为作为一名作家,我认为在工具上花一定的钱是有意义的。
20 世纪 80 年代中期的某个时候,我试图用当时的 Word 6.0 版本打开我的一个旧文档,大约是 1985 年的 Word 文档。Word 6.0 无法识别由其早期版本创建的文档。通过以文本文件的形式打开文档,我恢复了组成文档文本的字母序列。我的文字还在。但是格式已经被 "碎木机 "处理过了--我写的文字被一连串的空矩形框和胡言乱语打断了。
现在,在企业(Word 的主要市场)中,这种事情只是一种烦恼--使用电脑时的例行麻烦之一。很容易就能买到解决这个问题的小文件转换程序。但如果你是一个以文字为职业、以书面文件为职业身份的作家,这种事情就会让你非常不安。在我的工作中,很少有固定的假设,但其中之一就是,一旦你写下一个字,它就被写下了,无法再被改写。墨水染红了纸张,凿子切开了石头,触笔在泥土上留下了印记,有些事情已经不可逆转地发生了(我的妹夫是一位神学家,他阅读 3250 年前的楔形文字片--他能认出特定抄写员的笔迹,并能通过名字辨认出来)。但是文字处理软件--尤其是那种采用特殊、复杂文件格式的软件--有一种超自然的力量,可以把事情改写。只要文件格式稍有改变,或稍加改动,几个月或几年的文学成果就会不复存在。
从技术上讲,这是应用程序(Macintosh 的 Word 6.0)的问题,而不是操作系统(MacOS 7 point something)的问题,所以我最初恼火的对象是负责 Word 的人。但是。另一方面,我本可以在 Word 中选择 "保存为文本 "选项,将所有文档保存为简单的电报,这样问题就不会出现了。相反,我让自己被那些华而不实的格式化选项所迷惑,而在图形用户界面出现之前,这些选项甚至都不存在。我已经养成了使用它们来让我的文档看起来更漂亮的习惯(也许比它们应有的样子更漂亮;那些软盘上的所有旧文档或多或少都是垃圾)。现在,我正在为这种自我放纵付出代价。技术进步了,找到了让我的文档看起来更漂亮的方法,其后果就是所有以前丑陋的文档都不复存在了。
请原谅我有一点奇怪的幻想--就好像我去了某个度假胜地,某个设计精巧、艺术气息浓厚的酒店,把自己交到了过去的感官界面大师手中,然后坐在房间里,用圆珠笔在一张黄色的法律便笺上写下了一个故事、当我吃完晚饭回来时,发现女仆已经把我的作品拿走了,取而代之的是一支羽毛笔和一叠精美的羊皮纸--女仆解释说,这样房间看起来就精致多了,这是例行升级的一部分。但是,这些纸上用完美无瑕的钢笔字写着一长串从字典中随意挑选的单词。这确实令人震惊,但我无法向管理部门投诉,因为我住在这个度假村,就意味着我同意这样做。我交出了我的摩洛人资格证书,成为了一名埃洛伊人。
LINUX
在 20 世纪 80 年代末和 90 年代初,我花了大量时间对 Macintosh 进行编程,最终决定花几百美元购买苹果公司的一款名为 Macintosh Programmer's Workshop 或 MPW 的产品。MPW 虽然也有竞争对手,但它无疑是 Mac 的顶级软件开发系统。苹果公司自己的工程师就是用它来编写 Macintosh 代码的。鉴于 MacOS 当时在技术上远比竞争对手先进,Linux 甚至还不存在,又鉴于这是苹果公司世界一流的创意工程师团队实际使用的程序,我对它寄予了很高的期望。它被装在一叠大约一英尺高的软盘里,因此在无休止的安装过程中,我有足够的时间让自己兴奋起来。第一次启动 MPW 时,我可能还在期待着某种触手可及的多媒体展示。但它却很简朴,几乎到了令人生畏的地步。这是一个滚动窗口,你可以在其中输入简单的、未格式化的文本。然后,系统会将这些文本解释为命令,并尝试执行这些命令。
换句话说,它就是一个运行命令行界面的玻璃电传打字机。它带有各种隐秘但功能强大的命令,只要键入它们的名称就可以调用,我只是慢慢学会了使用这些命令。直到几年后,我开始接触 Unix,才明白 MPW 所体现的命令行界面是 Unix 的再创造。
换句话说,苹果公司的黑客们在让 MacOS 启动并运行时,他们所做的第一件事--甚至可能在他们让 MacOS 启动并运行之前--就是重新创建 Unix 界面,这样他们就能完成一些有用的工作了。当时,我根本无法理解这一点:在苹果公司的黑客们看来,Mac 的图形用户界面是一个障碍,在小烤面包机上市之前就应该被规避掉。
1995 年 7 月,在我的 Powerbook 崩溃并毁掉我的大文件之前,就已经出现了危险信号。我的一位大学老同学在波士顿创办并经营一家高科技公司,他用 Macintoshes 作为前端开发了一种商业产品。从根本上说,Mac 是一种高性能的图形终端,它的用户界面非常友好,用户可以访问存储在由功能更强大、但用户界面却不那么友好的计算机组成的网络中的大型图形信息数据库。顺便说一句,这位朋友是第二个让我接触 Macintoshes 的人,在 1980 年代中期,我们共同分享了高科技知识分子的快感,在一个使用 DOS 的笨蛋世界里,我们使用了卓越的苹果技术。他告诉我,我朋友的系统早期版本运行良好,但当多台机器加入网络后,就开始出现神秘的死机现象,有时整个网络会冻结。这是一种不容易复制的错误。最后他们发现,每当用户在菜单上扫描某个项目时,按住鼠标键超过几秒钟,就会引发网络崩溃。
从根本上说,MacOS 一次只能做一件事。在屏幕上绘制菜单就是一件事。因此,当菜单被拉下时,Macintosh 就不能再做其他事情,直到犹豫不决的用户松开按钮。
在单用户、单进程的机器上,这并不是一件坏事(尽管它是一件相当糟糕的事),但在联网的机器上就不好了,因为联网意味着要与其他机器进行某种持续的低级交互。由于 Mac 无法对网络做出响应,导致整个网络崩溃。
为了与其他计算机、网络和各种不同类型的硬件协同工作,操作系统必须比 MS-DOS 或最初的 MacOS 复杂得多,功能强大得多。唯一值得认真对待的互联网连接方式是点对点协议(PPP),它(别管细节)让你的电脑暂时成为全球互联网的正式成员,拥有自己的唯一地址,以及与之相关的各种特权、权力和责任。从技术上讲,这意味着你的机器正在运行 TCP/IP 协议,长话短说,就是按照一套巧妙而优雅的规则,在没有特定顺序和不可预测的时间内来回发送数据包。但发送数据包是一回事,因此,一个同时只能做一件事的操作系统不可能既是互联网的一部分,又能做其他任何事。当 TCP/IP 被发明出来时,运行它是严肃计算机(用于技术和商业环境的主机和大功率微型计算机)的荣耀,因此该协议的设计是基于这样一个假设,即每台使用它的计算机都是一台严肃的机器,能够同时做很多事情。不客气地说,它就是一台 Unix 机器。无论是 MacOS 还是 MS-DOS,最初都没有考虑到这一点,因此,当互联网变得炙手可热时,就必须做出彻底的改变。
当我的 Powerbook 伤透了我的心,当 Word 不再能识别我的旧文件时,我转而使用 Unix。显然,MacOS 的替代品是 Windows。我并不反对微软或 Windows。但现在很明显,老式的 PC 操作系统已经力不从心,显示出疲态,也许,在它们学会同时走路和嚼口香糖之前,最好不要使用它们。
转换发生在 1995 年夏天的一天。当时我在旧金山待了几个星期,用我的 PowerBook 处理一份文件。文档太大,一张软盘根本装不下,所以我离开家后一直没有备份。PowerBook 崩溃了,整个文件都毁了。
事情发生时,我正要出门去拜访一家名为 Electric Communities 的公司,该公司当时在洛斯阿尔托斯。我带上了我的 PowerBook。我在 Electric Communities 的朋友都是 Mac 用户,他们有各种各样的实用软件来清除文件和从磁盘崩溃中恢复,我确信我能找回大部分文件。
结果,两个不同的 Mac 崩溃恢复工具都无法找到我的文件存在过的任何痕迹。它被彻底、系统地清除了。我们逐块检查了硬盘,发现了无数被丢弃、遗忘的旧文件的碎片,但没有我想要的东西。那天的隐喻剪切特别残忍。这就像是看着你爱了十年的女孩在车祸中丧生,然后参加她的尸检,得知在衣服和化妆品的掩盖下,她只是血肉之躯。
我一定是在 "电力社区 "的办公室里陷入了某种原始的荣格迷思,因为就在这个时候,发生了三件奇怪的同步事情。
回到家后,我开始玩 Linux,它是抽象的柏拉图式理想 Unix 的众多具体实现之一。我并不希望换一个新的操作系统,因为多年来我在 Mac 硬件上花的钱还在我的信用卡上 "冒烟"。但是,Linux 的最大优点是,它可以在与微软操作系统完全相同的硬件上运行,也就是说,可以在最便宜的硬件上运行。为了证明这是一个好主意,我在回国后的一两周内就免费得到了一台当时还算不错的电脑(一台 33-MHz 的 486 电脑),因为我认识一个人,他工作的办公室里的电脑都被扔掉了。我把它带回家后,就把机盖拽下来,把手伸进去,开始换卡。如果还不行,我就跑到二手电脑销售点,翻箱倒柜,花几块钱买一张新卡。
这些廉价而有效的硬件的出现,是十多年前 IBM 和微软公司决策的意外结果。Windows 问世后,图形用户界面进入了更大的市场,硬件系统也随之发生了变化:彩色视频卡和高分辨率显示器的成本开始下降,而且还在继续下降。这种自由使用硬件的方式意味着,与 MacOS 相比,Windows 难免显得笨拙。但图形用户界面为广大用户带来了计算功能,因此销量大增,价格崩溃。与此同时,苹果公司却在市场份额上遥遥领先,至少部分原因是其精美的硬件价格昂贵。
但是,我们这些 Mac 用户为卓越的美学和工程学所付出的代价并不仅仅是经济上的。我们还得付出文化上的代价,因为我们无法打开机盖,随意摆弄它。道格-巴恩斯是对的。尽管苹果以其邋遢、富有创造力的黑客首选机器而闻名,但它实际上创造了一种不鼓励黑客攻击的机器,而被视为技术落后者和模仿者的微软则创造了一个庞大、无序的零部件集市--一种最终自我组装成 Linux 的原始汤。
操作系统的漏洞
在操作系统大战中,Unix 就像俄罗斯军队一样,总是以挑衅的姿态潜伏在幕后。大多数人对它的了解仅限于它的名声,而正如《呆伯特》漫画中所说的那样,它的名声可谓毁誉参半。但每个人似乎都同意,只要它能振作起来,不再向汹涌而来的侵略者交出大片富饶的农田和成千上万的战俘,它就能把侵略者(以及所有其他反对者)踩在脚下。
要解释 Unix 如何赢得这种尊重,很难不涉及令人震惊的技术细节。也许可以通过一个关于钻头的故事来解释其中的要点。
Hole Hawg 是密尔沃基工具公司生产的一种电钻。如果你在一家普通的五金店里找到米尔沃基的小型电钻,但却找不到 Hole Hawg。Hole Hawg 没有廉价家用电钻的手枪式设计。它是一个实心金属立方体,一面伸出一个手柄,另一面安装一个卡盘。立方体中装有一个令人不安的强力电动马达。你可以握住手柄,用食指操作扳机,但除非你特别强壮,否则单手是无法控制 Hole Hawg 的重量的;它完全是一个双手工具。为了抵御 Hole Hawg 的反扭矩,您需要使用一个单独的手柄(已提供),根据您是用左手还是右手操作扳机,将其拧入铁立方体的一侧或另一侧。这个手柄并不像家用电钻那样设计光滑、符合人体工程学原理。它只是一块一英尺长的普通镀锌管,一端有螺纹,另一端是黑色橡胶手柄。如果弄丢了,只需到当地的管道供应商店再买一大块管子就可以了。
八十年代,我做过一些建筑工作。有一天,另一个工人把梯子靠在我们正在建造的大楼外侧,爬上二楼,用 Hole Hawg 在外墙钻了一个洞。不知什么时候,钻头卡在了墙上。孔鹰按照它唯一的指令,继续前进。它把工人的身体像布娃娃一样转来转去,导致他把自己的梯子撞倒。幸运的是,他紧紧抓住了仍然插在墙上的洞鹰,他就这样悬挂在洞鹰上,大声呼救,直到有人过来把梯子扶正。
我曾用 Hole Hawg 在墙骨上钻了很多孔,就像搅拌机切卷心菜一样。我还用它在旧的灰泥天花板上凿了几个直径为六英寸的孔。我装上新的孔锯,爬上二楼,把手伸到新安装的地板托梁之间,开始切割下面一楼的天花板。我房主的电钻费力地旋转着巨大的钻头,稍有阻碍就会停滞不前。当孔锯卡住时,孔鹰就把它自己和我一起旋转起来,把我的一只手压在钢管手柄和托梁之间,造成了几道撕裂伤,每道撕裂伤周围都有一道深深擦伤的肉痕。它还弄弯了孔锯本身,不过还不至于让我无法使用。经过几次这样的撞击后,当我准备使用孔锯时,我的心竟开始怦怦直跳。
但我从不责怪洞鹰,而是责怪自己。孔鹰之所以危险,是因为它完全按照你的吩咐行事。它不受廉价钻孔机固有的物理限制,也不受有责任意识的制造商在家用产品中内置的安全联锁装置的限制。危险不在于机器本身,而在于使用者没有预见到他所下达指令的全部后果。
小型工具也很危险,但原因完全不同:它试图按照你的要求去做,却以某种不可预知的方式失败了,而这种失败几乎总是不可取的。而孔鹰就像古代童话故事中的精灵,它能准确无误地执行主人的指令,拥有无穷的力量,但往往会带来灾难性的、无法预料的后果。
在 "孔鹰 "出现之前,我曾以自认为审慎的眼光审视五金店里的电钻产品,蔑视低端的小型电钻,对昂贵的大型电钻则赞赏有加,希望自己也能买得起这样的宝贝。现在,我对这些钻孔机嗤之以鼻,甚至不认为它们是真正的钻孔机--它们不过是按比例放大的玩具,目的是利用手软的房主自欺欺人的心理,让他们相信自己买到了真正的工具。它们的塑料外壳是精心设计的,并经过了焦点小组测试,以传达一种坚固和有力的感觉,但在我看来,这种外壳却是令人作呕的脆弱和廉价,我为曾经被忽悠购买这种小玩意儿而感到羞愧。
我们不难想象,如果一个人从小在承包商的熏陶下长大,从未使用过 Hole Hawg 以外的任何钻头,那么他眼中的世界会是什么样子。这样的人在看到五金店里最好、最昂贵的电钻时,甚至不会认出它是什么。他可能会误认为这是儿童玩具,或者是某种电动螺丝刀。如果销售人员或自欺欺人的房主把它说成是电钻,他会笑着告诉他们,他们搞错了--他们只是用错了术语。他的对话者会恼羞成怒地离开,而且可能会对他那堆满了廉价、危险、华而不实、五颜六色的工具的地下室感到相当自责。
Unix 是操作系统中的 "孔鹰",Unix 黑客就像道格-巴恩斯(Doug Barnes)、《呆伯特》(Dilbert)漫画中的那个人以及硅谷的其他许多人一样,就像承包商的儿子,从小到大只用 "孔鹰"。他们可能会使用苹果/微软操作系统写信、玩电子游戏或平衡支票簿,但他们无法真正认真对待这些操作系统。
口述传统
Unix 很难学习。学习 Unix 的过程是一个多次小顿悟的过程。通常情况下,当你正要发明一些必要的工具或实用程序时,你会发现别人已经发明了它,并将其内置其中,这就解释了一些你以前注意到但从未真正理解的奇怪文件、目录或命令。
例如,有一个名为 whoami 的命令(一个小程序,操作系统的一部分),可以让你询问计算机它认为你是谁。在 Unix 机器上,你总是以某个名字登录,甚至可能是你自己的名字!你可以处理哪些文件,使用哪些软件,都取决于你的身份。当我开始使用 Linux 时,我使用的是地下室里的一台非联网机器,只有一个用户账户,所以当我意识到 whoami 命令时,我觉得它很可笑。但是,一旦你以一个人的身份登录,你就可以临时切换到一个假名,以便访问不同的文件。如果你的机器在互联网上,只要你有用户名和密码,就可以登录其他电脑。此时,远处的机器实际上与眼前的机器没有什么区别。这些身份和位置的变化很容易相互嵌套,层层深入,即使你没有做任何坏事。一旦你忘记了自己的身份和位置,whoami 命令就不可或缺。我经常使用它。
Unix 机器的文件系统都有相同的总体结构。在你脆弱的操作系统上,你可以创建目录(文件夹),给它们起名叫佛罗多或我的东西,然后把它们放在你喜欢的任何地方。但在 Unix 系统中,文件系统的最高级别--根目录--总是用单个字符"/"来表示,并且总是包含同一组顶级目录:
/usr /etc /var /bin /proc /boot /home /root /sbin /dev /lib /tmp
每个目录通常都有自己独特的子目录结构。请注意缩写和避免使用大写字母的强迫性使用;这是一个由重复性应激障碍患者发明的系统,对于他们来说,重复性应激障碍就像黑肺病对于矿工一样。冗长的名称就像被河水冲刷过的石头一样,被磨得只剩下三个字母。
这里不是试图解释上述每个目录存在的原因以及其中包含的内容的地方。起初,这一切都显得晦涩难懂;更糟糕的是,它似乎是故意晦涩难懂的。当我开始使用 Linux 时,我习惯于随心所欲地创建目录,并给它们起任何我喜欢的名字。在 Unix 系统下,你当然可以自由地这么做(你可以自由地做任何事),但随着你对系统经验的积累,你会逐渐明白,上面列出的目录都是出于最好的理由而创建的,如果你能跟着系统走,你的生活会轻松得多(顺便说一句,在 /home 目录中,你几乎拥有无限的自由)。
这样的事情发生了几百上千次之后,黑客就会明白为什么 Unix 会是这样,并同意换一种方式就不会一样了。正是这种习惯化使 Unix 黑客对系统充满信心,并表现出《呆伯特》漫画中那种冷静、不可动摇、令人讨厌的优越感。Windows 95 和 MacOS 都是产品,是工程师为特定公司服务而设计的。相比之下,Unix 与其说是一种产品,不如说是黑客亚文化的口述历史。它是我们的吉尔伽美什史诗。
像《吉尔伽美什》这样的古老史诗之所以如此强大,如此长盛不衰,是因为它们是活生生的叙事体,许多人都熟记于心,并一遍又一遍地讲述--每当他们心血来潮时,就会对其进行个人化的润色。不好的润色会被大声斥责,好的润色会被其他人拾起,加以润色、改进,并随着时间的推移融入故事之中。同样,Unix 为众多黑客所熟知、喜爱和理解,只要有人需要,就可以从头开始重新创建。这对于习惯于将操作系统视为必须购买的东西的人来说,是很难理解的。
许多黑客或多或少成功地重新实现了 Unix 理想。每一次都有新的改进。其中一些很快消亡,一些与不同的黑客为解决同一问题而进行的类似、平行的创新合并,还有一些则被接受,成为史诗。就这样,Unix 围绕着一个简单的内核慢慢积累,获得了一种有机的复杂性和不对称性,就像树根或冠状动脉的分支。理解它更像是解剖学而非物理学。
在我采用 Linux 之前的至少一年里,我一直听说过它。可靠的、消息灵通的人不断告诉我,一群黑客把 Unix 整合到了一起,可以从互联网上免费下载。很长一段时间,我都无法认真对待这个说法。这就像听到传言说,一群火箭模型爱好者通过在网上交换蓝图,互相邮寄阀门和法兰,制造出了一个功能齐全的土星五号。
但事实的确如此。1991 年,芬兰人 Linus Torvalds 使用一些 GNU 工具写出了可以在 PC 兼容硬件上运行的 Unix 内核的雏形。事实上,托瓦尔兹理应获得所有的荣誉,甚至更多。但他不可能靠一己之力实现这一目标,理查德-斯托尔曼(Richard Stallman)也不可能做到这一点。为了写代码,托瓦尔兹必须拥有廉价但功能强大的开发工具,而这些工具正是他从斯托尔曼的 GNU 项目中获得的。
他还必须有廉价的硬件来编写代码。廉价硬件比廉价软件更难安排;一个人(斯托尔曼)就可以编写软件并免费发布到网络上,但要制造硬件,就必须拥有一整套工业基础设施,而这无论如何都不是廉价的。要让硬件变得便宜,唯一的办法就是大量生产,最终降低单位成本。由于上述原因,苹果公司并不希望看到硬件成本下降。托瓦尔兹拥有廉价硬件的唯一原因是微软。
微软拒绝涉足硬件业务,坚持让自己的软件在任何人都能制造的硬件上运行,从而创造了硬件价格暴跌的市场条件。因此,在试图理解 Linux 现象时,我们必须看到的不是单一的创新者,而是一种奇异的三位一体:Linus Torvalds、Richard Stallman 和 Bill Gates。去掉这三位中的任何一位,Linux 都将不复存在。
操作系统震撼
年轻的美国人离开自己同质化严重的国家,到世界其他地方去旅游,通常会经历几个阶段的文化冲击:首先是瞪大眼睛的呆滞惊讶。然后是对新国家的礼仪、饮食、公共交通系统和厕所的初步了解,接着是短暂的虚妄自信,以为自己马上就能成为新国家的专家。随着访问时间的推移,思乡之情开始涌上心头,旅行者开始第一次体会到自己在国内有多少事情是理所当然的。与此同时,旅行者开始意识到,自己的许多文化和传统本质上都是随意的,本可以与众不同;例如,在道路上靠右行驶。当旅行者回到家,总结这次经历时,他或她对美国的了解可能比对他们去访问的国家的了解还要多得多。
出于同样的原因,Linux 也值得一试。这的确是一个陌生的国度,但你不必住在那里;短暂的逗留足以让你感受到这个地方的一些风情,更重要的是,可以让你看到一切理所当然的东西,以及在 Windows 或 MacOS 系统下本可以采取的不同做法。
不安装就无法体验。对于任何其他操作系统来说,安装它都是一笔简单的交易:作为金钱交换,某些公司会给你一张光盘,然后你就可以开始使用了。但是,这种交易中包含了很多东西,必须经过仔细研究和挑选。
在美国,我们喜欢简单明了的交易。如果你去埃及,比如说打车去某个地方,你就成了出租车司机生活的一部分;他拒绝收你的钱,因为这会贬低你们的友谊,他跟着你在城里转悠,当你坐上别人的出租车时,他会热泪盈眶。最后,你还会遇到他的孩子,你必须想尽一切办法补偿他,又不能侮辱他的名誉。这让人精疲力竭。有时候,你只想搭乘一辆简单的曼哈顿式出租车。
但是,为了实现美国式的设置,即出门叫辆出租车就能上路,就必须有一整套隐蔽的机制,包括牌照、检查员、佣金等等--只要出租车便宜,你总能叫到车,那就没问题。当这个系统在某些方面失灵时,它就会变得神秘而令人愤怒,并让原本理智的人变成阴谋论者。但当埃及的系统发生故障时,它的故障是透明的。你打不到出租车,但你司机的侄子会步行出现,向你解释问题并道歉。
微软和苹果以曼哈顿的方式行事,将庞大的复杂性隐藏在界面墙之后。Linux采用的是埃及的方式,复杂性散落在各处。如果你刚从曼哈顿飞过来,你的第一反应就是举起双手说:"我的天哪!你们这些人就不能控制一下自己吗?你们能不能管管自己!"但是,这样做并不能在 Linux 之乡交到比在埃及更好的朋友。
你可以通过下载正确的文件并把它们放在正确的位置,把 Linux 从空气中吸出来,但世界上能用这种方法创建一个正常运行的 Linux 系统的人可能不会超过几百个。你真正需要的是一个 Linux 发行版,也就是一套预先打包好的文件。但发行版与 Linux 本身是两码事。
Linux 本身不是一组特定的 1 和 0,而是一种自组织的网络亚文化。其集体创作的最终成果是大量的源代码,几乎都是用 C 语言(主流计算机编程语言)编写的。"源代码 "只是指由黑客输入和编辑的计算机程序。如果是 C 语言,文件名的末尾可能会有 .c 或 .cpp,这取决于使用的是哪种方言;如果是其他语言,则会有其他后缀。这类文件通常可以在名为 /src 的目录中找到,这是黑客对 "源代码 "的希伯来语缩写。
源文件对你的电脑毫无用处,大多数用户也不感兴趣,但它们却具有巨大的文化和政治意义,因为微软和苹果对它们保密,而 Linux 却将它们公之于众。它们是家族的瑰宝。在好莱坞惊悚片中,这些文件被用作 "麦格芬":钚弹芯、绝密蓝图、一箱不记名债券、一卷缩微胶卷。如果 Windows 或 MacOS 的源文件在网络上公开,那么这些操作系统就会变得像 Linux 一样免费--只不过没有 Linux 那么好,因为没有人会来修复漏洞和回答问题。Linux 是 "开放源码 "软件,简单地说,就是任何人都可以获得其源代码文件的副本。
你的电脑和你一样不需要源代码,它需要的是目标代码。目标代码文件的后缀通常是 .o,除了少数非常奇怪的人之外,其他人是无法读取的,因为它们是由 1 和 0 组成的。因此,这类文件通常出现在/bin("二进制")目录下。
源文件是简单的 ASCII 文本文件。ASCII 表示将字母编码成位模式的一种特殊方式。在 ASCII 文件中,每个字符都有八个比特。这就创造了一个包含 256 个不同字符的潜在 "字母表",因为 8 个二进制位可以组成这么多独特的模式。当然,在实际应用中,我们往往会局限于熟悉的字母和数字。用来表示这些字母和数字的比特模式与我高中时电传打字机打在纸带上的模式相同,而几十年前电报行业使用的也是同样的模式。换句话说,ASCII 文本文件就是电报,因此没有任何印刷上的修饰。但出于同样的原因,ASCII 文本文件也是永恒的,因为其代码从未改变,而且是通用的,因为所有的文本编辑和文字处理软件都知道这种代码。
因此,几乎任何软件都可以用来创建、编辑和读取源代码文件。然后,由一个名为编译器的软件从这些源代码文件创建对象代码文件,再由另一个名为链接器的软件将其连接成一个可运行的应用程序。
编辑器、编译器和链接器三者共同构成了软件开发系统的核心。现在,我们可以花很多钱购买具有漂亮的图形用户界面和各种人体工程学改进功能的收缩包装开发系统。在某些情况下,这甚至可能是一种很好很合理的花钱方式。但在这里,最好的软件通常都是免费的。编辑器、编译器和链接器对于黑客来说,就像小马、马镫和弓箭对于蒙古人一样。黑客们生活在马鞍上,他们甚至在使用自己的工具创建新的应用程序时,还在黑自己的工具。很难想象,产品工程师能从一张白纸上创造出卓越的黑客工具。即使他们是世界上最聪明的工程师,他们也是寡不敌众。
在 GNU/Linux 世界中,有两种主要的文本编辑程序:最小化的 vi(在某些实现中称为 elvis)和最大化的 emacs。我使用的 emacs 可以看作是一种热核文字处理器。它是由理查德-斯托尔曼(Richard Stallman)创建的;说得够多了。它是用 Lisp 写成的,而 Lisp 是唯一一种优美的计算机语言。它非常庞大,但却只能编辑纯 ASCII 文本文件,也就是说,没有字体,没有粗体字,没有下划线。换句话说,对于微软 Word 来说,工程师们的时间都花在了邮件合并等功能上,以及在公司备忘录中嵌入长篇电影的能力上,而对于 emacs 来说,工程师们的时间都疯狂地集中在了编辑文本这个看似简单的问题上。如果你是一名专业作家--也就是说,如果有人拿着钱来为你的文字如何格式化和打印而操心--emacs 就会像正午的太阳照亮星星一样,让其他所有编辑软件望尘莫及。它不仅更大更亮,还能让其他一切都黯然失色。对于页面排版和打印,你可以使用 TeX:这是一个用 C 语言编写的庞大排版知识库,也可以在网上免费获得。
关于 emacs 和 TeX,我可以说很多,但现在我想讲的是如何在你的机器上真正安装 Linux 的故事。硬核求生者的做法是下载一个像 emacs 这样的编辑器,以及 GNU 工具--编译器和链接器--它们与 emacs 一样精良出色。有了这些工具,就可以开始下载 ASCII 源代码文件(/src),并将其编译成二进制目标代码文件(/bin),然后在机器上运行。但要达到这一步--例如运行 emacs--你必须在机器上安装并运行 Linux。而即使是一个最基本的 Linux 操作系统,也需要成千上万个二进制文件协同工作,并以适当的方式排列和链接在一起。
因此,一些实体自行创建了 Linux 的 "发行版"。如果我把埃及的比喻稍作延伸,这些实体就有点像在机场迎接你的导游,他们会讲你的语言,帮助你度过最初的文化冲击。当然,如果你是埃及人,你会从另一个角度看待这个问题;导游的存在是为了防止野蛮的外乡人在你的清真寺里乱窜,并一遍又一遍地问你同样的问题。
这些导游中有些是商业机构,比如红帽软件公司(Red Hat Software),该公司生产的名为红帽(Red Hat)的Linux发行版具有相对商业化的色彩。在大多数情况下,你把 Red Hat CD-ROM 放进电脑,然后重新启动,剩下的就交给它了。就像埃及的导游希望得到某种报酬一样,商业发行版也需要付费。在大多数情况下,它们几乎不花钱,而且物有所值。
我使用的发行版叫做 Debian(这个词是 "Deborah "和 "Ian "的缩写),它是非商业性的。它的组织方式(或者我应该说 "它是自己组织起来的")与一般的 Linux 相同,也就是说,它是由通过网络合作的志愿者组成的,每个人负责照看系统的不同部分。这些人将 Linux 分解成许多软件包,这些压缩文件可以下载到已经运行的 Debian Linux 系统中,然后使用免费的安装程序打开并解压。当然,就其本身而言,Debian 没有商业分支--没有发行机制。你可以通过网络下载所有的 Debian 软件包,但大多数人还是希望将它们刻录在光盘上。有几家不同的公司已经主动将目前所有的 Debian 软件包解压缩到光盘上,然后出售。我就是从 Linux Systems Labs 购买的。一套包含 Debian 全部内容的三张光盘的价格不到三美元。但是(这是一个重要的区别),这三块钱中没有一分钱是给任何创建 Linux 的编码员的,也没有一分钱是给 Debian 的打包者的。它流向了 Linux 系统实验室,支付的不是软件或软件包的费用,而是印刷光盘的费用。
每个 Linux 发行版都或多或少地包含了一些巧妙的黑客技术,可以规避正常的启动过程,使你的计算机在开机时,不是作为运行 Windows 的 PC,而是作为运行 Unix 的 "主机 "来组织自己。第一次看到这种情况时,你会感到有些惊慌,但这完全无害。当电脑启动时,它会进行一个小小的自检程序,清点可用磁盘和内存,然后开始四处寻找可以启动的磁盘。在任何正常的 Windows 电脑中,该磁盘都是硬盘驱动器。但如果你的系统配置正确,它会首先寻找软盘或光盘,如果有的话,就从它们启动。
Linux 正是利用了这一漏洞。你的电脑会发现软盘或 CD-ROM 驱动器中有一张可启动磁盘,然后从该磁盘加载一些目标代码,并盲目地开始执行。但这不是微软或苹果的代码,而是 Linux 代码,因此此时电脑的行为开始与你习惯的行为大相径庭。屏幕上开始滚动出现一些难以理解的信息。如果你启动的是商业操作系统,此时你看到的应该是 "欢迎使用 MacOS "的动画片,或者是布满蓝天白云和 Windows 徽标的屏幕。但在 Linux 下,你看到的却是黑屏上用惨白字体打印的一封长电报。没有 "欢迎!"的信息。电报的大部分内容都带有涂鸦标签的半神秘威胁。
Dec 14 15:04:15 theRev syslogd 1.3-3#17: restart.Dec 14 15:04:15 theRev kernel: klogd 1.3-3, log source = /proc/kmsg started.Dec 14 15:04:15 theRev kernel:从 /System.map 加载了 3535 个符号。Dec 14 15:04:15 theRev kernel:符号符合内核版本 2.0.30。Dec 14 15:04:15 theRev kernel:没有加载模块符号。Dec 14 15:04:15 theRev kernel:英特尔多处理器规范 v1.4 Dec 14 15:04:15 theRev kernel:虚拟线兼容模式。Dec 14 15:04:15 theRev kernel:OEM ID:INTEL Product ID:440FX APIC at:0xFEE00000 Dec 14 15:04:15 theRev kernel:处理器 #0 Pentium(tm) Pro APIC 版本 17 Dec 14 15:04:15 theRev kernel:处理器 #1 Pentium(tm) Pro APIC 版本 17 Dec 14 15:04:15 theRev kernel:I/O APIC #2 版本 17 位于 0xFEC00000。Dec 14 15:04:15 theRev kernel:处理器:2 Dec 14 15:04:15 theRev kernel:控制台:16 点字体,400 扫描 Dec 14 15:04:15 theRev kernel:Console: color VGA+ 80x25, 1 virtual console (max 63) Dec 14 15:04:15 theRev kernel: pcibios_init : BIOS32 Service Directory structure at 0x000fdb70 Dec 14 15:04:15 theRev kernel: pcibios_init : BIOS32 Service Directory entry at 0xfdb80 Dec 14 15:04:15 theRev kernel: pcibios_init : PCI BIOS revision 2.10 entry at 0xfdba1 Dec 14 15:04:15 theRev kernel:Probing PCI hardware.Dec 14 15:04:15 theRev kernel:警告:未知 PCI 设备 (10b7:9001)。请阅读 include/linux/pci.h Dec 14 15:04:15 theRev kernel:Calibrating delay loop... ok - 179.40 BogoMIPS Dec 14 15:04:15 theRev kernel:Memory: 64268k/66556k available (700k kernel code, 384k reserved, 1204k data) Dec 14 15:04:15 theRev kernel:Swansea University Computer Society NET3.035 for Linux 2.0 Dec 14 15:04:15 theRev kernel:NET3.035 for Linux 2.0Linux NET3.035 的 Unix 域套接字 0.13。Dec 14 15:04:15 theRev kernel:Swansea University Computer Society TCP/IP for NET3.034 Dec 14 15:04:15 theRev kernel:IP 协议:ICMP, UDP, TCP Dec 14 15:04:15 theRev kernel:检查 386/387 耦合...好的,fpu 使用异常 16 报告错误。Dec 14 15:04:15 theRev kernel:检查 'hlt' 指令...正常。Dec 14 15:04:15 theRev kernel:Linux 版本 2.0.30 (root@theRev) (gcc 版本 2.7.2.1) #15 Fri Mar 27 16:37:24 PST 1998 Dec 14 15:04:15 theRev kernel:启动处理器 1 堆栈 00002000:Calibrating delay loop... ok - 179.40 BogoMIPS Dec 14 15:04:15 theRev kernel:共激活 2 个处理器 (358.81 BogoMIPS)。Dec 14 15:04:15 theRev 内核:串行驱动程序版本 4.13,未启用串行选项 Dec 14 15:04:15 theRev kernel: tty00 at 0x03f8 (irq = 4) is a 16550A Dec 14 15:04:15 theRev kernel: tty01 at 0x02f8 (irq = 3) is a 16550A Dec 14 15:04:15 theRev kernel: lp1 at 0x0378, (polling) Dec 14 15:04:15 theRev kernel:检测到 PS/2 辅助指向设备 -- 驱动程序已安装。Dec 14 15:04:15 theRev kernel:Real Time Clock Driver v1.07 Dec 14 15:04:15 theRev kernel: loop: registered device at major 7 Dec 14 15:04:15 theRev kernel: ide: i82371 PIIX (Triton) on PCI bus 0 function 57 Dec 14 15:04:15 theRev kernel: ide0: BM-DMA at 0xffa0-0xffa7 Dec 14 15:04:15 theRev kernel: ide1: BM-DMA at 0xffa8-0xffaf Dec 14 15:04:15 theRev kernel: hda:Conner Peripherals 1275MB - CFS1275A, 1219MB w/64kB Cache, LBA, CHS=619/64/63 Dec 14 15:04:15 theRev kernel: hdb:Maxtor 84320A5, 4119MB w/256kB Cache, LBA, CHS=8928/15/63, DMA Dec 14 15:04:15 theRev kernel: hdc: , ATAPI CDROM drive Dec 15 11:58:06 theRev kernel:ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Dec 15 11:58:06 theRev kernel: ide1 at 0x170-0x177,0x376 on irq 15 Dec 15 11:58:06 theRev kernel:软驱:FD0 为 1.44M Dec 15 11:58:06 theRev kernel:启动 kswapd v 1.4.2.2 Dec 15 11:58:06 theRev kernel:FDC 0 是 National Semiconductor PC87306 Dec 15 11:58:06 theRev kernel: md driver 0.35 MAX_MD_DEV=4, MAX_REAL=8 Dec 15 11:58:06 theRev kernel:PPP: version 2.2.0 (dynamic channel allocation) Dec 15 11:58:06 theRev kernel:TCP 压缩代码,版权属于 1989 加利福尼亚大学管理委员会 Dec 15 11:58:06 theRev kernel:PPP 动态信道分配代码,版权属于 1995 Caldera, Inc.Dec 15 11:58:06 theRev kernel:已注册 PPP 线路纪律。Dec 15 11:58:06 theRev kernel:SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256).Dec 15 11:58:06 theRev kernel: eth0: 3Com 3c900 Boomerang 10Mbps/Combo at 0xef00, 00:60:08:a4:3c:db, IRQ 10 Dec 15 11:58:06 theRev kernel:8K 字宽 RAM 3:5 Rx:Tx 分离,10base2 接口。Dec 15 11:58:06 theRev kernel:启用总线主发送和全帧接收。Dec 15 11:58:06 theRev kernel:3c59x.c:v0.49 1/2/98 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html Dec 15 11:58:06 theRev 内核:分区检查:Dec 15 11:58:06 theRev kernel: hda: hda1 hda2 hda3 Dec 15 11:58:06 theRev kernel: hdb: hdb1 hdb2 Dec 15 11:58:06 theRev kernel:VFS: 已挂载 root(ext2 文件系统),只读。Dec 15 11:58:06 theRev kernel:Adding Swap: 16124k swap-space (priority -1) Dec 15 11:58:06 theRev kernel:EXT2-fs warning: maximal mount count reached, running e2fsck is recommended Dec 15 11:58:06 theRev kernel: hdc: media changed Dec 15 11:58:06 theRev kernel:ISO9660 扩展:RRIP_1991A Dec 15 11:58:07 theRev syslogd 1.3-3#17: restart.Dec 15 11:58:09 theRev diald[87]:无法打开选项文件 /etc/diald/diald.options:No such file or directory Dec 15 11:58:09 theRev diald[87]:未指定设备。您必须至少有一个设备!Dec 15 11:58:09 theRev diald[87]:您必须定义一个连接器脚本(选项'connect')。Dec 15 11:58:09 theRev diald[87]:您必须定义远程 IP 地址。Dec 15 11:58:09 theRev diald[87]:您必须定义本地 IP 地址。Dec 15 11:58:09 theRev diald[87]:因重新配置受损而终止。
对于普通人来说,其中唯一可读的部分就是错误信息和警告。然而值得注意的是,Linux 在遇到错误时并没有停止或崩溃,而是吐出一句精辟的抱怨,放弃任何受损的进程,然后继续运行。早期的苹果和微软操作系统显然不是这样,原因很简单,一个不能同时行走和嚼口香糖的操作系统不可能从错误中恢复过来。查找和处理错误需要一个独立的进程与出错的进程并行运行。可以说,这是一种 "超我",它可以监控所有其他进程,并在其中一个进程出错时介入。现在,MacOS 和 Windows 可以同时处理多件事情,它们在处理错误方面比以前要强得多,但在这方面,它们甚至还比不上 Linux 或其他 Unices;它们的复杂性也使它们容易受到新型错误的影响。
不可犯错、赎罪、救赎、信任和其他神秘的技术概念
Linux 不可能有任何集中组织的政策来规定如何编写错误信息和文档,因此每个程序员都要编写自己的错误信息和文档。尽管大量 Linux 程序员都是欧洲人,但这些错误信息和文档通常都是英文的。它们经常很有趣。它们总是很诚实。如果因为软件尚未完成或用户弄错了什么而发生了什么不好的事情,它们都会直截了当地说明。命令行界面可以让程序很容易地在这里或那里透露出一些注释、警告和信息。即使程序像一艘受损的潜水艇一样内爆,通常也能挤出一点 S.O.S. 消息。有时,当你使用完一个程序并将其关闭时,你会发现它在命令行界面窗口中留下了一系列轻微的警告和低级错误信息。就好像在你使用软件的整个过程中,软件一直在和你聊天,告诉你它是如何工作的。
在 Linux 下,文档以 man(手册的简称)页面的形式出现。你可以通过图形用户界面(xman)或命令行(man)访问这些页面。下面是一个名为 rsh 的程序的 man 页样本:
"Stop 信号只停止本地 rsh 进程;这可以说是错误的,但目前很难解决,原因太复杂,这里就不解释了。
man 页面包含大量此类材料,读起来就像飞行员在与受损飞机的控制装置搏斗时的喃喃自语。总的感觉是,在频闪的停止动作光下,看到的是无数不朽但晦涩难懂的斗争。每个程序员都在处理自己的障碍和错误;他忙于修复这些障碍和错误,改进软件,无暇长篇大论或故作高深。
实际上,你在运行 Linux 时几乎不会遇到严重的错误。当你遇到时,几乎总是在商业软件上(有几家厂商出售在 Linux 下运行的软件)。操作系统及其基本实用程序太重要了,不可能包含严重的错误。自 1995 年末以来,我每天都在运行 Linux,看到过许多应用程序被烧毁,但我从未见过操作系统崩溃。从来没有。一次也没有。有相当多的 Linux 系统已经连续运行数月或数年而无需重启。
商业操作系统必须对错误采取与共产主义国家对贫穷相同的官方立场。出于理论上的原因,共产主义国家不可能承认贫困是一个严重的问题,因为共产主义的全部意义就在于消除贫困。同样,像苹果和微软这样的商业操作系统公司也不能到处承认他们的软件有漏洞,经常崩溃,就像迪斯尼不能发布新闻稿说米老鼠是一个穿着西装的演员一样。
这是一个问题,因为错误确实存在,错误确实会发生。比尔-盖茨(Bill Gates)每隔几个月就会在众多观众面前演示微软的新产品,但结果却让他大跌眼镜。作为商业操作系统供应商的直接后果,他们不得不采取一种极不真诚的立场,即错误是罕见的反常现象,通常是别人的错,因此不值得详细谈论。这种人人皆知的荒谬立场并不局限于新闻稿和广告宣传。它影响着这些公司的整个经营方式以及与客户的关系。如果文档编写得当,那么每一页都会提到错误、错误和崩溃。如果这些操作系统附带的在线帮助系统能够反映用户的经验和关注点,那么这些系统就会在很大程度上专门指导用户如何应对崩溃和错误。
但事实并非如此。股份公司是一项了不起的发明,为我们提供了许多优秀的产品和服务。它们擅长很多事情。承认失败并不是其中之一。见鬼,它们甚至不能承认小的缺点。
当然,企业的这种行为并不像人类那样病态。如今,大多数人都明白,公司发布新闻稿是为了公司股东的利益,而不是为了启迪公众。有时,这种制度上的不诚实会带来可怕的后果,比如烟草和石棉。当然,对于商业操作系统供应商来说,情况并非如此,它只是令人讨厌而已。
有些人可能会说,消费者的恼怒会随着时间的推移累积成一种坚硬的斑块,可以掩盖严重的腐化,因此从长远来看,诚实可能是最好的政策;在操作系统市场上,这一点还没有定论。操作系统市场的业务正在快速扩张,拥有数十亿长期烦恼的客户比拥有数百万快乐的客户要好得多。
我认识的大多数经常使用 Windows NT 的系统管理员都认为,一旦出现问题,就必须重新启动,而一旦出现严重问题,修复的唯一办法就是从头开始重新安装操作系统。或者说,至少这是他们所知道的唯一修复方法,也就相当于做了同样的事情。微软的工程师们很有可能掌握着系统出错时如何修复的各种内幕知识,但如果他们知道的话,他们似乎并没有把这些信息传达给我认识的任何实际系统管理员。
因为 Linux 不是商业软件--因为它实际上是免费的,而且获取、安装和操作都相当困难--所以它不必在可靠性方面做任何矫饰。因此,它的可靠性要高得多。当 Linux 出现问题时,人们会立即发现错误并大声讨论。任何具备必要技术知识的人都可以直接进入源代码,指出错误的根源,然后由负责该程序的黑客迅速修复。
据我所知,Debian 是唯一拥有自己的章程 (http://www.debian.org/devel/constitution) 的 Linux 发行版,但真正让我对它产生好感的是它惊人的错误数据库 (http://www.debian.org/Bugs),这是一本关于错误、易错和救赎的交互式末日宝典。它本身就很简单。1997 年 1 月初,我在使用 Debian 时遇到了一个问题,我向 submit@bugs.debian.org 发送了一条描述问题的信息。我的问题很快就得到了一个错误报告编号(#6518)和一个严重程度级别(可供选择的级别有:关键、严重、重要、正常、已修复和希望列表),并被转发到 Debian 用户经常出现的邮件列表。在二十四小时内,我收到了五封电子邮件,告诉我如何解决这个问题:两封来自北美,两封来自欧洲,一封来自澳大利亚。所有这些邮件都给了我同样的建议,而且都很有效,使我的问题迎刃而解。但与此同时,这次交流的记录也被发布到了 Debian 的错误数据库中,这样,如果其他用户以后遇到同样的问题,他们就可以通过搜索找到解决方案,而不必再输入一个新的、多余的错误报告。
十个月后,也就是 1997 年底,我试图在同一台机器上安装 Windows NT 4.0 时,却遇到了这种情况。安装程序中途停止,没有任何错误信息。我进入微软支持网站,试图搜索可以解决我的问题的现有帮助文档。搜索引擎完全不起作用,什么也做不了。它甚至没有给我一条提示信息,告诉我它无法工作。
最后,我认为一定是我的主板出了问题;它的品牌和型号都有点不寻常,而且 NT 不像 Linux 那样支持多种不同的主板。于是,我买了一块与 Windows NT 徽标兼容的新主板,也就是说,Windows NT 徽标就印在主板的包装盒上。我把它安装到电脑上,Linux 立即开始运行,然后又尝试安装 Windows NT。安装再次失败,没有任何错误信息或解释。这时已经过去了几个星期,我想也许微软支持网站上的搜索引擎可以运行了。我试了一下,但还是不行。
于是,我创建了一个新的微软支持帐户,然后登录提交事件。我按照要求提供了我的产品 ID 号,然后开始按照一系列帮助屏幕上的说明操作。换句话说,我就像使用 Debian 漏洞跟踪系统一样提交了一份漏洞报告。只是界面更加简洁--我是在网络表格上的小文本编辑框中输入我的投诉,全部是通过图形用户界面完成的,而 Debian 系统则是通过电子邮件发送电报。我知道,当我提交完错误报告后,它将成为微软的专有信息,其他用户将无法看到它。许多 Linux 用户会以道德为由拒绝参与这样的计划,但我愿意作为一个实验试一试。最后,我还是没能提交错误报告,因为我填写的一系列链接网页最终把我带到了一个完全空白的页面:一个死胡同。
于是,我又点击了 "电话支持 "按钮,最终得到了一个微软的电话号码。当我拨通这个号码时,我听到了一连串刺耳的蜂鸣声和电话公司的录音信息:"很抱歉,您的电话无法按拨号完成"。
我又试了一下搜索页面--还是完全无法使用。然后我又尝试了 PPI(按事件付费)。这又让我浏览了一系列网页,直到我读到这样一条信息时,我才死心:"注意--没有符合您要求的网页"。
我又试了一次,最终进入了一个按事件付费的页面,上面写着:"没有事件了:"事件用完。您的账户中已没有未使用的事件。如果您想购买支持事件,请单击 "确定"--然后您就可以预付事件费用...."。每个事件的费用为 95 美元。
这项试验似乎开始变得相当昂贵,因此我放弃了 PPI 方法,决定利用微软网站上发布的常见问题解答。除了一个题为 "我在安装 NT 时遇到了一些问题 "的常见问题解答外,其他的常见问题解答都与我的问题无关。
于是我放弃了,直到今天,我也没有在那台机器上安装 Windows NT。对我来说,阻力最小的方法就是使用 Debian Linux。
在开源软件的世界里,错误报告是有用的信息。将它们公开是对其他用户的一种服务,也是对操作系统的一种改进。系统地公开这些报告非常重要,以至于高智商的人自愿投入时间和金钱来运行错误数据库。然而,在商业操作系统领域,报告错误是一种特权,你必须为此支付大量金钱。但是,如果你付了钱,那么错误报告就必须保密,否则任何人都可以从你的 95 美元中获益!然而,没有什么能阻止 NT 用户建立自己的公共错误数据库。
换句话说,这是操作系统市场的另一个特点,除非你从文化的角度来看待它,否则它是毫无意义的。微软通过 "按事件付费 "的方式销售的不是技术支持,而是一种持续的幻觉,让用户以为自己在进行某种理性的商业交易。这是一种维持幻想的日常维护费用。如果人们真的需要一个可靠的操作系统,他们会使用 Linux,如果他们真的需要技术支持,他们会想方设法得到它;而微软的客户需要的是别的东西。
截至本文撰写之时(1999 年 1 月),Debian Linux 错误数据库已经收到了大约 32,000 个错误报告。几乎所有的错误都在很久以前就被修复了。有 12 个 "严重 "错误仍未解决,其中最早的一个是 79 天前报告的。有 20 个 "严重 "错误仍未解决,其中最老的一个是在 1166 天前发布的。还有 48 个 "重要 "错误和数百个 "普通 "和不太重要的错误。
同样,BeOS(我稍后会讲到)也有自己的错误数据库(http://www.be.com/developers/bugs/index.html)和自己的分类系统,包括 "非错误"、"已确认功能 "和 "不会修复 "等类别。这里的一些 "错误 "只不过是黑客们在发泄情绪,被归类为 "输入已确认"。例如,我发现了一个发布于 1998 年 12 月 30 日的错误。它位于一长串错误列表的中间,夹在一个名为 "鼠标以非常奇怪的方式工作 "和另一个名为 "如果 BView 未连接到 BWindow,则不会影响 BView 框架的更改 "的错误之间。
这篇文章的标题是
R4:BeOS 缺少一个自大狂来驾驭和集中开发人员的愤怒
内容如下
Be 状态:输入已确认 BeOS 版本:R3.2 组件:未知
完整描述
BeOS 需要一个自大狂坐在它的宝座上,赋予它人见人爱、人见人恨的性格。如果没有这些,BeOS 就会在人们永远无法掌握的冒名顶替的操作系统领域中苟延残喘。判断一个操作系统成功与否,不是看它的功能质量,而是看它背后的领导者有多臭名昭著、多不受欢迎。
我相信,这是开发人员在悲惨条件下团结一致的副作用。毕竟,"患难见真情"。我相信,要让 BeOS 在概念上不那么易懂、可靠性大大降低,就需要开发人员团结起来,从而发展出一种陌生人之间相互交谈的社区,就像在暴风雪前的杂货店一样。
按照同样的计划,BeOS 总部很可能需要搬迁到气候更不舒适的地方。整体环境的不舒适会在内部滋生这种态度,这确实是成功的不二法门。我建议搬到西雅图,但我想那里已经有人了。你可以试试华盛顿特区,但绝对不要去圣地亚哥或图森这样的地方。
不幸的是,Be 错误报告系统删除了报告错误者的姓名(以保护他们免遭报复?
因此,我似乎正在为 Debian Linux 在技术和道德上的优越性大肆宣扬。但在操作系统的世界里,事情几乎总是这样,比这还要复杂。有一天(1999 年 1 月),我在另一台机器上运行 Windows NT,当我遇到问题时,我决定再找一次微软支持。这一次,搜索引擎真的起作用了(不过,为了找到它,我必须把自己定位为 "高级")。它没有搜索出一些无用的常见问题,而是找到了大约 200 份文件(我使用了非常模糊的搜索条件),这些文件显然是错误报告--虽然它们被称作别的东西。换句话说,微软已经建立并运行了一个在功能上等同于 Debian 错误数据库的系统。当然,它在外观和感觉上都有所不同,但它包含了技术上的细枝末节,而且对错误的存在毫不讳言。
正如我已经解释过的,为赚钱而销售操作系统基本上是站不住脚的,苹果和微软唯一能摆脱困境的办法就是拼命追求技术进步,让人们相信并为特定的形象买单:苹果的形象是富有创造力的自由思想者,而微软的形象则是受人尊敬的技术资产阶级。就像迪斯尼一样,他们通过销售界面、魔镜来赚钱。它必须完美无瑕,否则整个幻象就会被破坏,商业计划也会像海市蜃楼一样烟消云散。
因此,直到最近,那些为商业操作系统编写手册和创建客户支持网站的人,似乎都被他们雇主的法律或公关部门禁止承认,哪怕是含糊地承认软件可能存在漏洞,或者界面可能存在闪烁的十二宫问题。他们无法解决用户的实际困难。因此,手册和网站形同虚设,甚至让技术自信的用户怀疑自己是不是得了微妙的神经病。
当苹果公司做出这种企业行为时,人们都希望相信他们真的尽力了。我们都想给苹果公司一点好处,因为刻薄的老比尔-盖茨(Bill Gates)把他们踢得屁滚尿流,还因为他们有良好的公关能力。但当微软这样做的时候,人们几乎会情不自禁地变成一个偏执的阴谋论者。显然,他们对我们隐瞒了什么!然而他们是如此强大!他们想把我们逼疯!
这种与客户打交道的方式完全是二十世纪中期中欧极权主义的产物。我想到了 "卡夫卡式 "和 "奥威尔式 "这两个形容词。它无法持久,就像柏林墙一样,所以现在微软有了一个公开的漏洞数据库。它叫别的名字,要花点时间才能找到,但它就在那里。
换句话说,他们已经适应了技术社会的 "Eloi/Morlock "两级结构。如果你是埃洛伊人,你就会安装 Windows,按照说明操作,抱着最好的希望,然后傻傻地忍受系统崩溃的痛苦。如果你是莫洛克人,你就会访问网站,告诉它你是 "高级用户",找到错误数据库,然后从某个匿名的微软工程师那里直接了解真相。
但是,一旦微软采取了这一措施,就再次引发了一个问题:从事操作系统业务是否还有意义?如果用户能得到一些其他用户得不到的建议,他们也许会愿意花 95 美元向微软报告问题。这样做的副作用是让用户彼此疏远,有助于维持错误是罕见异常的假象。但是,一旦这些错误报告的结果在微软网站上公开,一切就都变了。没有人会花 95 美元去报告一个问题,因为很有可能会有其他笨蛋先报告,而如何修复漏洞的说明会免费出现在公共网站上。随着漏洞数据库规模的不断扩大,微软最终公开承认,他们的操作系统和竞争对手的操作系统一样存在大量漏洞。这并不丢人;正如我所提到的,Debian 的错误数据库迄今已记录了 32,000 份报告。但是,这使微软与其他公司处于同等地位,也使他们的客户--那些希望相信的客户--更难相信。
莫里纪念碑
Linux 机器吐出行话式的开场白后,就会提示我使用用户名和密码登录。此时,机器仍在运行命令行界面,黑屏上显示的是白字。没有窗口、菜单或按钮。它对鼠标没有任何反应,甚至不知道鼠标在那里。在这一点上,运行许多软件仍然是可能的。例如,Emacs 就有 CLI 和 GUI 两个版本(实际上有两个 GUI 版本,反映了理查德-斯托尔曼(Richard Stallman)和一些受够了他的黑客之间的某种理论分裂)。许多其他 Unix 程序也是如此。许多程序根本没有图形用户界面,许多有图形用户界面的程序也可以通过命令行运行。
当然,由于我的电脑只有一个显示器屏幕,我只能看到一条命令行,所以你可能会认为我一次只能与一个程序交互。但如果我按住 Alt 键,然后点击键盘上方的 F2 功能键,就会出现一个全新的、空白的黑屏,屏幕上方有登录提示。我可以在这里登录并启动其他程序,然后按下 Alt-F1 键,回到第一个屏幕。或者,我也可以按 Alt-F3 登录到第三个屏幕、第四个屏幕或第五个屏幕。在其中一个屏幕上,我可能以自己的身份登录,在另一个屏幕上,我可能以 root(系统管理员)的身份登录,在另一个屏幕上,我可能通过互联网登录到其他电脑上。
用 Unix 术语来说,这些屏幕中的每一个都叫 tty,是电传打字机的缩写。因此,当我以这种方式使用我的 Linux 系统时,我就回到了 25 年前我第一次写代码的艾姆斯高中的那个小房间,只不过 tty 比电传打字机更安静、更快,而且能运行更高级的软件,如 emacs 或 GNU 开发工具。
要配置一台 Linux 机器,使其在启动时直接进入图形用户界面是很容易的(按 Unix 标准,而非苹果/微软标准)。这样,你就根本看不到 tty 屏幕了。不过,我仍然让我的机器在启动时进入黑底白字的电传打字机屏幕,作为一种计算纪念。过去,作家喜欢在桌上放一个人头骨,以提醒自己是凡人,他的一切都是虚无的。Tty 屏幕提醒我,华而不实的用户界面也是如此。
X Windows 系统是 Unix 的图形用户界面,必须能够在数百种不同芯片组、板载内存量和主板总线的显卡上运行。同样,新显示器和二手显示器市场上也有数百种不同类型的显示器,每种显示器的规格各不相同,因此显卡和显示器的组合可能多达数百万种。它们唯一的共同点是都能在 VGA 模式下工作,也就是在启动 Windows 时能看到几秒钟的老式命令行屏幕。因此,Linux 总是在 VGA 模式下以电传打字机界面启动,因为一开始它根本不知道你的电脑上连接了什么样的硬件。为了摆脱玻璃电传打字机的束缚,进入图形用户界面,你必须准确地告诉 Linux 你拥有什么样的硬件。如果你弄错了,最好的结果是屏幕一片空白,最坏的结果是你可能会因为向显示器输入它无法处理的信号而毁掉它。
在我刚开始使用 Linux 的时候,这项工作必须手工完成。我曾经花了大半个月的时间,试图让一台古怪的显示器为我工作,并用越来越绝望的笔迹写满了一本作文簿。如今,大多数 Linux 发行版都附带了一个程序,可以自动扫描显卡并自行配置系统,因此安装 X Windows 几乎和安装苹果/微软的图形用户界面一样简单。关键信息会存入一个名为 XF86Config 的文件(自然是 ASCII 文本文件)中,即使你的发行版会自动为你创建该文件,也值得一看。对大多数人来说,它看起来就像毫无意义的咒语,而这正是查看它的意义所在。苹果/微软系统也需要同样的信息才能启动图形用户界面,但这些信息很可能被深深地隐藏在某个地方,而且很可能是在一个文本编辑器都无法打开和读取的文件中。使 Linux 系统正常工作的所有重要文件都是公开的。它们始终是 ASCII 文本文件,所以你不需要特殊的工具来读取它们。你可以随时查看它们,这是好事;你也可以把它们弄得一团糟,导致系统完全失灵,这就不太好了。
无论如何,假设我的 XF86Config 文件是正确的,我输入了 "startx "命令来启动 X Windows 系统。屏幕空白了一分钟,显示器发出奇怪的抽动声,然后重新变成一个空白的灰色桌面,中间有一个鼠标光标。与此同时,它正在启动一个窗口管理器。X Windows 是一款相当低级的软件;它为图形用户界面提供了基础架构,是一款重工业基础架构。但它并不运行窗口。这要由位于 X 窗口之上的另一类应用程序来处理,即窗口管理器。有几种窗口管理器可供使用,当然都是免费的。最经典的是 twm(汤姆窗口管理器),但还有一种更小巧、据说更高效的变体,叫做 fvwm,我用的就是它。我看中了一个完全不同的窗口管理器,叫做 Enlightenment,它可能是我见过的最时髦的单一技术产品,因为(a)它是 Linux 下的,(b)它是免费软件,(c)它是由极少数痴迷的黑客开发的,(d)它看起来酷毙了;它是那种可能出现在《外星人》电影背景中的窗口管理器。
总之,窗口管理器是 X Windows 与任何软件之间的中介。它绘制窗口框架、菜单等,而应用程序本身则绘制窗口中的实际内容。应用程序可以是任何类型:文本编辑器、网络浏览器、图形软件包或实用程序,如时钟或计算器。换句话说,从这一刻起,你会觉得自己好像被转移到了一个平行宇宙中,这个宇宙与我们熟悉的苹果或微软的宇宙非常相似,但又略有不同。苹果/微软的主要图形程序是 Adobe Photoshop,但在 Linux 下,它的名字叫 GIMP。你可以购买名为 ApplixWare 的软件,而不是微软办公套件。许多商业软件包,如 Mathematica、Netscape Communicator 和 Adobe Acrobat,都有 Linux 版本,根据你设置窗口管理器的方式,你可以让它们的外观和行为与 MacOS 或 Windows 下的一样。
但在 Linux 图形用户界面上,你会看到一种在其他操作系统上很少见或根本不存在的窗口。这些窗口被称为 "xterm",只包含几行文字--这次是白底黑字,不过你也可以选择不同的颜色。每个 xterm 窗口都是一个独立的命令行界面--一个窗口中的 tty。因此,即使你处于完全的图形用户界面模式,你仍然可以通过命令行界面与你的 Linux 机器对话。
有许多优秀的 Unix 软件根本没有图形用户界面。这可能是因为这些软件是在 X Windows 出现之前开发的,也可能是因为编写这些软件的人不想忍受创建图形用户界面的麻烦,还可能是因为这些软件根本不需要图形用户界面。无论如何,只要在 xterm 窗口的命令行中输入这些程序的名称,就能调用它们。前面提到的 whoami 命令就是一个很好的例子。还有一个叫 wc("字数统计")的程序,可以简单地返回文本文件的行数、字数和字符数。
在命令行上运行这些小工具程序的能力是 Unix 的一大优点,也是纯图形用户界面操作系统无法比拟的。例如,wc 命令就是一种很容易用命令行界面编写的程序。它可能只有几行代码,聪明的程序员可能只用一行代码就能写完。编译后只占用几个字节的磁盘空间。但是,如果要为同一个程序提供图形用户界面,所需的代码可能会多达数百行甚至数千行,这取决于程序员想把它写得多么花哨。编译成可运行的软件后,图形用户界面代码的开销会很大。启动速度会很慢,而且会占用大量内存。这样做根本不值得,所以 "wc "根本不会被写成一个独立的程序。相反,用户只能等待商业软件包中出现字数统计功能。
图形用户界面往往会给每一个软件(即使是最小的软件)带来巨大的开销,而这种开销会彻底改变编程环境。小型实用程序不再值得编写。相反,它们的功能往往会被总括软件包吞没。随着图形用户界面变得越来越复杂,开销也越来越大,这种趋势变得越来越普遍,软件包也变得越来越庞大;到了一定程度后,它们就开始相互合并,就像微软 Word、Excel 和 PowerPoint 合并成微软 Office 一样:一个庞大的软件沃尔玛坐落在一个小城镇的边缘,镇上到处都是小店,而且都被封了起来。
这是一个不公平的比喻,因为当一家小店被封时,就意味着某个小店主失去了生意。当然,当 "wc "被归入 Microsoft Word 的无数菜单项之一时,就不会发生类似的事情了。唯一真正的缺点是用户失去了灵活性,但大多数顾客显然不会注意或在意这种损失。沃尔玛方式最严重的缺点是,大多数用户只想要或需要这些巨型软件包中的一小部分内容。其余的都是杂乱无章的累赘。然而,隔壁隔间的用户对哪些有用哪些没用却有完全不同的看法。
在这里,还有一件重要的事情值得一提,那就是微软公司在 Office 软件包中加入了一个非常酷的功能:Basic 编程软件包。Basic 是我学习的第一门计算机语言,那时我还在使用纸带和电传打字机。通过使用 Office 附带的 Basic 版本,你可以编写自己的小实用程序,这些程序知道如何与 Office 中的所有小工具、小玩意儿、铃铛和口哨进行交互。Basic 比 Unix 命令行编程中通常使用的语言更容易使用,而 Office 也比 GNU 工具拥有更多的用户。因此,Office 的这一功能最终很可能会比 GNU 引发更多的黑客攻击。
但现在我说的是应用软件,而不是操作系统。正如我所说的,微软的应用软件往往是非常好的东西。我用得不多,因为我根本不是他们的目标市场。如果微软有一天能生产出我使用和喜欢的软件包,那就真的是时候抛售他们的股票了,因为我是他们的一个细分市场。
宅男的烦恼
在我使用 Linux 的这些年里,我已经写满了三个半笔记本,记录我的经验。我只有在做一些复杂的事情时才开始记笔记,比如设置 X Windows 或玩弄我的互联网连接,因此这些笔记本只记录了我的挣扎和挫折。当事情进展顺利的时候,我就会高兴地工作好几个月,而不记下任何一笔笔记。因此,这些笔记本读起来很凄凉。在 Linux 下修改任何东西都需要打开各种 ASCII 文本文件,然后在这里修改一个单词,在那里修改一个字符,而这些修改对系统的运行方式有着极其重要的影响。
许多控制 Linux 运行方式的文件只不过是命令行,它们变得如此冗长和复杂,以至于连 Linux 黑客都无法正确输入。在使用像 Linux 这样功能强大的系统时,你可以轻松地花上整整半个小时来设计一条命令行。例如,"find "命令可以在文件系统中搜索符合特定条件的文件,它的功能非常强大,也非常通用。它的 "手册 "长达 11 页,而且都是精辟的论述;你可以轻松地将它们扩展成一整本书。如果这本身还不够复杂,你还可以用管道将一条 Unix 命令的输出连接到另一条同样复杂的命令的输入。用于启动互联网 PPP 连接的 "pon "命令需要大量详细信息,因此基本上不可能完全从命令行启动它。相反,你需要将大段的输入信息抽象到三、四个不同的文件中。你需要一个拨号脚本,这实际上是一个小程序,告诉它如何拨号并对各种事件作出反应;一个选项文件,其中列出了多达约 60 种不同的选项,说明如何设置 PPP 连接;以及一个秘密文件,提供有关密码的信息。
据说世界上有一些神一样的 Unix 黑客,他们不需要把这些小脚本和选项文件当作拐杖来使用,他们可以简单地敲出非常复杂的命令行,既不会出现排印错误,也不用花几个小时翻阅文档。但我不是这样的人。和几乎所有的 Linux 用户一样,我依赖于将所有这些细节都隐藏在成千上万个 ASCII 文本文件中,而这些文件又被楔入 Unix 文件系统的凹槽中。当我想改变系统的运行方式时,我就会编辑这些文件。我知道,如果我不记录我所做的每一个小改动,在我把系统弄得一团糟之后,我就无法让你的系统恢复正常工作。手写记录很乏味,更不用说还有点不合时宜。但这是必要的。
我本来可以通过与一家名为 "天鹅座支持"(Cygnus Support)的公司合作,省去很多麻烦。但我没有这么做,因为我想看看自己是否能做到。答案是肯定的,但也只能勉强做到。我可以对我的系统进行许多调整和优化,但我一直没有去尝试,部分原因是我有时厌倦了做一个莫洛克人,部分原因是我害怕弄坏一个总体上运行良好的系统。
虽然 Linux 对我和许多其他用户来说都很好用,但它的强大功能和通用性却是它的致命弱点。如果你知道自己在做什么,你可以从任何一家电脑商店买到一台廉价电脑,扔掉附带的 Windows 光盘,把它变成一个复杂度和功能都令人咋舌的 Linux 系统。你可以将它与其他十二个 Linux 系统连接起来,使它成为并行计算机的一部分。你可以对它进行配置,让一百个不同的人同时通过调制解调器线路、以太网卡、TCP/IP 插座和分组无线链路登录到它。你可以在它上面挂上半打不同的监视器,和澳大利亚的人一起玩 DOOM,同时跟踪轨道上的通信卫星,控制家里的电灯和恒温器,通过网络摄像头传输实时视频,在其他屏幕上上网和设计电路板。但是,该系统的强大功能和复杂性--使其在技术上远远优于其他操作系统的特质--有时使其在日常使用中显得过于强大。
换句话说,有时我只想去迪斯尼乐园。
对我来说,理想的操作系统应该是有一个设计精良的图形用户界面,易于设置和使用,但也包括终端窗口,在那里我可以恢复到命令行界面,并在必要时运行 GNU 软件。几年前,Be 公司发明了这种操作系统。它被称为 BeOS。
ETRE
许多计算机行业的人都很难理解 Be 公司,原因很简单,它的一切似乎都没有任何意义。该公司成立于 1990 年末,与 Linux 差不多同时代。从一开始,它就致力于创造一种新的操作系统,这种操作系统在设计上与所有其他操作系统都不兼容(不过,正如我们将要看到的,它在一些非常重要的方面与 Unix 兼容)。如果 "名人 "的定义是因出名而出名的人,那么 Be 就是一个反名人。它因不出名而出名,因注定要失败而出名。但它已经注定要失败很久了。
对黑客来说,Be 的使命可能比对其他人更有意义。为了解释原因,我需要解释一下 "冗余"(cruft)的概念。对于写代码的人来说,"冗余 "和不必要的重复一样令人深恶痛绝。
如果你去过旧金山,你可能会看到一些经过 "抗震升级 "的老建筑,这往往意味着在古典风格的建筑周围竖起了怪异的现代钢结构上层建筑。当新的威胁来临时--比如说,如果我们遭遇了冰河时期--在这些建筑周围可能会依次建造更多层次的高科技建筑,直到原来的建筑就像大教堂里的圣物--一块发黄的骨头碎片被半吨重的花哨的保护性垃圾包裹着。
可以采取类似的措施,让老旧的操作系统继续运行。这种情况经常发生。抛弃破旧的旧操作系统应该是一件很简单的事,因为操作系统与旧建筑不同,它们没有美学或文化价值,因此本质上值得保存。但实际情况并非如此。如果你使用电脑工作,你可能已经定制了你的 "桌面",也就是你每天坐下来工作的环境,并花了很多钱购买在该环境中运行的软件,还花了很多时间来熟悉这一切是如何工作的。这需要大量的时间,而时间就是金钱。如前所述,人们希望通过界面简化与复杂技术的交互,希望在自己周围摆满虚拟的小玩意儿和草坪装饰品,这种愿望是自然而普遍的--可能是对计算机世界的复杂性和强大的抽象性的一种反应。计算机给我们提供的选择比我们真正想要的还要多。我们更愿意只做一次选择,或者接受软件公司交给我们的默认设置,让狗睡觉。但是,当操作系统被更改时,所有的狗都会跳起来开始狂吠。
一般的电脑用户都是技术老古董,不太喜欢改变。他(她)就像一个刚买了一套迷人的装修房的城市专业人士,现在正在把家具和小玩意儿搬来搬去,重新整理厨房橱柜,以便一切都恰到好处。如果需要一群工程师在地下室四处奔波,加固地基,以便支撑起新的铸铁爪式浴缸,并在墙壁上铺设新的电线和管道,以供应现代电器,那也没问题--工程师很便宜,至少在数百万操作系统用户分担他们的服务费用时是这样。
同样,电脑用户也希望自己的电脑拥有最新的奔腾处理器,能够在网上冲浪,而不会弄乱那些让他们觉得自己知道到底发生了什么的东西。有时,这其实是可能的。为系统增加内存就是一个很好的例子,这样的升级不会搞砸任何事情。
唉,很少有升级能如此简洁明了。劳伦斯-莱西格(Lawrence Lessig)是美国司法部起诉微软反垄断诉讼案的特别主审法官,他抱怨说,他在自己的电脑上安装了 Internet Explorer 浏览器,结果丢失了所有书签--他用来在互联网迷宫中导航的个人路标列表。这就好像他给自己的汽车买了一套新轮胎,然后在驶离车库时发现,由于某种不可捉摸的副作用,世界上所有的路标和路线图都被毁了。如果他和我们大多数人一样,为了编制那份书签清单,他可是下了不少功夫。这只是升级可能带来的麻烦的一小部分。蹩脚的旧版操作系统的价值基本上是负面的,换成新的操作系统会让我们希望自己从未出生过。
为了让我们享受到新技术带来的好处,工程师们必须做大量的修补工作,但又不能强迫我们去思考新技术,也不能强迫我们改变自己的方式,这样就会产生大量的代码,随着时间的推移,这些代码就会变成一个巨大的由泡泡糖、胶水、捆扎线和胶带组成的团块,包围着每一个操作系统。用黑客的行话来说,这就是 "垃圾"。一个有很多很多层的操作系统被描述为 "crufty"。黑客们不喜欢重复劳动,但当他们看到一些残缺不全的东西时,他们的第一反应就是把它撕掉、扔掉,然后重新开始。
如果今天把马克-吐温带回旧金山,把他扔进这些经过抗震升级的老建筑中的一栋,他一定会觉得这栋建筑看起来一模一样,所有的门窗都在同样的位置--但如果他走到外面,他就认不出这栋建筑了。而且--如果他被完好无损地救了回来--他可能会质疑是否值得费这么大的劲来拯救这座建筑。在某些时候,人们必须提出这样的问题:这真的值得吗?还是我们应该把它拆掉,再建一座好的?我们是应该让另一波结构工程师来稳定比萨斜塔,还是应该让这该死的东西倒塌,然后再建一座不那么糟糕的塔?
就像旧楼的升级改造一样,当第一层的结构坍塌时,似乎总是一个好主意--只是例行维护,是合理审慎的管理。如果你从不查看地窖或干墙后面的情况,那就更是如此了。但如果你是一个黑客,整天都从这个角度看问题,那么这些垃圾从根本上就令人作呕,你难免会想用撬棍去砸它。或者,更好的办法是,干脆离开这座建筑--让比萨斜塔倒塌--去做一座不倾斜的新塔。
长期以来,苹果公司、微软公司及其客户都清楚地认识到,第一代图形用户界面操作系统注定要失败,它们最终将被抛弃,取而代之的是全新的操作系统。在上世纪八十年代末和九十年代初,苹果公司推出了几款全新的后 Mac 操作系统,如 Pink 和 Taligent,但都以失败告终。这些努力失败后,他们又启动了一个名为 Copland 的新项目,但也以失败告终。1997 年,他们曾有过收购 Be 的想法,但最终却收购了 Next 公司,后者有一个名为 NextStep 的操作系统,实际上是 Unix 的变种。随着这些努力的不断深入,不断失败,不断失败,苹果公司的工程师们--他们是这个行业中最优秀的人--不断地增加新的内容。他们竭力想把这台小烤面包机变成一台能处理多项任务、精通互联网的机器,而且在一段时间内做得非常出色--就像电影中的英雄在丛林河流中跃过鳄鱼背一样。但在现实世界中,鳄鱼终究会用完,或者踩到真正聪明的鳄鱼。
说到这里,微软公司以一种更为有序的方式解决了同样的问题,它创建了一个名为 Windows NT 的新操作系统,其目的很明确,就是要成为 Unix 的直接竞争对手。NT 是 "New Technology "的缩写,可以理解为明确拒绝垃圾。事实上,NT 被认为比 MacOS 最终变成的系统要简洁得多;在 Mac 上编写代码所需的文档一度装满了大约 24 个活页夹。Windows 95 和 Windows 98 之所以笨重,是因为它们必须向后兼容微软的旧版操作系统。Linux 以爱斯基摩人处理老年人问题的方式来解决这个问题:如果你坚持使用旧版本的 Linux 软件,你迟早会发现自己在白令海峡上漂流时,浮冰越来越少。他们之所以能逍遥法外,是因为大多数软件都是免费的,因此下载最新版本无需任何费用,而且大多数 Linux 用户都是莫勒克人。
BeOS 背后的伟大构想是从一张白纸开始,以正确的方式设计操作系统。他们正是这样做的。从美学的角度来看,这显然是一个好主意,但却不是一个合理的商业计划。我认识的一些 GNU/Linux 界人士对 Be 的这一冒险行为感到恼火,因为他们本可以利用自己的高超技能帮助推广 Linux。
事实上,如果你不记得公司创始人让-路易-加西(Jean-Louis Gassee)来自法国--一个多年来一直在圣日耳曼的宫廷里维持着自己独立的英国君主制的国家,那么这一切都毫无意义。现在,正是这种令人讨厌却又令人钦佩的僵硬给我们带来了 Jacobites、force de frappe、Airbus 和魁北克的 ARRET 标志,也给我们带来了一个非常酷的操作系统。盎格鲁撒克逊猪狗们,我朝你们的大方向放个屁!
就因为现有的操作系统没有一个是完全正确的,就从头开始创建一个全新的操作系统,这让我觉得这是一种巨大的勇气,让我不得不支持它。我一有时间就买了一个 BeBox。BeBox 是一种双处理器机器,由摩托罗拉芯片驱动,专门用于运行 BeOS;它不能运行任何其他操作系统。这就是我买它的原因。我觉得这是我烧钱的一种方式。它最与众不同的地方是前面板上的两列 LED 灯,它们像转速表一样上下拉动,以显示每个处理器的工作强度。我觉得它看起来很酷,此外,我估计再过几个月公司倒闭时,我的 BeBox 将成为一件很有价值的收藏品。
现在,大约两年过去了,我正在我的 BeBox 上敲打这篇文章。当我敲击键盘时,我右手肘旁的 LED 灯(Be 社区称之为 "闪烁灯")欢快地闪烁着。Be公司仍在经营,不过在我买下BeBox之后,他们几乎立刻就停止了生产。他们做出了一个可悲但可能相当明智的决定,即硬件是傻瓜的游戏,并将 BeOS 移植到 Macintoshes 和 Mac 克隆机上。由于这些产品使用的是与 BeBox 相同的摩托罗拉芯片,这并不难。
不久之后,苹果公司扼杀了 Mac 克隆机制造商,恢复了硬件垄断。因此,有一段时间,只有苹果公司生产的新机器才能运行 BeOS。
此时的小贝,就像蜘蛛侠的蜘蛛感应一样,已经敏锐地察觉到他们何时会像虫子一样被碾碎。即使没有被压垮,但依靠苹果公司--如此脆弱却又如此恶毒--来维持生存的想法也会让任何人感到害怕。现在,他们开始了自己的 "鳄鱼跳跃 "冒险,将 BeOS 移植到英特尔芯片上--与 Windows 机器使用的芯片相同。当苹果公司推出基于摩托罗拉 G3 芯片的新款顶级硬件时,他们扣留了 Be 的工程师在这些机器上运行 BeOS 所需的技术数据。如果不是跳槽到英特尔,Be 公司就会像中了枪弹一样丧命。在圣日耳曼的宫廷里,君主制、朝臣、加冕仪式、国教和外交政策一应俱全。现在,正是这种令人讨厌却又令人钦佩的僵硬给我们带来了 Jacobites、force de frappe、Airbus 和魁北克的 ARRET 标志,也给我们带来了一个非常酷的操作系统。盎格鲁撒克逊猪狗们,我朝你们的大方向放个屁!
就因为现有的操作系统没有一个是完全正确的,就从头开始创建一个全新的操作系统,这让我觉得这是一种巨大的勇气,以至于我不得不支持它。我一有时间就买了一个 BeBox。BeBox 是一种双处理器机器,由摩托罗拉芯片驱动,专门用于运行 BeOS;它不能运行任何其他操作系统。这就是我买它的原因。我觉得这是我烧钱的一种方式。它最与众不同的地方是前面板上的两列 LED 灯,它们像转速表一样上下拉动,以显示每个处理器的工作强度。我觉得它看起来很酷,此外,我估计再过几个月公司倒闭时,我的 BeBox 将成为一件很有价值的收藏品。
现在,大约两年过去了,我正在我的 BeBox 上敲打这篇文章。当我敲击键盘时,我右手肘旁的 LED 灯(Be 社区称之为 "闪烁灯")欢快地闪烁着。Be公司仍在经营,不过在我买下BeBox之后,他们几乎立刻就停止了生产。他们做出了一个可悲但可能相当明智的决定,即硬件是傻瓜的游戏,并将 BeOS 移植到 Macintoshes 和 Mac 克隆机上。由于这些产品使用的是与 BeBox 相同的摩托罗拉芯片,这并不难。
不久之后,苹果公司扼杀了 Mac 克隆机制造商,恢复了硬件垄断。因此,有一段时间,只有苹果公司生产的新机器才能运行 BeOS。
此时的小贝,就像蜘蛛侠的蜘蛛感应一样,已经敏锐地察觉到他们何时会像虫子一样被碾碎。即使没有被压垮,但依靠苹果公司--如此脆弱却又如此恶毒--来维持生存的想法也会让任何人感到害怕。现在,他们开始了自己的 "鳄鱼跳跃 "冒险,将 BeOS 移植到英特尔芯片上--与 Windows 机器使用的芯片相同。当苹果公司推出基于摩托罗拉 G3 芯片的新款顶级硬件时,他们扣留了 Be 的工程师在这些机器上运行 BeOS 所需的技术数据。如果 Be 没有跳槽到英特尔公司,他们就会像中了枪弹一样丧命。
因此,现在 BeOS 可以在各种各样的硬件上运行,几乎是难以置信的杂乱无章:它们是 BeBoxes、老化的 Mac 和 Mac 孤儿克隆机,以及打算用于 Windows 的英特尔机器。当然,后者如今无处不在,而且便宜得令人震惊,因此 Be 的硬件问题似乎终于解决了。一些德国黑客甚至发明了 Das Blinkenlights 的替代品:这是一种电路板套件,可以插入运行 BeOS 的 PC 兼容机中。它能让你看到变焦 LED 转速表,而这正是 BeBox 最受欢迎的功能。
我的 BeBox 已经显出老态,就像所有电脑在使用几年后都会老化一样,我迟早可能要把它换成英特尔机器。但即便如此,我仍然可以使用它。因为不可避免的是,现在已经有人将 Linux 移植到了 BeBox 上。
无论如何,BeOS 的图形用户界面建立在坚实的技术框架之上,是经过深思熟虑的。它从一开始就基于面向对象的现代软件原则。BeOS 软件由称为对象的准独立软件实体组成,这些实体通过相互发送信息进行通信。操作系统本身就是由这些对象组成的,它就像一个邮局或互联网,在对象与对象之间传递信息。操作系统是多线程的,这意味着它和所有其他现代操作系统一样,可以同时行走和咀嚼口香糖;但它赋予程序员很大的权力来生成和终止线程或独立的子进程。它还是一个多进程操作系统,这意味着它天生就擅长在拥有多个 CPU 的计算机上运行(Linux 和 Windows NT 也能熟练地做到这一点)。
对于这类用户来说,BeOS 的一大卖点是内置的终端应用程序,它能让你打开相当于 Linux xterm 窗口的窗口。换句话说,只要你需要,就可以使用命令行界面。由于 BeOS 遵循某种名为 POSIX 的标准,它能够运行大多数 GNU 软件。也就是说,GNU 开发的大量命令行软件都能在 BeOS 终端窗口中正常运行。这包括 GNU 开发工具--编译器和链接器。还包括所有方便的小实用程序。我在写这篇文章时使用的是一种名为 Pe 的现代用户友好型文本编辑器,它是由一位名叫 Maarten Hekkelman 的荷兰人编写的,但当我想知道它有多长时,我会跳转到终端窗口并运行 "wc"。
正如我前面引用的错误报告示例所表明的那样,为 Be 工作的人和为 BeOS 编写代码的开发人员似乎比其他操作系统的同行更乐在其中。总的来说,他们似乎也是一个更加多样化的群体。几年前,我去当地一所大学的礼堂观看 Be 的一些代表表演的 "马戏团"。我去的原因是,我以为那里会空荡荡的,会有回声,我觉得他们至少应该有一个观众。事实上,我最终站在了过道上,因为数百名学生挤满了整个会场。简直就像一场摇滚音乐会。台上的两位 Be 工程师中,有一位是黑人,不幸的是,这在高科技领域是一件非常奇怪的事情。另一位则大声疾呼 "垃圾",赞美 BeOS 的 "无垃圾 "特性,并坦率地说,十年或十五年后,当 BeOS 变得像 MacOS 和 Windows 95 一样垃圾时,就应该把它扔掉,从头开始创建一个新的操作系统。我怀疑这是否是 Be 公司的官方政策,但它确实给在场的每个人留下了深刻印象!在八十年代末,MacOS 曾一度成为酷人--艺术家和有创造力的黑客--的操作系统,而现在,BeOS 似乎也有可能吸引同样的人群。Be邮件列表上挤满了名字叫弗拉基米尔、奥拉夫和皮埃尔的黑客,他们用支离破碎的技术英语互相传递着火焰。
关于 BeOS,唯一真正的问题是它是否注定要失败。
最近,Be 对 "他们注定要失败 "这一令人厌倦的指责做出了回应,声称 BeOS 是为媒体内容创建者打造的 "媒体操作系统",因此与 Windows 根本不是真正的竞争关系。这种说法有点虚伪。回到汽车经销商的比喻,这就好比蝙蝠车经销商声称自己的车速度是别人的三倍,而且还能飞,因此与别人没有真正的竞争关系。
Be 在巴黎设有办事处,如前所述,Be 邮件列表上的对话带有浓厚的欧洲色彩。与此同时,他们也在努力寻找日本市场,日立公司最近开始在其个人电脑中捆绑 BeOS。因此,如果让我大胆猜测,我会说他们在下围棋,而微软在下象棋。微软在北美占据了压倒性的优势地位,而日立暂时还没有意识到这一点。他们正试图在欧洲和日本的棋盘边缘站稳脚跟,因为那里的人们可能比美国人更乐于接受其他操作系统,或者至少更敌视微软。
在这个国家,Be 的发展受到了阻碍,因为聪明人害怕自己看起来像个傻瓜。如果你说:"我试用了 BeOS,我是这样认为的",你就有可能显得很幼稚。如果说 "Be 在竞争激烈的操作系统市场中开辟新天地的可能性几乎为零",就显得高明多了。
用技术术语来说,这是一个心智份额的问题。而在操作系统领域,心智占有率不仅仅是一个公关问题,它还直接影响到技术本身。所有可以挂在个人电脑上的外围设备--打印机、扫描仪、PalmPilot 界面和乐高头脑风暴--都需要名为驱动程序的软件。同样,显卡和显示器也需要驱动程序。甚至市场上不同类型的主板也以不同的方式与操作系统相关联,每种主板都需要单独的代码。所有这些硬件专用代码不仅需要编写,还需要测试、调试、升级、维护和支持。由于硬件市场已经变得如此庞大和复杂,真正决定操作系统命运的不是操作系统的技术有多好,也不是它的成本有多高,而是硬件专用代码的可用性。Linux 黑客必须自己编写这些代码,而他们在跟上速度方面做得非常出色。Be公司必须编写自己的所有驱动程序,不过随着BeOS的发展,第三方开发者也开始提供驱动程序,这些驱动程序可以在Be公司的网站上找到。
但微软目前占据了制高点,因为它不必编写自己的驱动程序。如今,任何将新显卡或外围设备推向市场的硬件制造商都知道,除非附带能使其在 Windows 下运行的硬件专用代码,否则就无法销售,因此每个硬件制造商都承担了创建和维护自己的驱动程序库的重任。
心灵关怀
美国政府声称微软垄断了操作系统市场,这可能是有史以来法律界提出的最明显荒谬的主张。Linux,一个技术上更胜一筹的操作系统,正在被免费赠送,而 BeOS 则以象征性的价格出售。无论你是否喜欢微软,都必须接受这一事实。
微软公司确实又大又有钱,如果政府的一些证人可信的话,他们也不是什么好人。但是,对垄断的指控根本说不通。
实际情况是,微软暂时抢占了某种制高点:他们在争夺心智份额的竞争中占据了主导地位,因此任何想被重视的硬件或软件制造商都不得不生产与他们的操作系统兼容的产品。由于与 Windows 兼容的驱动程序是由硬件制造商编写的,因此微软无需编写这些驱动程序;实际上,硬件制造商为 Windows 添加了新的组件,使其成为功能更强的操作系统,而无需向微软收取服务费。这是一个非常有利的位置。要与这样的对手抗衡,唯一的办法就是拥有一支高素质的编码员大军,免费编写等效的驱动程序,而 Linux 正是这样做的。
但占据这种心理制高点不同于一般意义上的垄断,因为这里的优势与技术性能或价格无关。以前的强盗式垄断之所以是垄断,是因为他们实际控制了生产和/或销售手段。但在软件行业,生产手段是黑客输入代码,销售手段是互联网,没有人声称微软控制了这些。
而在这里,主导地位是在购买软件的人的头脑中。微软之所以有力量,是因为人们相信它有力量。这种力量非常真实。它赚了很多钱。从最近华盛顿两地的法律诉讼来看,这种权力和金钱似乎激发了一些非常奇特的高管出来为微软工作,比尔-盖茨应该先对其中一些人进行唾液测试,然后再发给他们微软的身份证。
但是,这种权力并不符合 "垄断 "一词的任何正常定义,也无法通过法律手段加以解决。法院可能会命令微软以不同的方式行事。他们甚至可以拆分公司。但是,如果不把发达国家的所有男人、女人和孩子都抓起来,对他们进行漫长的洗脑程序,他们就真的无法对心智分享垄断采取任何措施。
换句话说,"心智分享 "的支配地位是一种非常奇怪的野兽,是反托拉斯法的制定者们无法想象的。它看起来就像现代古怪的混沌理论现象之一,一种复杂性的东西,在这种现象中,一大堆独立但相互联系的实体(全世界的计算机用户),根据一些简单的经验法则自行决策,产生了一种无法用任何理性分析来解释的巨大现象(一家公司完全统治市场)。这种现象充满了隐蔽的临界点,与奇异的反馈回路纠缠在一起,无法理解;尝试的人最终会(a)发疯,(b)放弃,(c)形成疯狂的理论,或者(d)成为高薪的混沌理论顾问。
现在,微软公司可能有一两个人足够聪明,他们相信思想份额的主导地位是某种稳定而持久的地位。或许这也是他们在纯粹的商业运作中雇佣了一些怪人的原因,这些狂热分子不断被愤怒的法官拖上法庭。但是,他们中的大多数人一定都很聪明,知道像这样的现象是令人抓狂的不稳定因素,不知道什么奇怪的、看似无关紧要的事件会导致系统转变为截然不同的配置。
换一种说法,微软公司可以确信,托马斯-彭菲尔德-杰克逊(Thomas Penfield Jackson)不会下令对发达国家所有人的大脑进行即刻重新编程。但我们无法预测人们何时会集体决定对自己的大脑重新编程。这或许可以解释微软的某些行为,比如他们一直保持着巨额现金储备的政策,以及每当Java这样的东西出现时他们所表现出的极度焦虑。
我从未见过微软公司高层管理人员出没的大楼内部,但我幻想在走廊里,每隔一段距离,墙上就会栓上一个红色的大警报箱。每个盒子里都有一个红色的大按钮,用窗玻璃保护着。旁边的链条上挂着一把金属锤。上面有一个大牌子,上面写着:"一旦市场崩溃,请立即报警:如果市场份额崩溃,请打碎玻璃。
我不知道当有人打碎玻璃并按下按钮时会发生什么,但找出答案肯定会很有趣。我们可以想象,当微软提取现金储备时,全世界的银行都会倒闭,从天而降的是一托盘一托盘的百元大钞。毫无疑问,微软是有计划的。但我真正想知道的是,如果编写 "万物通用接口 "的重担突然从他们的肩上卸下,他们的程序员是否会在某种程度上松一口气。
上帝的右手小指
李-斯莫林(Lee Smolin)在他的《宇宙的生命》(每个人都应该读一读这本书)一书中,对我们的宇宙是如何从不同的基本常数之间不可思议的精确平衡中产生的,给出了我读过的最好的描述。质子的质量、万有引力的强度、弱核力的范围以及其他几十个基本常数完全决定了宇宙大爆炸会产生什么样的宇宙。如果这些数值稍有不同,宇宙就会变成一望无际的不温不火的气体海洋,或者是炽热的等离子体结,或者是其他基本上无趣的东西--换句话说,就是一个哑弹。要想得到一个不是哑弹的宇宙--它有恒星、重元素、行星和生命--唯一的办法就是把基本数字弄得恰到好处。如果在某个地方有一台机器,可以随机选择基本常数的值,那么每一个像我们这样的宇宙都会产生10^229个哑弹。
虽然我还没有坐下来计算过这个数字,但在我看来,这就相当于在你忘记了所有小选项和关键字的情况下,通过登录 tty 键入命令行,让 Unix 电脑做一些有用的事情的概率。每当你的右手小指按下 ENTER 键时,你都在进行另一次尝试。在某些情况下,操作系统什么也不做。在其他情况下,它会清除你的所有文件。大多数情况下,它只会给你一条错误信息。换句话说,你会得到很多哑弹。但有时,如果你把一切都安排得恰到好处,电脑就会 "磨 "上一阵子,然后产生出像 emacs 这样的东西。它实际上产生了复杂性,而这正是斯莫林的有趣性标准。
不仅如此,现在看来,一旦低于一定的规模--远远低于夸克的水平,进入弦理论的领域--牛顿时代以来的物理学就不能很好地描述宇宙了。如果你观察的尺度足够小,你就会看到那些看起来几乎是计算性质的过程。
我认为这里传达的信息非常清楚:在我们宇宙之外的某个地方有一个操作系统,它是由某种黑客--半黑客在不可估量的时间跨度内编译出来的。宇宙操作系统使用命令行界面。它在类似电传打字机的设备上运行,噪音很大,热量很高;打出来的字节像漂流的星星一样飘落到它的料斗里。半神坐在他的电传打字机前,敲出一行又一行命令,指定物理基本常数的值:
universe -G 6.672e-11 -e 1.602e-19 -h 6.626e-34 -protonmass 1.673e-27....
当他输入完命令行后,他的右手小指在 ENTER 键上方迟疑了一两秒,不知道会发生什么;然后他按下了 ENTER 键--你听到的 "砰 "的一声是又一次大爆炸。
这才是一个酷毙了的操作系统,如果真的能在互联网上提供这样一个系统(当然是免费的),世界上所有的黑客都会立即下载,然后彻夜不眠地捣鼓它,左右开弓地创造出各种宇宙。其中大部分都会是非常无聊的宇宙,但也有一些宇宙会让人叹为观止。因为这些黑客的目标远比一个只有几颗恒星和几个星系的宇宙要宏伟得多。任何普通黑客都能做到这一点。不,要想在互联网上获得极高的声誉,就必须善于调整自己的命令行,让自己的宇宙自发地产生生命。一旦这样做的方法成为常识,那些黑客们就会继续努力,试图让他们的宇宙发展出正确的生命,试图找到某个物理常数小数点后第N位的变化,从而给我们带来一个地球,在这个地球上,比如说,希特勒终究还是被艺术学校录取了,最后成为了一个有着暴躁政治观点的街头艺术家。
不过,即使这种幻想成真,大多数用户(包括我自己,在某些时候)也不愿意费心去学习使用所有这些神秘的命令,也不愿意在所有的失败中挣扎;几个失败的宇宙真的会把你的地下室弄得一团糟。在我们花了一段时间敲打命令行、按 ENTER 键、生成枯燥、失败的宇宙之后,我们开始渴望有一个操作系统能走到相反的极端:一个有能力做任何事的操作系统--为我们的生活而生。在这个操作系统中,聪明的程序员会预料到我们可能做出的所有决定,并将其浓缩在一系列对话框中。通过点击单选按钮,我们可以在相互排斥的选项中做出选择(两性/同性)。通过一列列复选框,我们可以选择生活中想要的东西(结婚/写伟大的美国小说),对于更复杂的选项,我们可以在小文本框中填写(女儿数量:儿子数量:)。
即使是这样的用户界面,使用一段时间后也会变得非常复杂,因为有如此多的选择,以及选择之间如此多的隐藏互动。它会变得几乎无法管理--闪烁的十二宫问题再次出现。给我们带来这个操作系统的人必须提供模板和向导,给我们一些默认的生活,我们可以把它们作为设计自己生活的起点。可能大多数人都会觉得这些默认的生命周期看起来非常不错,无论如何,已经足够好了,以至于他们不愿意把它们拆开来乱搞,生怕把它们弄得更糟。因此,在发布了几个版本之后,软件开始变得更加简单:启动软件后,你会看到一个对话框,中间有一个大按钮,上面标着LIVE(实时)。点击按钮后,你的生活就开始了。如果出现什么问题,或者没有达到你的预期,你可以向微软的客户支持部门投诉。如果你接到的是一个电话,他或她会告诉你,你的生活其实很好,没有任何问题,而且在下一次升级推出后,情况会好很多。但如果你坚持不懈,并表明自己是高级用户,就有可能接通真正的工程师。
在你解释了你的问题并列举了你生活中所有的不满之后,工程师会怎么说呢?他可能会告诉你,生活是一件非常艰难和复杂的事情;没有任何界面可以改变这一点;任何不这么认为的人都是傻瓜;如果你不喜欢别人为你做选择,你就应该开始自己做选择。
Beta Was this translation helpful? Give feedback.
All reactions