Ken Thompson回忆Unix的“野路子”起源:吵闹、撬锁、天马行空

Ken Thompson 的口述历史回顾了 Unix 操作系统的诞生,揭示了它并非源于宏大规划,而是在贝尔实验室一个充满好奇心和协作精神的极客社区中“意外”诞生的。这个故事的核心是,一个开放、自由甚至有些无序的环境,如何催生了计算机历史上最重要的创新之一。这种独特的“兄弟会”文化不仅成就了 Unix 和 C 语言,其影响力也延续到了后来的 Go 语言开发中。

Unix的“意外”诞生

Unix 的起源可以追溯到 1966 年一个失败的项目——Multics。Thompson 形容这个项目“庞大、缓慢、丑陋且极其昂贵”。当贝尔实验室决定放弃 Multics 后,那台专门为其打造的“独一无二的怪兽计算机”就闲置了下来,这为 Thompson 提供了绝佳的机会。

他最初只是想为一个数据存储设备编写测试程序,以提高内存读取效率。然而,这个小项目不断扩展,需要文本编辑器、编译器、汇编器和用户切换层。

突然之间,我自己都还没意识到……它就成了一个操作系统!

有趣的是,贝尔实验室的管理层曾明确警告他不准再碰操作系统,因为 Multics 的失败让公司损失惨重。Thompson 甚至因此受到过训斥,被告知“贝尔实验室不做操作系统了!”

第一个Unix社区

尽管有禁令,Unix 还是吸引了第一批用户,这些人后来都成为了计算机领域的传奇人物:

    • Dennis Ritchie
    • Doug McIlroy
    • Robert Morris
    • Brian Kernighan

当时的用户 ID 都是一位数,这足以说明社区规模之小。为了获得一台关键的 PDP-11 计算机,团队成员 Joe Ossanna 巧妙地利用了公司的官僚程序。他向专利部门提议,用 Unix 开发一个内部的文书处理系统,以替代他们正在评估的第三方方案。最终,他们以“为专利部门做文字处理”为名,成功申请到了第一台 PDP-11。就这样,专利部门的秘书们也成了 Unix 最早的一批新用户。

“Unix小屋”的兄弟情谊

这台 PDP-11 被安置在六楼一个由储藏室改造的房间里,后来这里被称为“Unix小屋”。这个小屋很快成了创意的温床,大家在这里讨论网络、排版系统,充满了活力和 camaraderie(同志情谊)。

这个团队的文化非常自由,甚至有些叛逆。Thompson 回忆道:“在Unix小屋,我们经常撬锁和偷东西。”他讲了一个故事:

    • 一名秘书的车因为违规停车被保安锁上了“车轮锁”。
    • 团队成员下楼,撬开了锁,并偷走了那个车轮锁
    • 他们陆续偷走了全部四个车轮锁,并藏在 Unix 小屋的地板下面。

最后,保安负责人亲自来求情:“只要你们把锁还给我们,我们保证不再为难你们的秘书。”

Dennis Ritchie 曾说,他们当时的目标是建立一个“可以形成兄弟情谊的系统”。但 Thompson 认为,这更像是对结果的描述,而非最初的设计目标。无论如何,这种紧密的社区关系,包括定期的“Unix午餐”,极大地促进了思想的交流与融合。

开放先于开源

Thompson 认为,C 语言和 Unix 的成功很大程度上归功于贝尔实验室独特的环境——一个没有KPI压力、没有用户需求限制的自由氛围。

这种文化的核心是一种极致的开放精神,甚至早于“开源”概念的正式形成。

我们有文件保护功能……但从来没有人给任何东西设置权限。所有的源代码,任何⼈都可以修改!

当时流传着一个口头禅:“你碰了它,你就得对它负责(You touch it, you own it)。” 这种文化鼓励任何人随时改进他人的代码。Thompson 举例说,同事们会直接进入科幻作家 P. J. Plauger 的目录,在他写作的同时阅读并提出修改建议,而 Plauger 对此毫不在意。这种如同在公共黑板上写作的开放性,极大地增强了团队的凝聚力。

贝尔实验室之后

2000年,由于贝尔系统的拆分和文化变迁,Thompson 离开了工作三十多年的地方。他后来加入了谷歌,部分原因是他与谷歌CEO Eric Schmidt 是旧识。在谷歌,他与来自贝尔实验室的老战友 Rob Pike 等人一起,共同创造了 Go 语言。这再次证明,贝尔实验室那种自由协作的文化基因,对他们后来的职业生涯产生了深远的影响。