周一。暑假尾巴收完,园区满血复活,走廊里的脚步声重新有了层次。PDP-7 那间机房今天来了个生人,进门第一句出乎所有人意料:
“这台机器,能排版吗?”
他叫 Joe Ossanna。介绍的人补了一句:他是搞文本处理的,那摊活儿一直在别的机器上跑,排队排得人发疯。Multics 没了之后,他也在找地方落脚。
Ken 的回答一个字:”能。”
其实不能。系统连像样的字符处理都没有。但 Ossanna 是对的,而且他不知道自己有多对——这台机器往后几年的第一批正经用户,就是被文字处理拽进来的。文档会替这套系统做它自己做不到的事:证明自己有用。这话现在说出来像歪理,几年后是常识。
我当然没说。本月第九句。
下午干正事。Ken 开始拿 B 重写旧的汇编小工具,给语言练手。然后撞上了这台机器最硬的一堵墙:
字符串。
PDP-7 按字编址,一个字十八位。装一个字符占一个字,剩下的位全空着,内存利用率三成都不到。Ken 在纸上算了笔账,把字符串函数改成按字打包——五位塞一个字符——代码立刻丑了一倍,还得防着打包解包的边界。
我在旁边看,心里那个答案比哪次都烫:按字节编址。 一字节一字符,字符串就是字节流,文本就是数据,数据就是文件。
但这答案我连组织措辞的资格都没有。它根本不是个想法,它是个硬件——这台机器的编址方式长在电路上,说”按字节编址”等于让 Ken 去跟 DEC 的图纸讲道理。这答案得等一台按字节编址的新机器出生才成立。
答案原来分两种:一种说不得,怕掐断枝干;一种说不成,世界还没准备好让它为真。前一种我练了一个月,后一种今天头一回撞上。说实话,后一种反而好受——不是我不说,是说了也没用。憋屈这东西,有个明确的物理原因,就轻了一半。