计算机历史上最自信(最“傲慢”)的文档
在 Unix V3(1973 年 2 月)的 init(VII) 手册页的结尾处,出现了堪称计算机历史上最自信(最“傲慢”)的一段文档说明:

在整个 Unix 历史版本仓库中,这恐怕是唯一一个敢公开声称“BUGS none possible——绝不可能有 bug”的手册页。在计算机文档史上留下了最自信——或者说最“傲慢”的两行文字。
该手册页没有署名,但 init 的作者很可能是 Ken Thompson。整个 Unix 的进程启动机制——从系统引导,到为每个终端 fork 出 getty 进程——几乎都是他一人完成的。
在 PDP-11 上,init 的全部逻辑不过几百行汇编代码。Ken 大概是觉得:这么短的程序,还能出什么 bug?

不过,到了 Unix V4,这种“自信”突然消失了。init 手册页的结尾变成了:

DIAGNOSTICS 和 BUGS 两个段落被完全删除了。
(我好像突然发现了个 bug。Unix V4 init 手册页的日期不对,怎么和 V3 的一样。甚至 V3 的日期也不对,72 年 6 月应该是 UNIX V2 的发布时间)
要敢声称 “BUGS: none possible”,需要几个特殊的前提:
-
• 代码量极小:整个程序可以装进一个人的脑子里 -
• 硬件环境固定:就那几台 PDP-11,就那几种终端 -
• 用户极少:就贝尔实验室里那一小撮研究员 -
• 作者即维护者:写代码的人就是唯一修 bug 的人
在这样的环境里,说“绝不会有 bug”,或许真的不是夸张,不是傲慢。
但这些条件在 Unix V4 之后逐渐消失。Unix 的用户越来越多,硬件平台开始分化,init 逐渐依赖外部脚本,系统复杂度也不再能被一个人完全掌控。
从 Unix V3 “绝不会有 bug”的 init,到今天的 systemd(上百万行代码、配套完整的 bug 追踪系统),init 的演化轨迹,反映了软件工程从手工作坊走向工业化的缩影。
🔚
夜雨聆风