周一。今天这台机器第一次被人说”变笨了”。
上午第四台终端接上——不是新买的,是从楼下杂物间拖出来的旧货,键盘上 Q 和 A 得按得比别处重。接上不到一个钟头,专利部门那个打字员敲完一行,抬头等回显,等了三秒多。她又敲了一遍。还是慢。她把椅子往后一推,说了句:
“它今天是不是病了?”
没病。是人多了。
这台机器总共八千个字,一个十八位,折成好懂的单位不到十八 K 字节。排版程序一进去就吃掉五千——它得把整份文档摊在内存里才重排得动。剩下的三千要装系统自己、装四个人的编辑缓冲、装 B 编译器的临时表。谁多敲两行,就把别人挤出去一截。
这事以前也发生过,只是没人当真。三个人同时用时偶尔也卡,大家当它是”这机器就这样”。四台一上,卡顿变成了常客,常客变成了用户嘴里的”病”。
中午 Ken 干了件不像他的事:他开始量。
没秒表,他让我们三个轮流敲同一行,自己盯着墙上挂钟的秒针,把数字写在纸上。四组数:一个人单独用,回显不到一秒;四个人同时,最慢的那位等四秒半;有人在跑排版,最慢六秒。写完他把纸压在机台上,看了很久。
下午他改调度。改法只有一条:不是谁先来谁先跑完,是每人分一小段时间,用完排到队尾去等下一轮。
写出来很短,短到像随手补的。但这一笔把”先后”换成了”轮换”,一台机器从”先到先得”变成”人人有份”。
用户的感觉很实在。打字员说:”它没变快,但它不偏心了。”
我从旁边听着,觉得这话比任何性能数字都好。人对系统的第一个真实感受从来不是快慢,是公不公平。
McIlroy 傍晚过来,听了这句,把烟点了:
“快是给一个人的,公平是给一屋子人的。你们今天做的不是提速,是分家产。分家产这事,一旦开了头,就没有回头路。”
我嘴里那句咽了。第三十五句。
这句跟前面那些不一样,它属于”说不成”的那一类——跟九月一号那堵字节编址的墙同宗。内容很简单:这机器到顶了。 再往下,所有的调度花样都只是把排队从这儿挪到那儿,一张椅子四个人轮着坐,椅子还是一张。真要再喂饱一个人,得让闲着的东西挪到盘上去,等用到了再搬回来。
可这台机器没有能把地址折过去的硬件,也没有那么大的盘。它连”把一段内存看成不存在”这种事都做不到。我说出来不是掐断枝干,是递给人家一张这个世纪兑现不了的支票。
认命认得比前几次轻松。可心里另一样东西压着:到顶的那一天,是这套系统自己的第一天,不是它的最后一天。
快下班时 Morris 下来,站在门口数了数终端,问:
“还能再加几台?”
“两台。”Ken 说。
“加满以后呢?”
Ken 没答。
Morris 也没追,换了个更冷的问法:“明年这套东西要是交给部门管,谁接?”
屋里安静了几秒。Ken 手没停,电传打字机照响。
Morris 走之前留了一句给我听的:”机器可以过户,人过不了户。”
我在门口站着,忽然明白名字那件事已经换了赛道——八月是账目要它(预算表上得有个位置),上礼拜是外人要它(别人的文件里得填个名),今天是过户要它:一样东西想从”某个人的私活”变成”一个部门的资产”,头一件事是填单子,单子上第一栏就是名字。
Kernighan 那本手册十一页,抬头方框里的问号还描得淡淡的。今天它不再是个问号了,它是个空格——等着一笔过户。
回宿舍路上买报纸。世界大赛打了两场,一胜一负,今天两队坐火车换城市。体育版不算比分,算投手能歇几天——谁第几场先发、歇足几天再上,排得像一张表。
我看了一会儿,笑了。今天机房里也在学”轮着上”,只不过那边轮的是投手,这边轮的是四个人和一台八千字的机器。
头版另一个角上是阿波罗 12 号,一个月后。还是月亮。
本子今天两条:
第四十五条:让每个人都能轮到,比让某一个人更快,更像一个系统。
第四十六条:一台机器到顶的信号,不是它坏了,是它的每一次”变快”都要从别人身上抢。
(今日咽话一句,累计第三十五句。)