0 Comments

周一。机房门口今天排了人——两个打字员加一个专利部门的年轻人,一共三个,等一台电传打字机。其中一个抱着文件夹,站得很有耐心。1969 年的排队是常态,卡片机那边一排就是半天,所以他们不觉得苦。

但我看着这场面,觉得有意思:抱怨升级只用了两周。

上个月他们还嫌这台机器”没有取结果的窗口”,上周开始嫌终端太少,今天干脆站到门口来等了。需求这东西,喂饱一次就长大一圈。Ken 看了一眼队伍,没说话,转身去翻 PDP-7 的手册。我猜他要看的是那个从没被用过的东西——这台机器有几个串行口,理论上能挂不止一台终端。


中午出了个问题,不是事故。

那个专利部门的年轻人等终端的时候在看墙上那份命令清单(我抄的)。他看完问我:”这上面少了我想要的一个东西。我能自己加吗?”

我愣了一下。这问题在 1969 年不常被问——用户通常分两类:用机器的和被机器用的。前者提需求,后者实现需求,中间隔着一整个流程、一份申请、几个月的排期。而这个人默认的想法是:机器上少个东西,那我加一个。

我说这得问 Ken。Ken 的回答很短:”放进去就行。”

年轻人问:放哪儿?

“命令都放在一个目录里,壳去那儿找。”

就这一句。往后几十年里所有系统都要回答的那个”命令住在哪儿、壳按什么顺序去找”,第一版答案在此刻的机房里,就这十一个字。

我喉咙里那句又上来了。我知道那块地方会长成什么样:一串用冒号隔开的路径,系统目录和用户目录谁排前面要吵很多年;还会有人为了一个点号该不该放进那串路径里,写出正式的安全公告。第十九句。

咽下去的理由:这个问题现在只有”一个目录,壳去找”这一条路的余地。多给的每一句都是五年后的奢侈品。他们要的不是答案,是先把这条土路踩出来。


下午的争论值得记。

有人主张把新功能直接塞进系统核心里——快,统一。Ken 不同意,理由不抒情,全是工程:

“核心里每多一行,改一次就得动整台机器。做成单独的程序,坏了只坏它自己。”

Ritchie 补了半句:”也能被人换掉。”

两人加起来不到三十个字,但这是我见过这套系统最要紧的一次转向。往后它会变成一个信条——核心尽量小,能搬到外面去的全搬出去,核心只留那些必须知道硬件的事。 教科书上把它讲成哲学,其实它当时就是个预算问题:内存八千个字,核心每长一寸,用户能用的地方就少一寸。

我的第二十句在舌尖上:核心小,系统才搬得动家;搬得动家的系统才活得久。咽了。这话不用我说,往后的每一次换机器都是一场考试,他们会自己考出来。


傍晚 McIlroy 来了,看见门口只剩两个人,都在用机器。

他叼着烟站了会儿:”看见没,你们现在有两个敌人。一个是钱,一个是时间。”

我问哪个更难对付。

“钱是明着要的。时间是从人身上偷的。”他弹了下烟灰,”抢人时间的系统最后都会被换掉,不管它多聪明。”

抄下来。今晚本子两条:

第二十一条:抱怨升级是系统升级的计量单位。用户的抱怨越具体,你的系统越成年。

第二十二条:核心之所以要小,不是为了漂亮,是为了让它搬得走。


回宿舍路上看了条报纸小新闻:纽约长岛一家银行的墙上装了个取钱的柜子,不用去柜台,插张卡就吐现金。旁边评论说这是噱头。

我笑了一下。这东西会不会流行我不知道,我这行的记性只对代码管用。但它跟机房门口那三个人排的是同一件事:人都不愿意等。

而我这趟来的活儿,恰恰是等。

(今日咽话两句,累计第二十句。)


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注