Unix 的流行病学(Philip E. Agre 于 1994)
根据《Unix 痛恨者手册》(由加州圣马特奥的 IDG Books 出版,Simson Garfinkel、Daniel Weise 和 Steven Strassman 编辑,这是一部既有趣又严肃的新书):
Unix 是一款带有用户界面的计算机病毒。
也许你得是个计算机专业人士才能体会这话的幽默感,但我个人觉得这太好笑了。《UNIX 痛恨者》是个邮件列表,由 MIT 媒体实验室的一位研究生 Mike Travers 于 1987 年发起,目的是让全世界那些花太多时间与 Unix 操作系统搏斗的人能够相互交流笔记,并进行粗鲁而愤怒的吐槽。随着时间推移,这个邮件列表积累了数量惊人的尖刻且内容极其专业的邮件,如今有三位列表成员将其中部分内容整理成书。虽然他们被标为编辑,其实他们也写了大量补充文字,邮件内容主要作为插图来使用(他们甚至还收录了我写的一小段关于某个版本 Unix 的 rm
命令的内容)。
Unix 当然不是字面意义上的计算机病毒,但这个比喻却令人印象深刻。Unix 是由几个人为了完成别的事情而写的一款简易操作系统。从那之后它迅速增长并传播,累积了令人眼花缭乱的各种补丁和变体,并成功地抵抗了无数次试图对其加以规范和标准化的努力。为什么?一个原因是任何人几乎都能免费获得它,包括其源代码。但更根本的原因是,Unix 填补了一处空白——在缺乏标准“工作站”操作系统的年代,每个人都发现改造 Unix 来满足自身需求要比购买其它系统或从头写一个来得容易得多。因此,Unix 的历史不是有意识的设计和计划,而是不停的变异和繁殖。从这个意义上说,Unix 就像病毒。
我完全被这本《Unix 痛恨者手册》吸引住了。当其中一位编辑 Simson Garfinkel 把草稿寄给我时,我马上坐下来一口气几乎读完了,并且边读边标注错别字,还写了一大堆批注。说实话,我当时其实还有更重要的事情要做,但那一连串不间断的轰炸:一页接一页关于 Unix 功能的荒唐故事,以及几十个设计糟糕到让我多年受害的实例——实在是太有吸引力了。全书以一种夸张而刻薄的风格写成,奇怪的是它竟然奏效了,也许是因为那个“活死人”般的 Unix 不是某个具体反派的产物。
这本书的范围几乎完全是技术性的。这些作者都是计算机人,他们对设计有着明确的审美标准,而这些标准被 Unix 所冒犯。他们正在为那些被病毒般传播的标准所淘汰的、更优秀的操作系统复仇。诚然,要谈“无害的道德愤怒”,这本书几乎无人能敌。
但我对 Unix 的质疑更多是制度层面的。如果 Unix 是一种病毒,那我们肯定需要一套流行病学。就像人类病毒的传播受到空气管道、卫生工程、性文化、制药经济学等诸多因素的影响,技术标准的传播同样受到技术在更大世界中位置的多种非技术因素的影响。那么 Unix 是怎么传播开的?一个重要原因,至少在早期,是许多程序员做出的一系列独立选择,他们只是想尽快让自己的系统跑起来 —— 如果你知道一切怎么运作,Unix 的确快捷、方便。
但从长期来看,一个更关键的因素是诸如 Sun Microsystems 这样的公司决定积极推动 Unix 成为标准。当新的市场空缺出现,比如 Sun 曾长期主导的工作站市场,质量远没有“速度”重要 —— 关键是你能多快将产品推向市场。Sun 能直接拿 Unix 来用,把它宣传成标准,大肆压价,并承诺之后会修复问题。从经济角度看,这完全是理性的决策。不过造成这种情况的部分原因是,很多买 Sun 机器的人并不了解 Unix 系统维护的高昂成本,这些成本往往吞噬了硬件上的节省。这些隐藏成本包括无数因糟糕设计而沮丧不已的系统用户和程序员,或者更准确地说,是因“缺乏设计”而受害的人。许多成本之所以隐藏,是因为受害者根本不知道世界原本可以是另一种样子。
当然,Unix 只是技术标准中类似现象的一个极端例子。比如众所周知的人体工学性能很差的 QWERTY 键盘,它之所以顽强存在,仅仅是因为要让数百万人协调一致进行迁移几乎不可能。既然世界上充满了 QWERTY 键盘,一个要学打字的人显然最明智的做法就是学 QWERTY。一旦他们学会了 QWERTY,就很难再有人愿意为了优化而去学 Dvorak 或其他输入法。制造键盘的厂商也面临着现实 —— 大多数打字员只会用 QWERTY,不会其他的。于是,QWERTY 标准就这样被固化了,只因为它先确立了地位,然后不断自我复制。而在 Unix 的案例中,情况更糟,因为它不断变异。但原理是相似的。
那么,我们该逮捕谁来对 Unix 疫情负责?Sun 或其它类似公司的高管?他们是否有其他更合理的选择?可能并没有。我认为,这个教训是 —— 必须对新标准的崛起高度警觉。如果我们想把事情做好,就得在早期阶段发出噪音,在某个随机产物被固定下来之前。否则后果可能很严重。Unix 的问题“仅仅”是成本和麻烦。但其他系统的问题可能会影响公民自由。想想那些以社会安全号码等个人标识符为索引、收集个人信息的庞大系统。它们真的非得这么设计吗?它们能否用密码学手段来防止信息滥用,并赋予个体更多对自己数据使用方式的控制权?答案很可能是可以的。那么为什么没这样做?一种解释是“盈利”,因为个人信息的二次使用往往利润可观。
但另一个解释是,这些系统就是这样被“默认”设计出来的 —— 因为这是程序员在学校里被教导的那种朴素、显式的建模方式。我们可能永远需要立法来防止信息被滥用。但或许更好、更长远的解决之道是:从计算机科学的入门课程开始,就把诸如密码学之类的隐私保护手段纳入课程体系,并将其融入系统分析的设计方法中,而不是事后以非标准的方式“补丁式”添加进去。
最后更新于