落地的方式很糙,像被人从通风管里倒出来。
睁开眼站在一条不认识的走廊里,头顶是老式荧光灯,嗡鸣的频率比现在低一档。脚底下是打了蜡的油地毡。左手边一块软木板上钉着通知,纸边卷了——我没细看,先把自己这身过了一遍筛子:白衬衫、深色西裤、手里一个牛皮纸本子。这套行头在 1969 年的贝尔实验室里,等于隐身衣。
走廊里飘着两样味道:咖啡,和一种更老的东西——裁纸机切过的穿孔纸带,那股微酸的、像旧报纸混着机油的味道。我大概会天天闻到它。
这里刚死了一个项目。
四个月前,也就是今年四月,贝尔实验室退出了 Multics。这事走廊里没人正经提,但你从每个人的走路速度上能看出来:一群人刚把三年时间倒进一个”做得出来但不划算”的东西里,现在正在重新找活儿干。
我跟着人流拐进一间机房。门没锁——那年代的门基本都不锁。
然后我看见了他。
一台 PDP-7,一个人。
机器不算大,比一台双开门冰箱高不了多少。十八位字长,八千个字的内存。换算成你们熟悉的单位,勉强够装下现在一张微信表情包的十分之一。DEC 造了大约一百台这种机器,到 1969 年它已经是过气货了。
坐它前面那个人,瘦,头发有点乱,衬衫下摆没塞进去,手里在改汇编。他不抬头,不说话,也不管我是谁。
他就是 Ken Thompson。
我没敢打扰。站在旁边看了大概二十分钟——二十分钟里他只说了两句话,一句是”把那卷带子递给我”,一句是”不”。
他在写一个操作系统。
不是今天意义上的操作系统。没有内核态用户态、没有虚拟内存、没有驱动模型。就是:一个文件系统,一个进程调度,一个能让两个人在同一台机器上同时敲键盘的壳。所有东西加起来,他现在写了大概几千行。
墙上贴着一张手画的目录结构草图,铅笔的。我看了一眼就愣住了——
那是一套树形文件系统,统一命名空间,设备和文件用同一套接口读。
我心里那根弦”啪”地响了一下。这东西后来统治了世界五十年,而此刻它在一张铅笔草图上,作者本人大概还没意识到手里握着什么。
我做了个决定,一个我觉得会跟我一路的决定:我什么都不说。
我知道这套设计的每一条岔路在哪,跳过哪一步能省三年。但我也知道,正是那些看起来绕远的岔路——权限位、管道、文本流——最后长出了整片森林。我现在往里塞一个正确答案,等于剪掉一整根枝干。
知道答案不等于能说答案。 这是我今天学的第一课。
傍晚在茶水间碰上一个高个子,叼着烟,正在抱怨分时系统太贵。”我们不需要一个能同时伺候一百个人的系统,”他说,”我们需要一个便宜到每个人都能分到一台的。”
这人叫 Doug McIlroy。后来他发明了管道。
我问他,这机器上这套系统叫什么名字。
他想了两秒,说:”还没名字。“
好。那我就陪它一起等名字。