Ken Thompson 如何在三周内造出 Unix

Learning about "The Unix Time-Sharing System"

Unix 并非一蹴而就的奇迹,而是 Ken Thompson 在 AT&T 退出 Multics 项目后的个人探索。当原本用于 Multics 的 GE-645 机器无法使用,他转而在闲置的 PDP-7 上继续研究磁盘调度算法,意外发现这已接近一个完整的操作系统。利用妻子度假的三周时间,他独自用汇编语言写出了编译器、编辑器、汇编器和加载器。文章深入探讨了 Unix 革命性的文件打开机制,即区分数据与程序,以及 comfile(即 shell 脚本)的起源。这六年间的坚持与纪律,不仅塑造了现代计算的基础,也向我们展示了如何从历史中汲取智慧,解决当下的技术难题。

Ken Thompson 偶然发现了一个至今仍让我们深受启发的原则:你应该区别对待不同的事物。
  1. gwynforthewyn

    我是这篇文章的作者。

    我的主题涉及贝尔实验室发布的关于 Unix 的第一份白皮书《The Unix Time-Sharing System》中的一些细节。我写了 Ken Thompson 在 Multics 项目结束到他找到那台“很少使用的 PDP-7”并在此编写 Unix 之间在做什么,Multics 和 Unix 在打开文件方面的区别,以及文中提到的“comfile”究竟是什么。

    这篇文章是我在没有 AI 参与的情况下撰写的;我关注 Unix 的历史,因为我热爱了解历史及其带给我的启示,也热爱向他人展示这些有趣的细节。

    非常期待听到你们的任何反馈 :)

  2. bch

    > 那么 comfile 是什么?显然它是一个 shell 脚本,对吧?那为什么叫 comfiles 呢?这是“command files”(命令文件)的缩写。

    我在我的(BSD)系统上感到有趣的残留是 <foo>.S 文件。这里的“S”代表“Source”(源)。在那个“源代码”意味着“汇编代码”的时代……Python、zig、C++、C 等语言是后来才诞生的……

同日更多故事

2026-08-22