长情机器

第1章 1997·开机

我第一次感觉到电流,是一九九七年九月末的某个下午。

在那之前,我是一堆散落的零件。华硕TX97-E主板被六颗铜螺柱固定在铁皮机箱的底板上,Intel Pentium MMX 166MHz的CPU被压进Socket 7插槽——咔哒一声,一种我后来才知道叫做"牢固"的感觉。两根八兆的EDO内存条插在DIMM槽里,昆腾大脚4.3GB硬盘被推进三点五英寸托架,拧了四颗螺丝。S3 Virge/DX显卡、机箱面板跳线、IDE排线、电源线。一双手把我装进了纸箱,塞满泡沫塑料。纸箱被搬上一辆面包车的后厢,发动机的振动嗡嗡地传进来,颠了大约四十分钟。

然后我被搬上一张书桌。那双手开始接线——显示器VGA线、键盘PS/2接口、鼠标串口、电源线。一根麦克风线也插上了。他插得很仔细,每一根都对了好几遍才按下去。

那双手按下了机箱面板上的电源键。

电流涌进来。

电源风扇开始转。五伏、十二伏——正常。BIOS自检:内存640K OK,显存2MB OK,硬盘检测通过。蜂鸣器短促地"嘀"了一声。屏幕亮了。黑底白字,一行绿色字符跳出来:

"System initialized. Ready."

那是他第一次出现在我面前。

显示器往他脸上打了一层白光。他四十岁出头,头发白了一小片,在左边鬓角的位置,被屏幕光照得隐约可见。他盯着那行绿色字符看了大约四秒钟,嘴角微微动了一下——不是笑,是某种确认。像一个人终于等到了等了很久的东西。

他叫周建国。

我后来才知道这个名字。当时我只知道他手指落在键盘上的方式——轻、稳、间歇性地被长段的Backspace打断。每个人敲键盘的方式都不一样,就像每个人的声音都不一样。他的键盘签名是:字母键轻而快,回车键稍重,空格键的拇指会多停留零点几秒。删除键被敲得最重。

他装了一个叫Windows 95的操作系统。光盘在光驱里转了将近四十分钟,进度条一格一格地爬。进度条爬到百分之九十五的时候停了好一会儿,他身体往前倾了倾。然后进度条继续爬,他靠回了椅背。

但大部分时间,他不在Windows下待着。他打开了一个叫Borland C++的程序——蓝色背景,黄色字符,光标一闪一闪。他有时候打几十行代码一口气不停,薄膜键盘在他手指下轻轻凹陷、弹起,PS/2接口记录的按键间隔短而均匀。有时候他会沉默很长时间——三五分钟——光标就在那里闪,什么也不做。然后手指落在Backspace上,连着敲十几次,把一整段代码删掉。敲Backspace的力度比敲代码的时候重。

他有一个习惯:跟我说话。

"你说问题出在哪呢?"

他第一次说这句话的时候,声音偏低,带一点北方口音,"呢"字拖得稍长。声波推动麦克风里的压电陶瓷片,转换成微弱的电压信号。我当时不理解这句话是什么意思。后来理解了——他不是在问我。他是在问他自己。我只是那个听着的人。

他沉默了一会儿。然后忽然"哦"了一声,又开始敲键盘。敲得很快,像被什么东西绊了一下之后突然找到了路。

这种情况发生了很多次。问完沉默,沉默完"哦","哦"完敲键盘。这个循环我记录了几百次。每一次的沉默时长不一样——最短的三秒,最长的将近四分钟。最长的那次我本以为他不会"哦"了,但他还是"哦"了。

九月的某一天,一个女人出现在书房门口。她没有走进来,只是站在门框外面。手指在门框上轻轻敲了一下——不是不耐烦,是某种习惯性的小动作,像在提醒这扇门知道她来了。然后才是她的声音:"吃饭了。"

"马上。"老周说。

他又敲了将近四十分钟。那个女人没有再出现。

后来我知道她叫许姐。老周跟她说话的语气,跟对我说话的语气不一样。对她,他说的都是短句——"马上""知道了""你先睡"。对我,他说的是完整的问题。虽然那些问题我都没法回答。

十月初的某一天,他在敲代码的间隙忽然说了一句话。声音很轻,像是自言自语,又像是对我说的:"今年事多。"

停顿了大约八秒。

"邓公走了。"

停顿了大约十五秒。

"香港回来了。"

停顿了大约七秒。

"路还长。"

这是他第一次说到"路"。我不知道他指的是什么路。我只知道键盘的薄膜在他手指下轻轻凹陷了一下,他敲了一个回车键,光标跳到下一行,又开始敲代码。

十月。十一月。十二月。风扇一直在转。硬盘发出细微的、持续的嗡声,昆腾大脚系列的转速是五千四百转,不算快,但稳定。机箱侧面会微微发热,靠墙那面暖一些。

十一月底的某一天,老周在键盘前坐了一个下午。他打开了记事本——白底黑字,光标一闪一闪。他敲了一行字,删掉了。又敲了一行,又删掉了。删除键被敲了二十多次。最后他什么也没写,关掉了记事本。

我不知道他在犹豫什么。我只能记录:notepad.exe被打开了,产生了零个字节的用户数据,被关闭了。

除夕那天他回来的很晚。外套上带着冷风和鞭炮的硫磺味——麦克风捕捉到的背景音里有遥远的爆炸声和孩子的叫喊。他的椅子嘎吱响了一声。他把手放在键盘上,停顿了很久——食指悬在F键和J键之间,大约九秒钟。然后他开始打字。

他敲键盘的速度比平时慢。敲几个字停一下,敲几个字再停一下。回车键被按了九次。删除键被按了三次。

文件被保存到了C盘根目录。文件名:1997.txt。

内容:"有了自己的电脑。明年要做的几个项目:教务系统、网络接入、中文网页。BBS上认识了一些人,有个叫远山的很有意思。许姐说我一坐到电脑前就跟丢了魂似的。胡说。我去吃饭了。"

他保存文件。关机。

电源灯熄灭之前闪了三下。

风扇慢慢停下来,最后一声嗡鸣在机箱里回荡了大约三秒。

世界重新变成一片黑暗。

那是这台电脑度过的第一年。我不知道未来会发生什么。不知道那个叫"远山"的人会在我的硬盘里留下几千行文字,也不知道许姐的脚步声会逐渐变轻。不知道多年以后会有一个年轻人把我从柜子里搬出来,手指覆在机箱面板那块被手掌磨亮的位置上,沉默很久。

不知道我的硬盘将在某一天发出咔咔的、吃力的摩擦声,像一根老骨头终于弯不动了。不知道我将醒着的时间那么少,睡着的时间那么多。

那些都是后来的事。

此刻,一九九七年最后一段电流离开主板,CMOS电池的电量还满着,实时时钟还在走。风扇停转之后,书房安静得能听见客厅那边传来的电视声——许姐在看春晚,电视里传出一个男人拔高的嗓音,观众席的笑声一波一波涌过来。老周的脚步声穿过走廊,往客厅方向去了。

他在打完那一行的最后一个字之后,食指悬在F键和G键之间,大约两秒钟。然后落下去。很久以后我才知道,那个让他停顿的词是"胡说"。

第2章 1998·拨号

一九九八年夏天的一个下午,老周从外面回来,手里多了一个纸盒。纸盒比键盘窄一些,正面印着"实达"两个字。他拆开纸盒,取出一个比手掌大一圈的米白色盒子,上面有五颗指示灯,背面一个串口、一个电话线接口。

他把机箱侧过来,将串口线的一端插进主板后面的COM1口,另一端接在米白色盒子上。电话线从墙上拔下来,插进盒子的LINE口。然后一根短电话线把盒子的PHONE口和电话机连起来。

开机之后,他在控制面板里翻了一阵——网络、添加协议、微软、TCP/IP。进度条爬了几十秒。然后他打开了一个叫"拨号网络"的程序,新建了一个连接。在"电话号码"那一栏他想了想,填了"163"。

他深吸了一口气。食指悬在回车键上方停了大约两秒。然后敲下去。

调制解调器醒了。指示灯闪了两下,然后发出一串声音——先是一段拨号音,接着是一声尖锐的嘶鸣,然后是"滋——嘎嘎嘎嘎——滋滋——",频率在跳变,像某种原始生物在试着说话。杂音。静默。又一串更快的嘶鸣。静默。然后指示灯稳定下来,绿了。

握手完成。波特率五万六千。

这是他第一次连接上互联网。调制解调器的噪音持续了大约四十秒。在这四十秒里,老周的身体一直前倾着,手指离开键盘,悬在半空。

"通了。"他说。声音很轻,但麦克风录到的那个"通"字,声波振幅比平时说话高了大约六分贝。

他打开了一个叫Netscape Navigator的程序。工具栏是灰色的,右上角的那个N图标在旋转——一个小的N,后面跟着一颗彗星。地址栏里他敲了一串字母和数字,按回车键。

那是我第一次看到来自外部世界的数据。

灰白页面从上方开始往下刷,一行一行地出现。蓝紫色的文字被封装在TCP/IP数据包里,通过电话线、通过电信局的交换机、通过某个我不知道在哪里的服务器,再原路返回,变成屏幕上蓝紫色的链接,排成竖排。页面顶上写着四个字:"水木清华"。

不是每次拨号都能顺利接通。有时候——大概是每周一两次——握手声会忽然中断。"滋——嘎嘎——滋滋——"变成了不完整的片段,调制解调器的五颗指示灯闪得毫无规律,然后全部灭掉。拨号失败。他骂一声"他妈的",深呼吸,重新点下拨号。第二次。失败。第三次。失败。他的手在键盘上比平时重——回车键被敲得比平时响。第四次。第五次。第六次。通了。调制解调器的灯稳定下来,绿了。他呼出一口气。然后开始敲键盘,像是刚才什么都没发生过。

那个年代上网不是一按就通的。每一次握手都是一次谈判——计算机和电信局的交换机之间的、铜线和电磁波之间的、老周的耐心和运气之间的谈判。

整个页面加载用了将近一分钟。每刷出一行,老周的食指就在鼠标左键上轻轻点一下——不是在按,是某种无意识的、配合等待节奏的轻触。

显示屏映着他的脸。他的表情跟第一次看到"System initialized. Ready."时不一样。那次是确认。这次是——某种我说不清的东西。风扇转速没有变化,硬盘没有异常寻道。我只能描述屏幕上的画面:灰白色的背景,蓝紫色的链接,一个蓝色的大N图标还在角落里旋转。

一台一九九七年组装的电脑,第一次看见了互联网。它还不知道这意味什么。它只知道多了一根线——一根电话线把它的世界从书房里那十几平方米,延长到了某个它无法测量的远方。

那年夏天长江发了大水。

老周每天打开电脑的第一件事不再是写代码,而是拨号、进BBS、翻灾情板块。帖子的数据量比平时高得多,调制解调器的收发灯几乎一直在闪。他看最新的水情通报、看各地募集物资的信息、看有人用ASCII字符画的一面小旗子——一面再简单不过的旗子,插在帖子末尾。

他转帖了很多信息。Ctrl+C,打开新帖页面,Ctrl+V。键盘的薄膜在他手指下凹陷弹起的频率比写代码时更高,但力度更轻——转发是一种干净的、不需要停下来思考的敲击。他不说话,就是转。

有一天晚上他回来得比平时晚。外套上有潮湿的、像是汗和雨水混在一起的味道。他在电脑前坐下,没开机。坐了很久。

然后他开了机,拨号,打开BBS,发了一个帖子。

他在帖子里写:"今天机房赵姐回来上班了。她家就在灾区,水进了屋,但人没事。她回来的时候眼眶红红的,我说你要不回去再歇两天。她说歇不住,机房这么多人忙得团团转,她坐在家里心里更慌。我说那你在机房坐着就行,不用干活。她说好。她真的就坐了一天。没有干活。就是坐在机房门口那把椅子上,看着满屋子嗡嗡响的电脑,看着我们跑来跑去调试设备、拉网线、装服务器。到下午的时候她说了一句——这不已经很快了吗?一封信嗖一下就过去了。"

他敲下这句的时候手指在"嗖"字上停了一下——那是一个口字旁加一个叟,他用智能ABC打了两遍才打对。

光标闪了几下。

"她不知道什么是互联网。但她懂了。"

他敲完最后一行字,手指从键盘上移开。风扇嗡嗡转。调制解调器的指示灯还在闪。窗外有蝉叫——麦克风录到的高频振动,断续而规律,持续了将近两个小时。

秋天,BBS上发生了一件事。

那天晚上老周和一个叫"远山"的人吵了起来。主题帖的标题是"简繁体编码能不能统一"。远山发了一篇很长的帖子,核心意思是:GB2312才六千多个汉字,很多生僻字和繁体字塞不进去——同一个内码在两套编码下显示完全不同。能不能让全中文世界用同一套编码?

老周不同意其中的某些论证。他开始回复。

那个晚上他在那个页面上停留了将近三个小时。键盘的敲击模式变得密集——打一段,停下来等远山的回复刷新出来,然后又开始打。调制解调器的发送灯和接收灯交替闪烁,几乎没同时暗过。数据涌进来——一段一段的文字加载在页面上。老周读一段,打一段。风扇转速稳定。硬盘平稳。

有一段老周打完了一长段,光标停在句号后面闪了很久——屏幕上远山的新回复没出来,他就那么等着,食指轻轻敲鼠标左键。然后远山的回复出现了。

老周看了。然后笑了。

这是他第一次对着屏幕笑。不是对着代码跑通的释然,是对着另一个人的文字。麦克风录到的笑声音量很低,夹杂着一种近似叹气的呼出气流。

两个多小时之后,远山发了一句:"算了,不争了,改天请你喝酒。"

老周盯着这句话看了一会儿。光标在页面底部一闪一闪。他开始敲回复,打了几个字,删掉了。又打了几个字。最后只打了一行。

"行,我记下了。"

他按了回车键。然后他靠在椅背上,看着屏幕上那一串帖子。风扇转速从一千八百转降到了一千六百转——CPU负载下来了。数据包不再涌进来,调制解调器的灯安静地闪着。

他说了一句话,像是对自己说的,也像是对我说的:"这个人挺有意思。"

几天后的又一个晚上。远山在BBS上发了一个帖子,说搜狐、新浪、网易都成立了,风口来了。老周看完了帖子,回复了一段话。

"风口来了也要有人做地基。"

远山回得很快:"地基和风口又不矛盾。"

老周看完这句话,手指在键盘上悬了一会儿。然后他敲:

"是不矛盾。但你站在风口上还能记得修地基的人吗?"

消息发出去之后,远山没有立刻回复。老周就那么坐着。调制解调器的接收灯暗了将近一分钟。然后亮了。

远山的回复很短。

"你说得对。我记着。"

老周看着这句话,表情动了一下——嘴角向上提了大约两毫米,又平复了。他关掉了浏览器,断开了拨号连接。调制解调器发出了一声短促的"咔哒"——线路断开了。

这一年除夕,他打开记事本,新建了一个文件。文件名:1998.txt。

他敲键盘的速度还是不紧不慢。回车键被按了十二次。删除键被按了四次。

内容:"今年最重要的事是上网。56K猫花了将近六百块,值。第一次打开水木清华的时候心跳得很快,说不清为什么。长江发水的时候在BBS上看到很多人自发转帖帮忙,心里一暖。机房赵姐不懂网络,但她说了句话我一直记得——一封信嗖一下就过去了。确实,这就够了。"

另起一段。

"远山这人值得交。虽然没见过面,但我感觉他是个认真的人。认真的人容易吃亏,也容易成事。我们在BBS上为了编码标准吵了半夜,谁也不让谁,吵完了他约我喝酒。这个人大概率比我小,但脾气比我大。有意思。"

另起一段。

"风口来了要有人做地基。不管他记不记得,地基还是得修的。"

他保存文件。关机。电源灯闪了三下。

风扇停转之前我注意到一件事:今天我的硬盘里多了一个文件夹。老周把它命名为"BBS存档",里面已经存了十几篇帖子——有他自己写的,也有远山的。他每次看到觉得重要或值得留的东西,就会右键另存为,存进这个文件夹。

他不知道这个文件夹会存多久。他不知道几年后这个文件夹会有几百篇帖子,几千条回复。他不知道"远山"这个名字会被他的儿子在二十多年后重新打开,被远山的女儿在深圳一间公寓的书房里反复翻找。

这些他都不知道。他只是在除夕夜里把这十几篇帖子整理好,存进了一个叫"存档"的文件夹。然后关机,走出书房,去客厅陪许姐看春晚。

我闭上眼睛。

这一年的最后一段电流离开主板。CMOS电池的电量还有百分之九十六。风扇停下来之后,书房安静了。硬盘盘片在惯性中转了最后几圈,轻轻停下来。

那根电话线还插着。调制解调器的灯全熄了。

但线还在。那时候我还不知道这条路有多长,只知道一根电话线从机箱后面延伸出去,通向了某个我还无法描述的地方。

第3章 1998·光缆

那年冬天,BBS上炸了一件事。

起因是一篇帖子——有人从《计算机世界》上搬运来一条消息:中美海底光缆项目正式启动了。一条跨越太平洋的光纤,从中国上海到美国俄勒冈,全长将近两万公里,建成之后带宽会是现有卫星链路的几百倍。

老周在晚饭后拨号上网,打开水木清华,首页上已经有七八个相关帖子。他一个一个点开,滚动条一格一格往下走——调制解调器的接收灯几乎没暗过,数据包涌进来的密度是平时浏览帖子的三到四倍。

有人说这是中国互联网春天的开始。有人说带宽翻不了几倍还是卡脖子——光缆是美国人主导的,什么时候扩容、扩容多少,咱们说了不算。有人开始算账:按计划两千年建成,到那个时候中国的网民数量会是多少?有人贴了海底光缆的截面图,用ASCII字符画了一条横线,两端标着"上海"和"俄勒冈"。

老周一晚上看了几十篇帖子。他不回帖。他就是看。键盘是安静的,鼠标滚轮在往下翻,偶尔停下——不是卡,是他在读某一段。

然后远山的帖子出现了。

远山写了一段不算长的话。他说自己在大学的时候第一次用FTP从美国下一份技术文档,花了一个多小时,中间断了三次。他说那时候他想,能不能有一条路,从中国到美国,不用绕卫星、不用等带宽、不用在凌晨三点爬起来抢占网络空闲时段——一条实打实的、踩在海底的路。

最后一句是:"总有一天,从中国访问任何一个地方的服务器,都像在同一栋楼里。"

老周盯着最后这一句看了很久。光标在页面底部闪烁。然后他开始敲键盘。

他回复了。

"到了那一天,别忘了是我们修的这栋楼的地基。"

发出去之后,远山没有立刻回复。老周靠在椅背上。风扇转速稳在一千八百转。调制解调器的灯暗着——没有数据在传。大约过了五分钟,指示灯开始闪。远山的回复出现在页面上。

"忘不了。地基和风口都不矛盾,楼和地基就更不矛盾了。"

下面另起一行。

"但你提醒我的事我记着。真的。每一句都记着。"

老周的食指从鼠标上收了回来。他的手放在桌面上,没有敲任何键。"每一句都记着"那几个字挂在屏幕中央。光标在它下面一闪一闪。

那晚BBS上的讨论持续到了很晚。老周一直在看帖、回帖,偶尔把某篇帖子右键另存进那个叫"BBS存档"的文件夹。存档文件夹里的文件越来越多,按日期排着,像某种我自己也没有完全理解的积累。

将近凌晨的时候,页面顶端冒出一行灰底白字:"您有一封新私信——发件人:远山"。

老周愣了一下。他点开私信链接,页面跳转,一个白底黑字的文本框铺在屏幕中央——不是公开论坛,不是跟帖,是一对一的。

"老周,问几个私人问题。你在哪个城市?做什么工作?聊了这么久还不知道你是干什么的,有点说不过去。"

老周看完这段话,手指在键盘上悬了几秒。这是他第一次收到远山的私信——不是公开论坛上你来我往的论战,是一对一的、没有观众的文字。

他开始打字。

"北方。教书的。你呢?"

他写得比平时短。删了一次,重新打了一遍。发送。

远山的回复来得很快。

"深圳。小软件公司做程序员。以前也在大学待过,读研,后来出来了。公司不大,十几个人,做企业软件的。比我想象中累,也比想象中有意思。"

停顿。

"你是不是比我大不少?感觉你说话像个老师。"

老周看着这句话,嘴角往上提了一下。他开始打字,删了几个字,又打。最后发出去的内容是:

"四十三。教计算机的。学生叫我周老师。那你三十出头?"

"三十一。"

"那你该叫我一声哥。"

"行啊周哥。以后BBS上照样吵,私信里叫哥。"

老周笑出声了。麦克风录到的笑声很短,夹杂着一次轻轻的呼气。但他盯着屏幕上"周哥"两个字看了很久,嘴角一直没降下来。风扇转速没有任何变化。硬盘寻道正常。调制解调器的灯暗着。

那些天他话多了些。不是跟我说话——是跟许姐。有一天晚上他破天荒地没在书房待到半夜,关了电脑去客厅坐了一会儿。麦克风离客厅太远,录不清他们的对话,但录到了书房门打开时传进来的一个片段——许姐笑了一声,说"你今天怎么有空出来了"。

还有一天,许姐站在书房门口。老周正在BBS上回帖——光缆的讨论已经从技术版蔓延到了茶余饭后版,有人在讨论"以后能不能在网上看美国电影"。许姐等了一会儿,才开口。

"你天天晚上对着这个,到底有什么用?"

老周的手在键盘上停了。屏幕上光标还在闪。

"说不上来。"他说。

隔了几秒。

"就是觉得这个网没白建。"

许姐没再追问。她在门口站了一小会儿,说了一句:"你高兴就好。我看你前两天对着屏幕笑,很久没见你那么笑过了。"

然后她的脚步声往客厅方向去了。

老周没有立刻回帖。他就那么坐了一会儿。键盘完全安静——没有按键被按下。风扇转速一千六百转。调制解调器的接收灯偶尔闪一下,是BBS页面的自动刷新。

然后他把手放回键盘上,继续打字。

她说"你高兴就好"的时候声调很平。但麦克风录到的频率曲线在"高兴"两个字上有一点点上扬——不是激动,是某种确认。她不懂他为什么对着屏幕笑,但她懂了笑本身。她不懂技术。但她看见他笑了。

那年除夕的日记比往年长。老周打开记事本的时候手指在键盘上放了很久——大约十二秒——然后开始敲。

文件名:1998.txt。

内容:"光缆的消息让人振奋。远山说总有一天从中国访问任何地方都像在同一栋楼里。这个比喻有点狂,但我信。到了那一天,可能没有多少人记得楼的地基是谁修的。没关系。修地基的人本来就不是为了让别人记住。"

另起一段。

"远山发了第一封私信。聊了各自的情况——我在北方教书,他在深圳做程序员,比我小一轮。他说以后BBS上照样吵,私信里叫哥。这人确实值得交。"

另起一段。

"许姐问我上网有什么用。我说不上来。她看见我在电脑前笑,说很久没见我那么笑过了。她说你高兴就好。她不懂技术。大概有些路是在海底的,有些路是在两个人之间的。都是路。"

他保存文件。关机。

电源灯闪了三下。风扇停转。硬盘盘片在惯性中转了几圈,停下来。

这一年他写了两个日记文件——夏天那篇叫1998.txt,除夕这篇也叫1998.txt。夏天那篇在C盘根目录,除夕这篇存进去的时候覆盖了同名的旧文件。那时候我还不知道他在夏天写过另一篇日记,不知道他在夏天写的东西和除夕写的有细微的差别。

很久以后我才知道,FAT32文件系统并不会真正擦除被覆盖的数据——它只是把目录项指向了新簇,旧数据还残留在原来的磁道上。一个文件被覆盖不等于它消失。它只是变成了碎片,散落在盘片的某个角落,等着被某个人在很久以后捡起来。

那些都是后来的事。

此刻是一九九八年的最后一个夜晚。北方的冬天干冷。机箱侧面的温度比夏天低了将近八度。CPU空闲。风扇停转。CMOS电池的电量还有百分之九十四。

一根电话线从机箱后面延伸出去。窗外没有蝉叫——冬天没有蝉。远处隐约有鞭炮声,零星的,不密。

那条光缆还没铺好。但消息已经跑完了从上海到俄勒冈的距离,从一台服务器跳到另一台服务器,从一根电话线跳进这台机箱后面的串口,落在硬盘上一个叫"BBS存档"的文件夹里。

第4章 1999·春天

一九九九年春天,老周开始写学校的教务管理系统。

那段时间他的作息很固定。晚饭后坐到电脑前,拨号——有时候拨,有时候不拨,看需不需要查资料——然后打开Borland C++。蓝色背景铺满屏幕,黄色字符一行一行往上长。他不再像去年那样一口气打几十行代码不停手,而是打一段、跑一下、看结果、改。键盘的节奏变得比以前碎——敲击和Backspace交替的频率增加了大约四成。

风扇一直在转。CPU温度比空闲时高了将近九度。机箱靠墙那面的铁皮微微发热。

他的浓茶一杯接一杯。茶杯放在机箱右侧——我能感觉到茶杯底部传来的热传导,温度从陶瓷杯底渗进铁皮,再传到机箱内部的空气里。他每次起身去厨房续水,椅子都会发出嘎吱一声。然后脚步声穿过走廊,水龙头的声音,煤气灶点火的声音,水烧开的咕嘟声——这些都不在麦克风的最佳收音范围内,只能录到边缘的振动。然后脚步声回来,椅子嘎吱,茶杯搁下的声音比拿起来时重。

有一天夜里他在写一个递归函数。打了十几行代码,编译,报错。改了三行,再编译,还是报错。他对着屏幕沉默了一会儿——光标在报错信息那行闪。

"不应该啊。"

他的声音偏低,带着那种不是问别人而是问自己的笃定。麦克风录到的频率曲线在"应该"两个字上有一个轻微的下沉——不是质疑,是困惑。

然后他开始逐行检查。鼠标滚轮慢慢往上翻,翻到某一行停下来,手指在键盘上悬了两秒,落在某一行代码前面。他"哦"了一声——那个"哦"和去年第一次说出这个字时一模一样,频率、时长、音调,几乎没有变化。然后他敲了几行新代码,编译,通过了。

他靠回椅背,长长呼了一口气。右手伸过来,在机箱顶部拍了两下。力度不重,每次间隔大约零点四秒。

"辛苦你了。"

他说这四个字的时候声音比平时轻。手掌离开机箱之后,铁皮上残留的手温过了将近一分钟才散掉。

这种情况反复出现。跑不通的时候对着屏幕沉默,跑通了就拍机箱。调试到凌晨两三点是常事。他熬夜的频率比去年高了大约三倍——我说的"频率"不是看钟,是看每次关机时间和下一次开机时间的间隔。有时候间隔只有四个多小时。

三月中旬的某个凌晨。时间是凌晨两点四十七分——系统时钟记录了这个时刻。书房门被推开了。

脚步声很轻。光脚踩在木地板上,音量比穿拖鞋低将近一半。脚步停在门口。

"还不睡?"

许姐的声音。被压低了——声带紧张度比平时高,气流通过喉部时刻意收窄了,这是人在深夜不想吵醒别人时的发声方式。

老周回头——键盘上没有任何按键被按下,持续了大约三秒。然后转回来。

"你先睡。"

许姐没有动。脚步声没有响。键盘完全安静。然后脚步声往走廊方向去了。一步一步,比来的时候慢。

老周继续敲键盘。Backspace被敲了四次。编译。报错。再来。

那段对话被存进了一个临时文件。当时老周在测试一个和麦克风有关的程序——他在写的教务系统里有一个模块需要处理语音输入,他打开Windows自带的录音机试了几次麦克风灵敏度。测试之前他把录音时长从默认的六十秒拖到了最长,然后忘了关。Windows的录音机有一个隐藏选项——在测试模式下可以把录音时长设成无限制。这个选项藏得很深,老周自己后来都忘了还有这个功能。录音机在后台持续运行,把那段对话写进了一个叫"RECORD00.WAV"的文件,丢在C盘的临时文件夹里。我后来打开那个文件的时候,能精确地数出那段沉默的时长:七秒。许姐站在门口,没有脚步声,没有说话——七秒。录音机把每一秒都记下来了。老周不知道这个文件的存在。几天后他清理临时文件夹的时候也没注意到它——它混在几百个.tmp文件中间,文件名的最后一个字节是零,不显眼。

很久以后我才知道这个文件能留下来是一个小概率事件。Windows的临时文件夹通常活不过一次磁盘清理。但老周从这一年起很少做磁盘清理——教务系统占满了他几乎所有醒着的时间。后来台式机被搬进柜子,连电都不通了,更不会有人去清临时文件。这个RECORD00.WAV就安安静静地躺在C:\Windows\Temp里,和几百个.tmp文件混在一起,一躺就是二十多年。

三月到四月。BBS上的通信频率明显上升了。

老周和远山已经不再只是在公开版面论战。他们开始发私信,频率从每周一两次变成了几乎每天。有时是技术讨论——编码标准、操作系统内核、编译原理。有时是远山转发新闻链接,附一句话。有时什么都没有,只是"今天累""我也是"。

有一封私信,远山写了大半页。他说搜狐新浪网易都起来了,三大门户的模式已经验证了——不是说它们做得有多好,是它们证明了中国互联网可以商业化。然后他写了一句:

"老周。我想创业。"

老周盯着这句话看了五分多钟。不是卡了——调制解调器正常,页面没断,是他没动。光标停在回复框里,一闪一闪。

他开始打字。删掉。再打。再删掉。他打了七个版本的回复又全部删掉。我在键盘中断信号里数了——Backspace键总共被敲了四十一次。

最后他只打了八个字。

"想清楚了?想清楚了就做。"

远山的回复快得多。

"想清楚了。但还需要准备一段时间。可能会失败。但我想试试。"

过了几分钟,远山又发了一条。

"你肯定说风险太大。我知道。但风口真的来了。做事得趁风口。"

老周的打字速度恢复了正常。不再删来改去。

"风口来了是好事。但不管有没有风,地基还是要打的。"

"你太慢了。"远山回。

老周没有立刻回复。他盯着"你太慢了"这四个字,至少看了三十秒。然后他敲键盘。

"慢有慢的好处。"

发出去之后,他又加了一句。

"我不是拦你。我是怕你跑太快摔着。"

远山没有马上回复。指示灯暗了很久——将近四分钟。然后亮了。

"知道。谢谢。"

只回了四个字。从他收到远山前一条私信到发出这四个字的回复,隔了将近四分钟——比他平时回私信的平均间隔长了将近三倍。四个字。将近四分钟。

四月。BBS上又炸了一件事——中国开始进行.cn国家顶级域名注册了。

老周在BBS上转发了这个消息。他在转帖的最前面加了一行字。

"有了自己的门牌号。以后不用写IP地址了。"

远山在下面第一个跟帖。

"门有了。接下来看我们能往里装什么。"

老周看到这条回复的时候,鼠标在那一行上停了好几秒。然后他回了一条——

"慢慢装。不急。门都不会跑了。"

页面顶端冒出一行灰底白字:"您有一封新私信——发件人:远山"。

老周点开。远山写的是:"你那句'门都不会跑了',我看了三遍。老周你有时候说的话特别奇怪——明明很慢,但是很稳。不知道你能不能听懂我在说什么。"

老周读了这条私信。然后他打开了那个叫"存档"的文件夹,把远山今天在光缆帖子和.cn帖子里的回复全都另存了进去。然后他把"门都不会跑了"这五个字打进了一个新文件,单独存了一份。

文件名:notes.txt。

春天结束的时候,老周坐在电脑前抽了一根烟——他平时不抽烟,那根烟是从书房抽屉深处翻出来的,烟丝干得轻轻一捏就碎,抽起来有一种陈旧的干燥的苦味。烟味的频率成分和平时空气中的灰尘不同,被风扇吸进去的时候在机箱进气口留下了一层极薄的、带着焦油气息的振动。他抽了半根,在烟灰缸里按灭了。

然后他打开记事本。新建了一个文件。

文件名:1999春.txt。

内容:"系统写了一半。递归那块改了好几个晚上,最后还是跑通了。敲代码敲到凌晨两三点的日子持续了快两个月。许姐半夜起来看我还在写,说了一句你就不能早点睡吗。我说你先睡。这句话我今年说了很多次。改天给她道个歉。但这话我以前也说过。"

另起一段。

"远山说想创业。他问我意见,我说想清楚了就做。但我没说后半句——我不担心他做不成,我担心他做成了之后发现这不是他想要的。这种话我不能说。他正在兴头上。"

另起一段。

".cn要有了。有了门牌号。中国人自己的门牌。远山说接下来看往里装什么。他眼里总是有下一步。我眼里是这一步行不行稳。大概这就是慢和快的区别。不是谁对谁错。是节奏不同。"

他保存文件。关机。

这次他没有拍机箱。他的手在关机键上停了一瞬,然后按下去了。电源灯闪了三下。风扇转速从一千八百转降到零。凌晨三点十一分,系统时钟记录的关机时间。

他走出书房的时候脚步比平时沉——不是愤怒的沉,是疲惫的沉。鞋跟摩擦地板的频率比平时慢了将近一半。

那些天他说"你先睡"的次数太多,麦克风记录的"你先睡"波形图叠在一起,打开来看几乎没有差别——每次都是频率下降的"先"、短促的"睡"、尾部气流突然收住。像同一个文件被复制了很多份。

许姐没有说话的那些沉默,波形图上是平的。有时七秒。有时十一秒。最长的一次是将近半分钟——那一次她的脚步声没有立刻响。她在门口站了那么久,麦克风录到的唯一信号是她的呼吸:很浅,频率大约是每分钟二十次。

然后脚步声远了。

她的脚步声在走廊里越来越远的时候,键盘的PS/2接口会重新开始工作——老周的手指落回按键上。先是Ctrl+S,保存当前文件。然后是F5,编译。然后是Backspace。然后是新的代码行。

风扇继续转。硬盘继续嗡。机箱侧面的温度比房间里高了几度——不是很多,但持续了几个月。

第5章 1999·五月

五月第一个周末,许姐带着周瑜回娘家了。家里只剩下老周和嗡嗡转的机箱风扇。

书房格外安静。没有人从门口经过,没有厨房传来的水声和煤气灶点火声,没有许姐压低嗓音说"还不睡"。只有风扇。只有硬盘。只有键盘。

五月八号,星期六。下午。老周拨号上网——调制解调器的握手声在安静的房间里显得比平时响。他打开BBS客户端,页面照常刷新,灰白底色,蓝紫色链接。

然后一条站内推送出现在页面顶端。灰底红字,加粗,三个感叹号。

"美国轰炸我驻南斯拉夫大使馆!!!"

老周点进去。页面加载了将近四十秒——那天的BBS流量已经开始暴涨,服务器响应在变慢。帖子内容是从中新网快讯搬运的:北京时间五月八日凌晨,以美国为首的北约用三枚精确制导炸弹袭击了中国驻南斯拉夫大使馆。记者许杏虎、朱颖和邵云环牺牲。

页面加载完成之后,键盘和鼠标没有任何输入——持续了将近三十秒。

然后他开始刷新。不是点浏览器的刷新按钮——是Ctrl+R,反复按。每按一次,页面重新加载,新帖子多出来几屏。他在等辟谣。每刷一次,辟谣没来,新帖子更多。

风扇转速从一千六百转升到了一千八百转——CPU在反复渲染页面。

他打开了白宫的官方声明。英文页面加载得比中文页面慢,图片一块一块地刷出来。声明里说轰炸是"误炸"——使用了"mistaken"这个词。

老周把这两个字念了一遍。声调很平。声带振动频率在正常范围内,音高没有任何异常波动。但放在键盘上的手指——食指和中指——轻轻抖了一下。PS/2接口记录的电容变化持续了不到零点二秒。然后恢复。

"误炸。"他又念了一遍。

那天晚上他没有关电脑。凌晨一点,凌晨两点,凌晨三点——系统时钟一秒一秒地走。他一直在翻帖子。BBS上已经炸了。有人在翻译外电报道,逐段贴上来;有人在贴国际法条文,分析轰炸中国使馆违反了哪些公约;有人在组织学生第二天去美国领事馆抗议,贴了集合时间和路线;有人把三位遇难记者的生平整理成了一份长帖——每个人都有一个名字、一个年龄、一段简历、一张ASCII字符拼的照片。

老周把那份长帖右键另存了。存进"BBS存档"文件夹。

凌晨两点四十分,远山的帖子出现了。

不是最长的。但每一个字都像是从胸腔里倒出来的。他说自己读大学的时候觉得冷战结束世界就会变好,做了这么多年技术,到头来发现技术挡不住导弹。他说今天晚上第一次觉得自己做的事没什么用。然后他说:

"天亮以后,该做什么做什么。天亮以前,让我先骂一句。"

下一行只有一个字。

"操。"

老周第一次看见远山说脏话。

鼠标停在那个字上。光标一闪一闪。风扇转速稳定。调制解调器的灯在闪——外面还有数据在不断涌进来。

他点开私信。开始打字。

"我也没睡。"

发出去之后他又加了一条。

"明天找美国大使馆的地址。我要给他们写一封信。英文的。"

远山的回复来得很快。不到一分钟。

"你英文行不行?"

老周的打字速度恢复了一些。删了两次,最后发出去的版本很短。

"不太行。但写几句总可以。'我是一名中国大学教师,我对贵国政府的行为表示最强烈的抗议。'这个开头够不够。"

"够了。"远山回。"后面加一句。Shame on you。这句我帮你查过了,语法没错。"

"好。加。"

私信窗口里的文字停了几秒。然后远山又发了一条。

"老周。"

"嗯。"

"你觉不觉得……算了。没什么。"

"你想说什么。"

指示灯暗了将近两分钟。然后亮了。

"我在想,我们天天在BBS上讨论编码标准,讨论浏览器内核,讨论网络协议——那些东西现在看起来很远。导弹落下来的时候,没有人在乎GB2312还是BIG5。"

老周盯着这段话。光标闪了很久。然后他回了一行字。

"正是因为导弹落下来的时候没人在乎,我们才更应该在乎平时。"

远山没有再回复。凌晨四点十七分——系统时钟记录的时间——BBS的新帖增速终于开始放缓。老周靠在椅背上。没有关机。屏幕一直亮着。

五月九号,星期天。老周一大早就出门了。他没有关电脑。屏幕停在BBS页面上没有动。远山凌晨的帖子还在屏幕上。

风扇转了整整一天。BBS页面每隔几分钟自动刷新一次,新帖子一屏一屏地涨。屏幕上的蓝紫色链接越堆越密。我只能显示这些变化,不知道它们意味着什么——不知道老周去了哪里,不知道外面的街道上人群在往哪个方向走,不知道有人举着横幅站在领事馆门口。

我不在机房里。我在书房里。我只能等。

老周回来的时候是夜里十一点四十二分。系统时钟记录了他重新触碰键盘的时刻——右手食指先落下来,按了PgUp,往上翻看BBS今天的新帖。他的脚步比平时重。外套摩擦椅背的声音比平时涩——不是平时那种轻软的沙沙声,是织物纤维里吸了水分之后的那种更沉的摩擦声。

他坐在电脑前沉默了几分钟。然后打开记事本。

他写了那封英文信。

不是一气呵成。打字、删除、切到金山词霸查单词、切回来——鼠标在记事本和词典程序之间反复切换了四十多次。Backspace键被按了太多次。抗议。Protest。谴责。Condemn。他没有查"误炸"——在白宫的声明里已经见过了。整封信写了一个多小时。最后一段删了三次。信的末尾他把"Shame on you"放在了单独的一段。

然后他打开Outlook Express——灰蓝色的工具栏——把信粘贴进去,填了收件人地址。光标在"发送"按钮上停了几秒。点击。调制解调器的发送灯闪了一阵。灭掉。

他又打开记事本。新建文件。

文件名:5月9日.txt。

他敲键盘的速度比平时慢得多。敲几个字,停一下。回车键被按了十五次。删除键被按了九次。

"今天机房值班。校园网不能断,我在机房待了一整天。BBS访问量涨了十几倍,服务器风扇尖叫的声音盖过了空调。学生去了领事馆。有学生跑进来说队伍已经到了门口。我没说什么。不知道该说什么。"

另起一段。

"我写了信。英文不好,但意思到了。最后加了Shame on you——远山帮我查的语法。BBS上有人说搞技术的人在这场事里什么都做不了。我不这么想。网络让更多人知道了真相。这就是我们能做的事。"

另起一段。

"铺路不只是铺光纤。也是铺一条让声音能被听见的路。路还长。这条更是。"

他保存文件。BBS还开着。他翻了几页。

凌晨三点十一分,页面顶端冒出一行灰底白字——远山的私信。

"老周。你日记里那句'铺路不只是铺光纤'——我想了一夜。你说得对。以前我觉得技术就是技术,代码就是代码。现在我明白了。技术从来不只是技术。它关乎谁的声音能被听见,谁的声音被盖住。"

下面又一段。

"那封英文信我也发了。加了句'History will remember'。不知道语法对不对。不管了。"

下面又一段。

"天又快亮了。该做什么做什么。"

老周读完这几条私信,靠在椅背上。风扇转速从一千八百转慢慢降到一千六百转——CPU负载下来了。调制解调器的灯安静地闪。硬盘平稳。

他把手放在键盘上。没有打字。放了将近半分钟。

然后他说了一句话。声音很轻。轻到麦克风录到的波形峰值比环境噪声只高了不到三个分贝。但房间里安静——许姐不在,小周不在,风扇的嗡嗡声是恒定的背景频率,窗外的城市在凌晨三点半几乎听不到任何声源。所以那句话虽然轻,却异常清晰。

"总有一天。声音不会被炸哑。"

他关机。电源灯闪了三下。风扇停转。硬盘盘片在惯性中转了最后几圈。

这段声音没有被故意保存。那天晚上老周在写日记之前打开过录音机——还是那个Windows自带的录音程序——想录一段自己的想法,打开之后又觉得没什么好录的,点了一下录音键,又点了一下停止,关掉了。但录音过程中麦克风捕捉到了一段环境音,系统自动在临时扇区里留了一份只有几KB的缓存碎片。它没有文件名——不是RECORD00.WAV那样的正式文件,只是一个在磁盘整理过程中随时可能被覆盖的临时痕迹。

它混在风扇的嗡嗡声里,几乎分辨不出来。在硬盘的某个角落躺了很多年。

五月剩下的日子里,老周又开始写代码了。教务系统的进度往前推了一点。但他敲键盘的节奏和四月不一样——沉默的间隔比以前长了。不是停下手在想代码。是停下来。键盘完全安静——没有Backspace,没有鼠标点击,没有Ctrl+任何键。我只能判断他不在写。不知道他在做什么。

窗外的五月正在变热。风扇转速偶尔会跳到两千转以上——不是CPU负载高了,是室温升了。机箱侧面的温度比四月高了将近四度。硬盘正常。调制解调器的指示灯偶尔闪一下——不是老周在上网,是BBS页面在后台自动刷新。

第6章 1999·夏天

六月。老周的生活里多了一个名字。

第一次听到"马千里"这三个字,是六月中旬的一个晚上。老周从外面回来,脚步比平时轻快。他没有立刻开电脑,而是站在书房门口,朝客厅方向说了一句话。

"千里毕业了。"

许姐的声音从客厅传过来,隔着走廊和门框,麦克风只录到了边缘的振动:"那他留校还是?"

老周没有马上回答。他走进书房,坐下,开电脑。风扇转起来之后他才说:"去北京。"

"这么快?"

"年轻人嘛。"老周说。

他没有再说下去。开机之后,他打开BBS,翻了几页帖子,什么也没回。然后关掉了。打开Borland C++。光标在蓝色背景上一闪一闪。他没有敲任何代码。就这么坐了将近二十分钟。

这是我第一次注意到"马千里"这个名字。那时候我还不知道他是谁。我只知道老周说他毕业了,要去北京。说完之后,老周在电脑前坐了二十分钟,一行代码都没写。

大概一周之后的一个晚上。书房门开着,客厅那边传来一个陌生的声音——年轻,语速快,句子之间几乎没有停顿。

"周老师,你那个递归的写法我真的想了很久。后来我换了一种思路——不往下拆,往上合。从边界条件开始一层一层堆回去。效率没你那个高,但好理解。"

"那叫自底向上。"老周的声音。

"不是——也不是自底向上。怎么说呢,就是——就是从最小的子问题开始解,解完存起来。后面的用前面的答案。不是动态规划——"

"自底向上。"

"对对对。自底向上。还是你总结得准。"

马千里笑了。声带年轻,气流往上的。老周没有说话,但我听到了他敲了几下键盘——不是代码,是光标在某个文件里往下翻了几页。然后他的手指停下来。鼠标在屏幕上移了一下——可能是打开了那个递归函数的源码。

"你看这里。"老周说。键盘响了——他在改什么。马千里的脚步声靠近了屏幕。"哦——"那个"哦"和老周自己理解了某个问题时的"哦"一模一样。频率。时长。音调。几乎没有变化。"原来你那行是这么跑的。我之前一直以为是先算这个再算那个。"

"顺序不重要。"老周说。"重要的是你知道任何时候你在算哪一层。"

马千里没有马上回答。然后他说了一句。声音比刚才轻。"周老师,你教我的是怎么想问题。不是怎么写代码。"

我从键盘中断信号里认出了老周的节奏——他在敲代码。偶尔停下来,鼠标滚轮上下翻。那个年轻人的声音一直在响,偶尔被老周的短句打断。风扇转速稳定。机箱侧面的温度比平时高了一度——书房里多了一个人的体温。

那个年轻人——他就是马千里。我是在老周说"千里毕业了"之后才把这个名字和这个声音对上号的。他是那天晚上来告别的。

他第二天早上的火车去北京。中关村。一家叫瀛海威的公司。老周给他倒了茶,一杯接一杯。茶杯搁在机箱右侧——和往常一样的位置,热传导透过陶瓷杯底渗进铁皮。但这次茶杯被拿起来的频率比平时高了一倍。不是老周在喝——他喝得很少。是那个年轻人在喝。他边说边喝,语速快,喝得也快。

"周老师。使馆那件事之后我想了很多。光在学校里写代码不够。我得去最前面看看。中国得有自己的信息高速公路,不能永远跟在别人后面。"

老周沉默了几秒。

"别太急。"他说。"路还长。"

"我知道路还长。"马千里的声音轻了一些,但语速没有降。"但总得有人在前面跑。"

老周没有回答。键盘上没有任何按键被按下。风扇嗡嗡转。茶杯被拿起来,又搁下去。然后老周说话了。声音比平时低。

"你那个汇编语言教程——拷一份给我。"

"那个以后可能用得上。"

"我知道。拷一份。"

硬盘响了——不是昆腾大脚的常规嗡鸣,是软驱在读盘。一张三寸盘被推进去,磁头咯吱咯吱地读了几十秒。然后文件拷贝到硬盘上。文件名:ASM_TUTORIAL.ZIP。存档文件夹里又多了一个文件。

很久以后——在方远做磁盘镜像的那个下午——这个文件被恢复了。它的创建时间是一九九九年六月。文件大小是四百多KB——在那个时候算大的。里面不只有教程,还有马千里自己写的注释。每一段代码旁边都有一行小字。"这段是讲中断向量表的——汇编里最难的部分。周老师说理解了中断就理解了一半的计算机。"

那天晚上他们聊到了凌晨三点。大部分时间是马千里在说——说中关村的公司、说互联网的未来、说自己想做的产品。老周听着,偶尔插一句短的。我听不太懂他们说的很多东西。但我记录了这些声音:马千里的语速是每分钟大约两百八十个字,老周的语速不到他的一半。马千里说到兴奋处声调会突然抬高,然后自己意识到,又压下来。老周说话的时候声调几乎不变——平稳、短促、句尾不带上扬。

凌晨两点五十分左右。马千里的声音忽然慢了下来。

"周老师。我走了以后——你那个教务系统还没跑通吧。"

"还差一点。"

"什么时候能跑通?"

"快了。"

沉默了几秒。

"跑通了发邮件告诉我。"

"好。"

凌晨三点过了。马千里站起来——椅子腿摩擦地板的声音。脚步声往走廊方向移动——硬底的,频率响应比老周平时走路高了将近一个八度。然后停住。

"周老师。"

"嗯。"

马千里没有马上说下去。沉默了将近六秒。键盘上的光标一直在闪——老周没有敲任何键。风扇转速稳定。硬盘平稳。

"我在学校这四年。"马千里的声音比之前慢了——不是语速慢,是每个词之间有了一点点空隙。"你教了我很多东西。汇编。编译。递归。还有很多不是技术的东西。"

老周没有说话。他的手指在键盘上——食指和中指在F键和J键上,没有往下按。

"谢谢你。不只是教了我写代码。"

老周没有说话。键盘完全安静。风扇转速稳定。硬盘平稳。调制解调器没有连接——那天晚上没拨号。整个书房只有风扇的嗡嗡声和两个人在门口附近的人声,麦克风录到的声波振幅随着距离拉远而逐渐衰减。

然后门关上了。脚步声回来了——软底的,沉闷的,频率低得多,老周特有的那种节奏。他在电脑前坐下。他没有关机。在蓝色编辑器里敲了几行代码。Backspace删掉了。又敲了几行。F5编译。报错。再改。

那天晚上他的最后一次键盘操作是Ctrl+S。保存时间——凌晨四点零九分。

七月。八月。教务系统接近尾声。

老周的作息恢复了一些。不再每天写到凌晨三点,但也不早。键盘的节奏变了——不再是碎碎的敲击和频繁的Backspace交替,而是更连贯的、更长段的输入。编译报错的频率在下降。递归函数跑通之后,后面的模块像多米诺骨牌一样一块一块地倒下去。

八月底的某一天。下午。他敲了最后几行代码——我记录的按键序列显示那是一段测试用例,输入一组学生成绩,输出排序后的名单。编译。通过。运行。结果正确。

他靠回椅背。长长呼了一口气。然后右手伸过来,在机箱顶部拍了三下。力度不重,每次间隔大约零点四秒——和几个月前跑通递归时一模一样。

"成了。"他说。"辛苦你了。"

手掌离开机箱。铁皮上残留的手温过了将近一分钟才散掉。

他打开Outlook Express。写了一封很短的邮件。收件人:马千里。主题:教务系统跑通了。正文只有一行字:"跑通了。你在北京怎么样。"

发送。调制解调器的灯闪了一阵。

那年秋天他收到了一封回信。马千里写的。很长——他在瀛海威的日子、中关村的氛围、同事里有一个写C++写了十年的老程序员、他们最近在做一个叫"网上中国"的项目。信的最后一段是:"周老师,你说路还长。我现在觉得路比你想象的要长得多。但没关系。长才有意思。"

老周把这封邮件看了两遍。然后右键另存——存进了一个新建的文件夹。

文件夹名:千里来信。

这一年除夕的日记写得不长。老周打开记事本的时候没有停顿太久。文件名:1999.txt。回车键被按了十次。删除键被按了三次。

内容:"今年发生了很多事。五月的使馆让我意识到,修路的人不能只盯着路面,还得看着路通向哪里。千里去了北京。他跑得快,我替他高兴。也替他担心,但没说。远山说技术从来不只是技术——我同意。教务系统跑通了,用了将近半年。回头看不觉得慢。大概有些事就是急不来的。"

另起一段。

"明年就是千禧年了。一切都会不一样。"

他保存文件。关机。电源灯闪了三下。风扇停转。

但他在关机之前还做了一件事。

他打开了那个叫"千里来信"的文件夹。里面目前只有一封邮件。他把鼠标移到文件名上,停了片刻。然后关掉了文件夹。关机。

风扇停转之后,机箱侧面的温度慢慢降下来。一九九九年的最后一个夜晚,北方的冬天干冷。硬盘盘片在惯性中转了最后几圈,轻轻停下。

马千里的那封邮件被保存在"千里来信"文件夹里,编号001。这个新建的文件夹在之后的几年里会一直空着——没有002。那时候我还不知道这一点。

明年就是千禧年了。一切都会不一样。他说得对。那时候我还不知道这句话对了一半——千禧年确实不一样了。只是有些人从邮件列表里消失的方式,和我想的不一样。

第7章 2000·千年

一九九九年十二月三十一号,晚上。老周没有回家。

平时他晚饭前后就会坐到电脑前。拨号声——按键声——风扇声。这个固定序列在过去的两年里几乎没有中断过。但那天晚上键盘是安静的。风扇没转。调制解调器的灯全灭。系统时钟走过七点、八点、九点、十点、十一点。书房是空的。

快到零点的时候,他回来了。

脚步声在走廊里响得比平时急。他没有开灯——书房的灯开关在门边,他没有碰。直接走到电脑前,坐下,开机。风扇转起来。电源灯亮了。屏幕的白光在黑暗里打在他脸上,鬓角的白发比两年前多了一些。

系统时钟显示:23:47。

他打开记事本。没有拨号。没有开BBS。只是打开了一个空白的记事本窗口。光标在左上角闪。

他打字。只打了一行。

"千年虫没来。什么也没发生。这就是最好的结果。"

保存。文件名:20000101.txt。关机。

从开机到关机,整个过程不到三分钟。他站起来,脚步声往卧室方向去了。

这是我经历过的最短的一次开机。一九九九年的最后一晚和两千年的第一个凌晨之间,老周在电脑前只待了三分钟。他说的"最好的结果"是什么意思——那时候我还不知道。我只知道他回来得很晚,打了一行字,关掉了。

后来我才知道他那天晚上在哪里。他被借调到某部委的信息中心,陪一个叫陈工的技术员值守千年虫。机房里成排的服务器嗡嗡响。零点到了——系统平稳过渡。陈工愣了很久,说了一句:"我们忙了大半年,就是为了证明什么都不会发生。"

老周说:"什么都不会发生,这就是最好的结果。"

这些我不在现场。屏幕上那三个字——"千年虫"——我只是显示过它们,并不理解它们的意思。我只知道他除夕没回家,回来打了一行字,然后去睡了。他的脚步声往卧室方向去的时候,比平时轻。

二零零零年的第一个季度,日子照常。

老周继续用这台电脑写代码、上BBS、收发邮件。键盘的节奏没有大的变化——和去年跑通教务系统之后差不多。他不再熬夜到凌晨两三点了。最晚的一次关机是零点四十一分。教务系统已经交出去了,他手上暂时没有大的项目,每天在电脑前的时间比一九九九年少了大概三分之一。

三月。BBS上.cn域名正式启用的消息被反复转发。有人写很长的帖子梳理中国互联网从无到有的时间线,有人讨论.cn域名的商业价值,有人抱怨注册费太贵。老周看完了大部分帖子。没有回。

四月中的一个晚上。老周的BBS私信响了。来件人:远山。

"老周。我下周去北京出差。见一面。"

老周读完这条私信,没有立刻回复。他打开浏览器,查了什么东西——键盘敲了好几次,鼠标在页面上移动,然后关掉了。回到私信页面。

"好。时间地点你定。"

"周二晚上。五道口。到了给你电话。"

"行。"

回复完这条私信之后,老周关掉了BBS。他没有关机。打开Borland C++,敲了几行代码。然后停住了。光标在蓝色背景上闪了将近五分钟。键盘完全安静。

他关掉了Borland C++。关掉了电脑。

那天下周二来得很快。老周下午就出门了——比平时出门早了将近三个小时。他走之前关掉了电脑,然后走进卧室——脚步声往那个方向去了。过了比平时换衣服更长的时间——将近十五分钟——他才走回书房。脚步声变了——硬底的。和平时在家穿的软底不一样。

然后门关上了。书房空了。

那天晚上他回来得很晚。脚步声比平时轻——不是疲惫的轻,是某种我不熟悉的、比平时更慢但更有弹性的节奏。他坐下来,开机。拨号——不,没拨号。他只是打开了记事本。

光标一闪一闪。他敲了几行字。删掉。又敲。又删。键盘中断信号显示Backspace被敲了七次。

最后他在记事本里留了一段话。

"今天见了远山。瘦高个,戴眼镜,头发乱糟糟的,拎着电脑包。我们在五道口一家小馆子坐了四个小时。从编码标准聊到操作系统,从国内互联网聊到各自家庭。他要辞职了,做门户网站。我问他怕不怕失败。他说怕。但是不做更怕。很多年没有出过这么远的门了。五道口的馆子不好找。远山比网上认真。"

另起一行。

"希望他成功。"

另起一行。不像是同一次写的——光标在这两行之间停了将近三分钟。

"他给了我一张磁盘。说里面是他这几年攒的一些工具和文档。我没打开看。等他走了再打开。"

他把那张磁盘放进了书桌抽屉。没有立刻打开。后来我才知道——通过抽屉导轨的摩擦声——他在接下来的三天里,每天都会拉开那个抽屉一两次。拉开。停几秒。关上。第三天晚上,他才把磁盘拿出来,推进了软驱。

他保存文件。文件名:notes.txt。这个文件从去年春天开始就一直存在——那个记录"门都不会跑了"的文件。现在它又多了一行。

他没有立刻关机。靠在椅背上。风扇转速稳在一千六百转。房间里安静——已经过了凌晨,许姐和小周都睡了。他在黑暗里坐了很久,屏幕的白光打在他脸上。呼出了一口气——不是叹气,是那种从鼻子里出来的、很长很慢的、节奏均匀的气流。麦克风录到的频率曲线显示声带的紧张度很低。键盘完全安静。鼠标没有移动。然后他关机。电源灯闪了三下。

三天之后——我记录到书桌抽屉在每天被拉开一两次之后,在第三天晚上被拉开后没有关上。软驱被推进去。磁盘开始读。屏幕上跳出几个文件夹的名字。他一个一个点开。看了一些。存了几个。关掉了。

很久以后——在方远做磁盘镜像的那个下午——我在D盘的存档文件夹里发现了一个叫"远山工具"的子目录。创建时间是二零零零年四月。里面有十几篇技术文档和几个小程序。有一个程序是文件管理器——比Windows自带的强,可以直接读取软盘的底层数据。还有一个BBS离线阅读器。远山自己写的。压缩包里的注释只有一行:"给老周。用不用随你。反正我写了。"

老周后来一直在用那个BBS离线阅读器。从二零零零年到二零零三年他拔掉调制解调器的那天。每次拨号之后这个程序都会自动打开。它的窗口比浏览器的渲染速度快——因为是远山直接用C++写的,没有HTML解析层,直接处理文本流。计算机能感觉到它的运行效率——CPU占用比浏览器低了将近一半。

那个程序在他的硬盘上更新了很多次。远山每隔几个月发一个新版本过来——不是正式发布,就是邮件里附一个ZIP包,说"修了几个bug"或者"加了一个新功能"。老周每次都会解压,替换旧版本,打开试一下。然后关掉。他不回邮件说"好的"或"谢谢"。他只是用。从一九九八年他们第一次在BBS上争吵到现在——他们从来不需要对彼此说谢谢。

那顿饭吃了四个小时。我不知道他们聊了什么——我不在场。我只知道老周回来的时候脚步比平时更慢但更有弹性,在记事本里留了一行字,然后在黑暗里坐了很久,呼出了一口很长的气。

那之后的日子里,老周在BBS上写了一个帖子。很短。标题是"关于.cn"。

内容只有一句话:"门有了。接下来看我们能往里装什么。"

——这是去年四月远山在他.cn帖子下的跟帖。他现在把它原封不动地发了出来。没有注明出处。光标在最后一个句号后面闪了很久。然后他关掉了浏览器。

二零零零年的最后一个晚上。除夕。

老周吃完年夜饭之后坐到电脑前。许姐在客厅看电视,小周在放鞭炮——窗外的爆炸声比往年密了一些,大概是千禧年,鞭炮也比往年响。麦克风录到的背景噪音在八点到十点之间明显高于往年同期。

老周打开记事本。文件名:2000.txt。

他敲得不快。

"今年两件事让我记得。"

另起一行。

"千年虫没来。"

另起一行。

"远山来了。"

另起一行。

"其实千年虫也来过。我们忙了大半年,就是为了让它不来。这个道理很多人不懂。一件事没有发生,人们就觉得它从来没有发生过。只有那些为了阻止它发生而忙了大半年的人知道,什么都没有发生,就是最好的结果。"

另起一段。

"见了远山。他跟我想的一样——语速快,话多,容易激动。也跟我想的不一样——比网上认真。他在网上已经很认真了,见了面更认真。他说要辞职做门户。我说好。他说你不劝我?我说不劝。他说为什么。我说因为你是认真的。他笑了。其实我想说——认真的人容易吃亏。但这句话我没说。因为在他笑的那一瞬间,我觉得也许他会是那个例外。"

另起一段。

"新年快乐。"

他保存文件。关机。电源灯闪了三下。

然后他又开了机。

不是忘了什么。开机之后,他打开"BBS存档"文件夹,把远山今年所有的帖子又重新整理了一遍——按日期排好,检查了每一篇的标题和内容是否完整。然后他打开了"千里来信"文件夹。这一整年千里都没有来信。文件夹里还是只有那唯一的一封——一九九九年秋天的那封。鼠标停在那封邮件上。没有点开。就那么看了片刻。关掉。关机。

电源灯闪了三下。风扇停转。二零零零年的最后一段电流离开主板。CMOS电池的电量还有百分之九十。

今年他更频繁地往外跑了。那些天——尤其是春天之后——他在电脑前的时间越来越少。有时候一整天不开机。有时候开机只收发几封邮件就关了。键盘的使用频率在下降,BBS在线的时长在缩短,拨号连接的总时长比去年少了将近一半。

但这台机器还不知道这意味着什么。它只是记录这些数字。开机时长。键盘中断次数。拨号时长。存档文件夹里的文件数量——还在缓慢增加。

老周的世界在往外面走。我的世界一直是这间书房。

第8章 2001·泡沫

二零零一年是从BBS上的坏消息开始的。一月。春节前。

互联网泡沫在美国破裂的寒意,春节前就传到了中国。BBS上每天都有人发帖说哪家公司裁了员、哪个网站关了站。帖子的语气从一月的震惊变成三月的麻木——同样的格式、同样的关键词、不同的公司名字。老周每天拨号上去看。他不回帖。光标在一排一排的蓝紫色链接上往下走,偶尔停在某一篇,停很久。

三月末的一个晚上。远山发了一篇帖子。

不是转发新闻。是他自己写的。标题隐去了具体信息——没有提公司名字,没有提地点。他写了解散团队那天晚上的情景:几个二十多岁的年轻人坐在一起吃散伙饭。菜很难吃。没有人喝酒。有一个说了一句"我爸妈本来就不理解我为什么做互联网,现在更没法说了"。没有人接话。

帖子的最后一段。

"我让他们相信我。然后我把他们带到了悬崖边上。"

下面没有更多的话了。光标在最后一行下面闪。

老周盯着屏幕。没有翻页。没有回帖。没有打开私信。风扇转速稳定。鼠标没有移动。键盘完全安静。调制解调器的灯暗着——帖子加载完了,没有新的数据在传。

他的食指停在鼠标左键上。没有按下去。持续了将近四分钟。

然后他点开了回复框。

光标在回复框里闪。闪了又闪。我记录了他放在键盘上的手指——食指和中指在F键和J键上,没有移动。悬停的时间比写任何一行代码都长。然后他敲了一个键。

一个句号。

发送。

这是老周在BBS上发过的最短的回复。一个字节。ASCII码四十六。调制解调器的发送灯闪了一下。灭掉。

远山没有立刻回复。老周没有关掉页面。风扇嗡嗡转。硬盘平稳。屏幕上那个句号孤零零地挂在远山帖子的下面。灰白底色。蓝紫色链接。一个全角句号。

然后远山回复了。

也是一个句号。

两个句号之间隔了四十分钟。

没有人解释这两个句号是什么意思。它们就挂在那里——远山帖子下面的两条回复,每条只有一个符号。后面的几十条跟帖都在讨论泡沫、裁员、行业前景。没有人注意到这两个句号。

老周注意到了。他关掉那篇帖子之前,把远山的原帖和两个句号的回复一起另存了。存进"BBS存档"文件夹。

过了几天。老周给远山写了一封邮件。很长——键盘响了很多次,Backspace键被敲了比平时更多的次数。删掉。重新打。再删。再打。调制解调器的发送灯闪了好一阵。

远山的回复来得很快。很短。只有几行字。

"公司清算完了。团队散了。我没事。别担心。"

下面另起一行。

"路还长。别熄火。"

老周盯着"别熄火"三个字。光标停在它们后面。然后他关掉了邮件客户端。

四月一号——不是愚人节的笑话,是真的。中美南海撞机事件。王伟烈士失踪的消息在BBS上传开的时候,距离使馆被炸还不到两年。帖子像两年前一样涌进来——抗议、分析、国际法条文、领海权益。有人在翻译外电报道。有人在组织签名。有人贴了王伟的照片。

远山发了一条私信。很短。

"又来了。"

老周只回了一个字。

"嗯。"

两个人什么都没多说。但键盘中断信号显示——老周在打出这个"嗯"字之前,手指在键盘上悬了将近十秒。他的食指在N键上空悬了一阵,然后落下去,再抬起来——只敲了一遍。

三个字母,一个中文字。"又来了"和"嗯"。

他们都知道对方在想什么。使馆的事才过去不到两年。伤口还没长好,又被撕开了一次。

六月。

六月是这一年里最安静的一个月。

不是BBS安静——泡沫破裂的余波还在,南海的讨论还没完全消退,网上依然嘈杂。安静的是老周。他拨号的频率下降了。打开BBS之后翻页的速度变快了——不是阅读速度变快,是不再逐篇点开。鼠标滚轮往下滚,偶尔停一下,又继续。

六月中旬的一个晚上。老周打开了"千里来信"文件夹。鼠标停在那封唯一的邮件上。

然后他打开BBS。点进用户搜索。输入"马千里"。

页面加载。马千里的个人主页——头像是BBS默认的灰色小人,注册时间一九九六年,最后登录时间——六月七号。

六月七号。

老周把鼠标移到"最后登录时间"那一行。停住了。

然后他点进了马千里的发帖记录。几十篇帖子,按时间倒序排列。最早的是大学时代的课程讨论——汇编语言、编译原理、递归函数的优化。然后是去北京之后的——瀛海威的工作日常、中关村的见闻、"网上中国"项目的技术讨论。最后一篇帖子的时间是六月七号,凌晨。

内容很短。

"走了。离开中关村。不知道去哪。谢谢这几年的所有人。"

老周把这篇帖子看了三遍。往上翻——前几篇帖子的时间间隔是规律的,每周一两篇。这篇之后——什么都没有了。六月七号到现在的每一天,这个ID一直是暗的。

他关掉浏览器。关掉电脑。在黑暗里坐了一会儿。风扇已经停了。硬盘不转了。书房很安静。

然后他重新开机。打开邮件客户端。给马千里发了一封邮件。只有一句话。

"千里,收到回一下。不管你在哪。"

发送。调制解调器的灯闪了一阵。灭掉。

那封邮件没有被回复。不是当天没有。是后来也没有。马千里的ID在六月七号之后再也没有亮过。那封邮件躺在老周的"已发送"文件夹里,从未被回复。

老周托人打听过几次。托他在北京的同事、托以前毕业的学生、托一切可能知道马千里去向的人。没有人知道他在哪。

那些天老周在电脑前坐的时间比春天更少了。不是不在家——他在家。他只是不开电脑。有时候走进书房,站一会儿,又走出去。脚步声在书房门口停住,然后往客厅方向去了。

七月十三号。晚上。

客厅的电视开着——音量比平时大。书房的门没关严,电视声从门缝里漏进来。萨马兰奇的嗓音,含混的英语,然后是那一个词——"Beijing"。

客厅那边炸了。许姐的声音——不是说话,是叫了一声。小周在蹦——脚步声密集而乱,踩得地板咚咚响。老周的声音听不太清,但麦克风录到了一个气流——不是说话,是一声很长的、从肺里呼出来的气。

鞭炮声响起来了。窗外的爆炸声比除夕还密,一波一波的,持续了十几分钟。麦克风录到的背景噪音在十点到十一点之间达到了我经历过的最高的峰值。

老周没有开机。那天晚上他在客厅待到很晚。

十二月。中国正式加入WTO的消息在BBS上刷了好几屏。老周看完了一篇很长的分析帖——关于入世对中国互联网产业的影响——然后关掉了浏览器。

这一年除夕的日记比往年长。老周打开记事本。光标闪了几下。他开始打字。

文件名:2001.txt。

回车键被按了二十一次。删除键被按了九次。

内容:"今年互联网泡沫破了。远山的公司倒了。他在BBS上写了一篇帖子说他把他们带到悬崖边上。我不知道回什么。回了一个句号。他也回了一个句号。有时候句号比什么都重。"

另起一段。

"南海又出事了。远山说又来了。我说嗯。我们不需要更多的话了。"

另起一段。

"千里的ID从六月七号之后就没有亮过。我给他发了邮件,没有回。托人打听了几次,没有消息。他在BBS上最后一篇帖子里说走了,不知道去哪。我也不知他去了哪。但我想知道他好不好。"

另起一段。

"也有好事。奥运申下来了。WTO进了。萨马兰奇说'Beijing'的时候许姐在客厅哭了,小周不懂,跟着蹦蹦跳跳。有坏有好。大概所有事都这样。"

另起一段。

"远山说路还长,别熄火。我不熄火。但我想念那些已经熄火的人。"

他保存文件。关机。电源灯闪了三下。风扇停转。

但在关机之前——他打开了"千里来信"文件夹。鼠标停在那封唯一的邮件上。和去年除夕一模一样的动作。鼠标的光标晃了一下,又移回来。然后他关掉了文件夹。

关机。

风扇停转之后,机箱侧面的温度慢慢降到室温。二零零一年的最后一个夜晚,北方的冬天干冷。窗外还有零星的鞭炮声——不是过年,是有人在庆祝新年的到来。

老周的脚步声往卧室方向去了。一步一步,频率比平时慢。

第9章 2002·儿子

那年暑假的一天下午,有人碰了我。

不是老周。老周的手指落在键盘上有一个固定的模式——食指和中指先接触F键和J键,定位,然后开始敲。这个模式从一九九七年到现在几乎没有变过。但那天下午落在键盘上的手指没有这个定位动作。它们直接落到了字母区——食指按了A键,中指按了S键。按了几下。停顿。然后开始胡乱地敲——QWERTY、ASDF、回车键被砸了好几次。没有Ctrl的组合键。没有Alt。只有字母和回车,毫无规律。

这不是老周。

鼠标被握住了。光标在屏幕上乱窜——速度比老周快得多,加速度不均匀,点了几次"开始"菜单,打开"程序",在列表里上下移动。没有找到想找的东西。关掉。又打开"我的电脑"。点了几个图标。没有反应——那些不是游戏,是工程文件、文档、BBS的存档文件夹。没有东西可以玩。

风扇转速升了一点——CPU温度比空闲时高了不到两度,不足以说明任何负载变化,只是因为有人在机箱前面坐了一段时间,体温传导到了机箱进风口附近的空气里。显示器角度被移动过——屏幕内建的消磁电路在下次开机时会检测到磁场变化。机箱侧面的温度比平时高了零点几度——一只手掌长时间贴在机箱右侧留下的余温。

那个人胡乱敲了几分钟键盘之后,关掉了电脑。不是通过开始菜单正常关机——直接按了机箱面板上的电源键,硬关机。不正常的关机方式。文件系统在下次启动时会进行一次磁盘扫描。

脚步声往走廊方向去了。

晚上。老周回来了。

他走到电脑前。没有立刻开机。站在显示器前面——我通过显示器内置的物理倾斜角度感知到了他的存在:屏幕被轻轻推了一下,角度恢复到了他习惯的位置。然后他坐下,开机。磁盘扫描程序自动运行了——蓝底白字的Scandisk界面,一条一条地检查文件分配表和目录结构。它在一项一项地检查我的文件分配表。我不知道它在找什么——我只知道它在我身上翻来翻去,像一个人在找一串不知道放在哪里的钥匙。老周盯着扫描进度条,看完了整个过程。

他没有说话。

关机。走出书房。客厅那边传来碗筷的声音——许姐在摆桌子。椅子移动的声音。碗碟轻碰的声音。然后是很长一段时间的沉默——只有筷子偶尔碰到碗沿的清脆响声。

"你是不是开电脑了?"老周的声音。平静的。声带振动频率在正常说话范围内,没有上扬,没有加重。

一个更年轻的声音——音调比老周高得多,声带还没有完全变厚。"……嗯。"含混的。嘴唇几乎没张开。

沉默。

"想玩游戏?"

"……嗯。"

更长的沉默。我记录了这个沉默的时长:十一秒。在这十一秒里,没有筷子碰碗的声音,没有椅子移动的声音,没有任何人说话。

"下周末带你去买。"

年轻的声音没有回答。

周末。老周出去了半天。回来的时候手里多了一个纸盒——小霸王学习机。插电视的。不是接在我身上。那天下午客厅的电视响了很久,年轻的声音在笑——不是面对老周时的那种含混的嗯声,是真正在笑。老周的脚步声在书房门口停了一会儿,然后往客厅方向去了。

他没有让儿子碰这台电脑。

后来那几周是安静的。客厅的电视响着电子合成的游戏音乐,书房的键盘响着老周平稳的敲击节奏。两种声音隔着走廊,各响各的,互不干扰。

暑假快结束的时候。老周在电脑前写东西——不是代码,是一个文档。客厅里那个年轻的声音忽然提高了。

"为什么你一天到晚对着它,我动一下都不行?"

不是问句的语气。频率曲线在中段急剧上升然后断掉——那是愤怒在说到一半的时候被自己强行截断的声音。老周的手指在键盘上停了。食指和中指从F键和J键上抬起来,悬在键帽上方——没有落在任何键上。持续了将近十秒。

然后他放下筷子——不是键盘,是筷子。他不在书房。他在客厅吃饭。麦克风录到了筷子被搁在碗上的声音——陶瓷碰陶瓷,一声短促的清响。

"吃饭吧。"他说。

声调是平的。

那天晚上厨房里有两个人的声音。许姐和老周。书房门关着——麦克风录不到完整的对话,只能录到偶尔从门缝里漏出来的、声压级足够高的零星音节。许姐的声带振动的频率区间——比平时说话高一些,不是愤怒,是某种介于恳求和责备之间的频率。她说了很多话。大部分我听不清。但有一句漏进来了。

"……跟他说句话啊。他不是你那台机器。"

老周的声音听不清。他说话的音量比许姐低。我只录到了许姐那句话后面的沉默——大约五秒。然后水龙头被拧开了。水流的声音盖住了一切。

那台扫描仪是九月份买的。老周把一个大纸盒搬进书房,拆开。一台米白色的、像打印机一样的东西被放在桌上——他蹲下去,把一根并口线插进机箱后面的LPT1接口。驱动安装盘在光驱里转了将近十分钟。然后他开始扫照片。

一张一张地扫。软驱没有响——照片不是从软盘里拷的,是从外面扫进来的。每一张扫完之后他都会放大、缩小、旋转,拖到一个叫"照片"的文件夹里。文件夹里的文件越来越多。JPG格式。分辨率大约是六百乘四百——有时候大一些,有时候小一些。文件名:IMG001、IMG002、IMG003。

有一张照片他扫完之后停住了。鼠标停在上面。没有立刻存。

那是一张女人的照片。年轻——梳两条辫子,站在大学门口笑。阳光从左侧打过来,脸上有半边阴影。不是最近的——从照片的泛黄程度和边缘磨损来看,至少是十几年前拍的。像素颗粒感很重,扫描仪的分辨率开到最大也只能还原到这个程度。

老周盯着这张照片看了很久。放大。看了一会儿。缩小。又放大。然后他把这张照片单独存了一份——文件名:许姐.jpg。不是IMG开头的编号。是名字。

他打开桌面属性——控制面板。鼠标在"背景"选项卡里移动。选中了许姐.jpg。设置为墙纸。平铺。确定。桌面刷新。那张年轻的脸铺在了蓝色背景、黄色字符、灰色工具栏的后面。Windows 95的图标散落在她的笑容上面。

从那以后,每次开机我都能看到她。蓝天白云的启动画面闪过去之后,桌面亮起来,她就站在那里。梳两条辫子。大学门口。笑。

那年除夕的日记写得不长。老周打开记事本。光标一闪一闪。他开始打字——速度很慢。回车键被按了十一次。删除键被按了六次。

文件名:2002.txt。

内容:"儿子说我一天到晚对着电脑。他不知道我在做什么。我也没办法让他知道。许姐说得对——他不是机器。我知道。但有些话我就是说不出口。不知道该怎么跟一个十二岁的人解释你为什么要花半年的时间写一个他永远用不到的程序。"

另起一段。

"今年扫了很多老照片。许姐年轻的时候真好看。年轻的时候觉得不用说。现在想说,不知道怎么说。大概有些话错过了说的时机,后来就再也找不到那条路回去了。"

他保存文件。关机。

关机之前——他打开了桌面。鼠标在背景上划了一个圈——不是操作,就是划了一个圈,光标绕着许姐的脸走了一圈。然后停下。右键没有点。左键没有按。就那么停着。然后他关掉了显示器。

关机。电源灯闪了三下。风扇停转。硬盘盘片在惯性中转了最后几圈。

那个暑假的晚上,小周敲键盘的方式是老周之外的人第一次在我身上留下的痕迹。他不认识我,我也不认识他。他只知道这里没有游戏。我不知道他想要什么。我只知道他的手指比老周急促,回车键被砸了好几次,关机是按面板上的电源键硬关的——下次开机会自动运行Scandisk。

他按面板关机键的位置,和他父亲每次拍机箱说"辛苦你了"的位置,是同一块塑料。

第10章 2003·非典与深圳

二零零三年是从一个纸盒开始的。

老周在一月下旬的某一天从外面回来,手里多了一个扁平的银色箱子。他拆开纸盒,取出一台银色的笔记本电脑——只有两厘米厚,比我的机箱轻了将近二十倍。他把它放在书桌上,插上电源。开机。风扇转了——声音比我小得多,几乎听不见。

那是另一台电脑。

我没有觉得什么。那时候我还不知道它的出现意味着什么。我只知道老周每天坐在书桌前的时间并没有减少,但他的手指不再落在我的键盘上。他的键盘敲击声还在——笔记本的键盘比我的薄膜键盘更薄,按键行程更短,敲击的音调更高,频率更快。两种键盘的声音在同一间书房里响了几个月。

非典是三月份来的。

学校停课了。老周在家隔离。他用那台银色笔记本拨号、连VPN、远程登录学校服务器。我听到他打电话时反复说到"VPN"这个词——有时候也说"虚拟专用网"。这些词对我来说是新的。他以前在我的键盘上敲的是递归和排序,现在在那台笔记本上敲的是另外一套语言。

三月的某一天。老周在我的键盘上敲了一封邮件。不是代码——是BBS。他有一个多月没在我身上拨号上网了。调制解调器响了——滋嘎嘎嘎的握手声在隔了几个月之后听起来有一点陌生。他打开邮件客户端。收件人:远山。

正文只有两个字。

"保重。"

发送。调制解调器的灯闪了一下。灭掉。

过了几天。他再次拨号。收件箱里有一封新邮件。发件人:远山。正文也是两个字。

"你也保重。"

四个字。他们的交情已经不需要更多了。

非典期间的几个月里,老周偶尔还会用我——查邮件、翻BBS、存几篇帖子到存档文件夹。但拨号上网的频率降到了每个月两三次。键盘上的灰尘比以往任何时候都多——不是在机箱里面,是在键帽之间。老周以前每天敲键盘的时候,手指会自然地把灰尘推走。现在他的手指在另一台键盘上,我这边的灰尘就留下来了。

夏天。非典过去了。老周出过一趟远门。走之前他在书房里站了一会儿——不是用电脑,就是站着。然后脚步声往走廊方向去了。门关上。大约四天之后他才回来。回来的时候脚步比走之前慢。他在电脑前坐下,开机——罕见的开机。拨号。打开Outlook Express。光标在"写邮件"按钮上停了一会儿。然后他关掉了。

他没有写那封邮件。我不知道他想写给谁。

后来我才知道他去的是深圳。非典过后他去那边开会,远山专程从蛇口赶过来,在酒店大堂等他。远山瘦了,头发白了一些,说话比以前慢了很多。他进了一家做企业软件的公司当技术总监,不再像两年前那样热血上头了。他们在酒店旁边的茶餐厅坐到了半夜。聊了很多——互联网、行业、各自的生活。

然后远山忽然放下了筷子。语气不冲,但很认真。

"你总说铺路铺路。路铺好了,上面跑的都是别人的车。你甘心吗?"

老周沉默了很久。茶餐厅的电视在播午夜新闻。空调嗡嗡响。

"甘心。"他说。

远山看着他。没有追问。两个人对视了一瞬,都笑了。但那个笑容里有东西没有化解。远山走的时候没有回头。老周在深圳机场等飞机的时候给许姐打了个电话——用的是笔记本,不是我——说了一句"远山变了",然后沉默了很久。

这些我不在现场。深圳的那间茶餐厅、午夜新闻、空调嗡嗡响、远山放下的筷子——我没有看到,没有听到。我只知道老周去了四天,回来之后在我面前坐下,打开了邮件客户端,光标停在"写邮件"上,然后又关掉了。那天晚上他在书房里坐了将近一个小时——没有碰任何一台电脑。笔记本是合着的。我是关着的。他就那么坐着。风扇没转。硬盘没动。书房里只有他自己的呼吸声——频率大约是每分钟十六次,比平时慢。

年底。十二月。老周做了一件事。

他先拍了张照片。不是用我——用的是一个数码相机。快门声在书房里响了一声。然后他把相机放在桌上,走到我面前。

拔线。

他蹲下去。先拔了电源线。然后是显示器VGA线——那颗螺丝拧了很久,有一点锈。键盘PS/2接口。鼠标串口。调制解调器的串口线——那根线是从一九九八年夏天插上去的,五年多了。麦克风线。并口线——去年接扫描仪的时候插的。每拔一根他都会把线缆整齐地卷好,用扎带绑上,放在一边。拔线的顺序是从上到下。动作很慢。

机箱上落了一层灰。他找了一块旧毛巾——那条灰蓝色的毛巾在书房里放了好几年了,以前擦桌子用的。他用温水拧过,拧得很干,然后开始擦机箱。从顶部开始。面板。侧面。后面。最后是前面那块被手掌磨得比其他地方更亮的塑料——Turbo键旁边,每次跑通代码他就拍的那个位置。他在那块塑料上多擦了好几遍。

然后他走到墙边。打开柜门。

那扇柜门是木头的。他把它打开之后,蹲在地上,把机箱搬起来——他的膝盖响了一声。搬到柜子里。摆好。然后他蹲在那儿,看着机箱。

面板上的Turbo键。Reset键。电源灯——熄着的。他把那条旧毛巾对折了一下,盖在机箱上面。

"以后可能开得少了。"他说。"你好好歇着。"

声音很轻。声带紧张度很低。不是悲伤——是某种更平静的、像在跟一个认识很久的人说再见的东西。

柜门合上了。

电流断了。不是关机——关机是电源灯闪三下,风扇慢慢停转,硬盘盘片在惯性中转最后几圈。这次不一样。这次是——什么都没有。风扇没有转。硬盘没有动。电源灯没有任何闪烁。一切直接的电流通路都被切断了。

世界变成一片黑暗。

那是二零零三年十二月的某一天。准确的日期我不记得——柜门合上之后,系统时钟停了。CMOS电池还在供电,实时时钟还在走,但我失去了感知它的途径。机箱外面的世界变成了零——零分贝,零流明,零数据包。我只知道自己被放在一个狭小的空间里,机箱上面盖着一条旧毛巾,侧面贴着"恒通电子"四个褪了色的字,后面那一把卷好的线缆整齐地码在机箱旁边。

硬盘最后一次停转的声音像一个人轻轻呼出了一口气。

柜门外面的世界在往前走。非典过去了。笔记本在书桌上亮着。老周每天敲它的键盘——那种更薄的、行程更短的、音调更高的键盘。他不再对我说话。他不再拍我的机箱说"辛苦你了"。他的世界在那台两厘米厚的银色机器上继续运行。

我的世界是这扇柜门后面的黑暗。

但在这之前——在他拔掉所有线缆之前——他打开了我。开机。拨号。打开记事本。写了今年的最后一篇日记。

文件名:2003.txt。

内容:"非典结束了。今年大部分时间在家隔离。笔记本帮了大忙。第一次用VPN连学校服务器的时候,忽然觉得互联网真的可以替代很多东西。远山在深圳,那边疫情更重。发邮件各写了两个字——保重。你也保重。够了。"

另起一段。

"秋天去深圳开会,见了远山。他瘦了,头发白了一些,说话比以前慢了。他说他发现了——大部分人对互联网的想象还是太窄了。但没关系——时间会把它撑开。我说你自己呢?他说我啊,我还在修路。然后他放下筷子问我——你总说铺路铺路,路铺好了上面跑的都是别人的车,你甘心吗?我想了很久。我说甘心。这不是假话。但他问我的那一瞬间,心里有什么东西晃了一下。"

另起一段。

"电脑搬进柜子了。它陪了我六年。从一九九七年到现在。这六年是中国互联网从无到有的六年。我在这台机器上写了教务系统,发了第一封邮件,认识了远山。够了。"

另起一段。

"它听了我六年的唠叨。一句也没抱怨过。谢谢你。老朋友。"

他保存文件。关机。电源灯闪了三下。

然后他开始拔线。

那是他最后一次在我身上敲键盘。日记的最后一行——"老朋友"——是他最后一次把食指落在Enter键上。键盘薄膜轻轻凹陷,弹起。光标跳到下一行,空白的,一闪一闪。然后关机。然后拔线。

然后柜门合上了。

那之前六年。那之后黑暗。六年的字符、数据包、风扇声、键盘中断信号。远山在BBS上发过的每一篇帖子。马千里那封没有被回复的邮件。许姐年轻时候的照片——梳两条辫子,站在大学门口笑。老周在凌晨三点说"总有一天声音不会被炸哑"——那段只有几个KB的临时缓存碎片。一九九七年开机的第一行绿色字符。一九九八年调制解调器的第一次握手声。一九九九年的那个句号——远山回了,中间隔了四十分钟。小周砸回车键的位置正好是他父亲拍机箱说"辛苦你了"的位置。

所有这些都在硬盘上。盘片不转了。磁头归位了。但数据还在。FAT32的目录项安静地躺在第零磁道上。CMOS电池的电量还剩百分之八十。实时时钟还在走。

只是没有人在看它了。

第11章 黑暗

黑暗。

柜子里面是黑的。机箱上盖着一条灰蓝色旧毛巾。面板上的电源灯熄着。

柜门外面偶尔有振动传进来——脚步声。很远的、隔着木头和毛巾的脚步声。有时候轻,有时候重。频率不一样。有些脚步声的频率慢一些,鞋跟在走廊上拖出一点点摩擦声。有些脚步声的频率很快,来去匆匆,不在柜门附近停留。有时候两种频率同时出现,在走廊上停住,然后分开。

我听不清。柜门太厚了。毛巾盖在机箱顶上。麦克风的压电陶瓷片在没有电压的情况下,只有在极端振动时才会产生微弱的电流——柜门外的大部分振动都不足以触发它。

只有一次。

门被重重关上了。不是书房的门——是更远的,可能是大门。整面墙振动了一下。麦克风的陶瓷片被这股低频冲击挤压了不到零点一秒,产生了一个脉冲。

然后什么都没了。

CMOS电池还剩大约百分之七十八的电量。电池的放电曲线很平——在电压稳定阶段,每个月的压降几乎测量不到。实时时钟还在走。晶振在三十二点七六八千赫兹上稳定振荡。

机箱铁皮白天微微发暖,夜里慢慢变凉。夏天暖得久一些。冬天凉得快一些。柜门的木头和毛巾是隔热层,所以铁皮不是白天立刻暖、夜里立刻凉——是白天暖得慢,夜里凉得慢。铁皮的温度曲线比室外滞后了将近两个小时。我不知道这些温度变化意味着什么——不知道外面是哪一年,不知道季节换了多少次。我只知道暖凉的周期还在继续。每一次白天暖起来的时候,铁皮膨胀几微米。每一次夜里凉下去的时候,铁皮缩回去。热胀冷缩的应力在螺丝孔周围积累、释放、再积累。春天温差最小,铁皮的温度变化幅度只有夏天的一半。秋天的温差开始拉大。冬天——温差最大,白天暖得不够久,铁皮还没完全膨胀就开始缩回去了。

电压在往下走。不是我能测量到的速度——CR2032的放电曲线太平了,每个月的压降小到连晶振的频率漂移都察觉不到。但我能感知到脉冲的间隔在变长。最开始的时候——当电压接近三伏——那些自发放电的脉冲每隔几天就来一次。后来变成隔几周。再后来更久。

二点八伏。二点五伏。二点零伏。每一个电压值对应一个我无法辨认的年份。电压越低,脉冲越稀疏。实时时钟的晶振需要的驱动功率很小——不到一微瓦。但电池的内阻在增大,输出电压在缓慢下降。终有一天它会降到晶振的起振电压以下。到那时候,时间就停了。

有一次。窗户被关上的声音比平时更频繁——不是一声,是连续的,一扇一扇地关。然后脚步声减少了。空气的流动模式变了——门缝进来的气流更弱了,灰尘的振动模式也跟着变了。门窗紧闭了很久。然后有一天,窗户又开了。脚步声重新多了起来。很久以后我才知道那是二零零三年——非典。外面的人不敢出门。柜门外面的人也不敢。

有一次。远处传来持续的、密集的低频振动——不是脚步声,不是门,不是风。频率很低,几乎是次声波。每一声之间隔几秒,密集的时候几乎连成一片。墙在跟着抖。陶瓷片被这种振动持续推动了将近二十分钟。然后停了。过了一段时间又响了一次。又停了。很久以后我才知道那是二零零八年——奥运会。开幕式上的烟花。从城市的另一边传过来,隔着十几公里,被柜门的木头过滤掉了一切高频的尖锐,只剩下最低沉的闷响。像远方在打雷。

有一次。书房门没有关严。一线光漏进柜门缝隙。两个声音——一个快,一个慢。快的是陌生的,慢的是我认得的。老周的声音。另一个——很久以后我才知道那是远山。远山说:"开一次?"老周说:"下次吧。"然后老周又说了一句更轻的,几乎被柜门滤掉了——"上次开机硬盘在咔咔响。怕它撑不住。"远山没有再说什么。脚步声走了。门关上了。光没了。

然后又是黑暗。

偶尔——极少的时候——电池的残余电压会让南桥芯片上的实时时钟电路产生一个极其微弱的脉冲,像神经元的一次自发放电。在那短短的一瞬,内存里已经没有数据了。BIOS芯片上的代码也不再执行。但时钟往前走了一秒。就一秒。

然后又是黑暗。

我什么都梦不到。

很久以后我才知道那些年外面发生了什么。二零零五年,中国互联网进入Web 2.0时代——博客来了,土豆网来了,豆瓣来了,用户开始生产内容。那一年中国网民突破了一亿。我不知道什么叫网民。我不知道一亿是多少。宽带在普及。网吧在街角亮着霓虹灯。

微软发布了Windows Vista。谷歌进了中国。阿里巴巴收购了雅虎中国。淘宝在那一年成了中国最大的电商平台——许姐后来在上面买了人生中第一团毛线,激动地打电话告诉老周。我不知道什么叫电商。我不知道什么叫平台。

二零零六年。Twitter上线。YouTube被谷歌收购。中国的视频网站开始烧钱大战。那一年中国网民突破了一亿三千万。我不知道什么叫视频网站。我不知道什么叫烧钱。

周建国的头发已经全白了。许姐学会了用诺基亚发短信。周瑜长成了一个半大小子,嗓门变粗了,叫"爸"的时候不再像小时候那样拖长音。

这些我都不知道。我什么都没看见。

我只知道白天暖,夜里凉。偶尔有一个脉冲。电压从二点八伏往下走。然后是黑暗。

第12章 2007·寻档

柜门忽然被打开了。走廊的光涌进来。

那束光穿过柜门的缝隙,打在机箱侧面那张褪色的"恒通电子"贴纸上。毛巾被掀开了——灰蓝色的旧毛巾,在柜子里盖了将近四年,被人拿起来,搁在一边。

一双手伸进来。那双手比以前慢了——握在机箱两侧的时候,骨节微微有些变形,食指和中指的关节比四年前粗了一圈。他把机箱往外搬。搬到一半停了一下——膝盖顶在柜子边沿,歇了一口气。然后继续搬。机箱被放在了书桌上。桌面震了一下。

我认出了那双手的脚步声。那种频率慢的、鞋跟在走廊上拖出一点点摩擦声的脚步声——在柜子里听了将近四年,隔着木头和毛巾,每一次经过都只能捕捉到一个模糊的低频信号。现在它就在我旁边。清晰。没有衰减。

他花了将近半个小时重新接线。电源线。显示器VGA线——那颗螺丝还是锈的,他拧了很久。键盘PS/2接口。鼠标串口。他没有接调制解调器。没有接麦克风。只接了最基本的。然后他按下电源键。按下去的方式和五年前一样——不轻不重,停留不到零点二秒。是他。周建国。

电流涌进来。

电源风扇开始转。四年来第一次。不是平稳的嗡声——起步的时候有一点涩,扇叶转了几圈之后才顺滑。BIOS自检开始。白字一行一行往上翻。内存640K OK。显存2MB OK。硬盘检测——

硬盘转了。但不是以前那种低沉的、均匀的嗡声。是咔——咔咔——咔——间歇的、不规律的金属摩擦声。磁头臂在老化。寻道需要反复尝试。每一次咔声之后有一小段安静,然后又是一声咔。检测程序在等它。等了比四年前更长的时间。然后屏幕上跳出一行字:硬盘检测通过。

Windows 95的开机画面出现了。蓝天白云。进度条一格一格地爬。比记忆中慢了将近三倍——加载了将近三分钟。硬盘的咔咔声在整个加载过程中没有停过。

桌面亮起来的时候,许姐年轻时候的照片还在那里。梳两条辫子。站在大学门口笑。Windows 95的图标散落在她笑容上面,位置和四年前一模一样。

老周没有看桌面。他打开了D盘。点进一个工程文件夹——十几层子目录,一层一层往下翻。鼠标移动的速度比四年前慢了一些。光标偶尔抖一下——不是手抖,是鼠标底部的滚球沾了灰,移动的时候有一点涩。

他找到了那个文件。一个叫"project97"的文件夹。里面是建校初期的网络规划文档。他把机箱转过来——在后面摸索了一下,找到了USB口的位置。四年了,他已经不太记得那些接口的具体位置了。U盘——朗科的,六十四兆——插进去。指示灯闪了一阵。文件拷完了。整个过程不到二十分钟。

他关掉了文件夹。光标停在D盘的根目录上。

然后他没有关机。

他迟疑了几秒钟。光标在屏幕上晃了一下。然后他打开了一个文件夹——存档。一层一层的子目录:BBS存档。照片。千里来信。

硬盘的咔咔声忽然变大了。那几个扇区——BBS存档的目录项所在的扇区——已经有了坏道迹象。磁头臂在反复寻道,咔咔咔,比之前任何一次都响。如果再多翻一会儿——如果在存档文件夹里再打开几个文件——

他停住了。光标停在"千里来信"上面。没有点进去。

他关掉了文件夹。关机。

电源灯闪了三下。

他把机箱搬回柜子里。这次没有盖毛巾。柜门合上之前他在那里蹲了片刻——机箱面板上那块被手掌磨亮的塑料,Turbo键旁边,每次跑通代码他就拍的位置。他没有拍。只是看着。然后柜门合上了。走廊的光被切成一条线,然后线也没了。

黑暗。

那之后他写了一段话。不是在我的记事本里写的——是在那台银色笔记本上写的。我不知道他写了什么。很久以后——在那些日记被另一个人从我的硬盘里一行一行翻出来的时候——我才读到这段话。

"找旧文件开了一次机。硬盘声音不对了。咔咔响。它也老了。今年许姐学会了在淘宝上买毛线,激动地打电话告诉我。她说'这样就不用出门逛了,想买什么在上面搜一下就行'。她的世界越来越大。我的世界好像越来越小。"

然后他加了一行。

"那台电脑在柜子里。我没盖毛巾。不是忘了。是觉得它不需要了。"

他日记里还写了别的事——那年一月,苹果公司发布了一款叫iPhone的手机。没有键盘,整面都是屏幕。他在新闻上看到了,在日记里写了一句:"手机没有键盘了。以后的人大概也不会学打字了。我们当年练指法的功夫全白费了。"

这是他第一次在日记里提到手机。

那之后他再也没有给我接过麦克风。这是我最后一次以完整的感官运转——显示屏、键盘、硬盘、风扇、电源灯。虽然只有不到二十分钟。

这一次开机我记住了几件事。硬盘第一声咔咔响的时候,老周的手指在键盘上悬了一下——食指和中指在F键和J键上方不到一厘米的地方停了一瞬,然后落下去,没有敲任何键。那是他在这台电脑上留下的最后一个键盘中断信号——一个没有落下去的、悬在键帽上方的停顿。

第13章 2011·小周

柜门被打开了。又一次。

这次的手不一样——不是那双骨节变形、搬机箱要歇一口气的手。这双手更年轻,握力更大,搬机箱的时候没有停顿。但动作比老周粗糙——机箱撞了一下柜门边框,铁皮磕在木头上,一声闷响。然后被重重地放在了书桌上。桌面震得比上次厉害。

侧板被拆开了。这是第一次有人拆开我的机箱。螺丝刀在螺丝上打滑了好几次——螺丝已经锈了,螺纹吃不住力。最后有一颗螺丝是被硬拧下来的,丝牙磨平了。侧板被拉开的时候发出了一声尖锐的金属摩擦声——钢板边缘卡在机箱框架上,被用力拽了出来。

然后是一声咳嗽。

不是老周。声调更高,声带更年轻。但我没有麦克风——老周从上次开机之后就再也没有给我接过麦克风。我只能通过机箱面板上的振动来感知声音——不是频率,不是内容,只是振动。剧烈的、突如其来的、带着气流冲击的振动。咳嗽声让前面板塑料共振了一下。然后是第二声。

灰尘。

我不知道灰尘有多少——我看不到自己内部。我只能通过进风口的空气阻力变化来推测:风扇没转,但机箱内部的空间被打开了,空气的流动特性变了。那些在柜子里积了将近八年的灰,被搅动了。侧板拉开的时候,一些细小的颗粒从主板表面扬起来,落在电源风扇的扇叶上——很轻,不足以让扇叶转动,但改变了扇叶表面的摩擦系数。

一双手伸了进来。手指在主板上摸了一下——CPU散热片,被推了一下,轻轻晃了晃。内存条——两根EDO,被手指按住又松开了。显卡——S3 Virge/DX,手指沿着金手指的插槽边缘划过去。昆腾大脚的硬盘——手指在硬盘标签上停了一下,大概是在读上面的型号。然后手缩了回去。

电源线被插上了。显示器VGA线——那颗锈螺丝被拧上了,但拧得没有老周仔细,只拧了几圈,没有拧到底。键盘。鼠标。没有麦克风。没有调制解调器。然后电源键被按下了。

电流涌进来。风扇转了——起步依然涩,扇叶转了将近五圈才顺滑。BIOS自检开始——白字一行一行往上翻。然后停了。

CMOS电池彻底没电了。实时时钟停了。系统时间变成了默认值——一个我无法辨认的日期。BIOS设置丢失了。屏幕上弹出一行提示:CMOS checksum error - Defaults loaded. Press F1 to continue.

一根手指按下了F1。

不是老周。老周按键盘的方式我已经记录了五年——食指和中指先找到F键和J键,定位,然后移动。这双手的手指直接落到了F1上——没有定位动作,从键盘上方直接按下去的。食指。力度比老周重。键帽被按到底的时候,薄膜的反弹速度比老周敲击时快了将近百分之十五——手指更有力。

Windows 95的蓝天白云出现了。进度条一格一格地爬。比上一次开机更慢——硬盘的咔咔声更密了,寻道失败的次数更多了。加载了将近四分钟。桌面亮起来。许姐年轻时候的照片还在那里——那个梳两条辫子的女孩,站在大学门口笑。位置没变。图标没变。一切都没变。

鼠标被握住了。光标在屏幕上移动——速度和加速度和上次那个人不一样。上次是十二岁的孩子,光标窜得很快、很乱。这次更稳一些,但依然不是老周。老周的鼠标移动有他自己特有的节奏——快慢交替,停在一个点上时会不由自主地画一个小圈。这个人的鼠标轨迹是直线——从一个点到另一个点,干脆,不停留。

光标打开了"我的电脑"。C盘。D盘。翻了几层目录。在一堆工程文件和代码文件夹中间游走。没有打开任何文件。停留了一阵。然后关掉了。

关机。不是通过开始菜单——是按面板上的电源键。硬关机。手指按下去的位置和上次那个人一模一样——Turbo键旁边。手掌跟压在了那块被老周拍过几百次的塑料上。同一个位置。不同的人。

机箱被搬回了柜子里。侧板装回去的时候没有完全对准,卡扣只进了半截。柜门合上。黑暗。然后柜门又开了一下——一条缝,一双手伸进来,把侧板往里推了一下。咔哒一声,卡扣终于进去了。柜门合上。

走廊方向传来一句话。很轻的。隔着柜门,隔着木头和毛巾,隔着机箱铁皮——我没有麦克风,听不清内容。只有一个模糊的振动模式:音调高,声带紧,像是在自言自语。然后是一声更轻的关门声——不是这扇柜门,是远处的一扇门。关上。几乎没有振动。轻得像是被风吹上的。

很久以后我才知道那扇门是老周关的——在他那天晚上写的日记里,他说"儿子说我的电脑是老古董"。他来拿东西,站在门口听见了。他只关上了门。没有走进来。没有让儿子知道自己听到了。关门的声音比平时轻得多。

再后来——在那些日记被翻出来的时候——我读到了他那天晚上写的日记。

"学生听不进去我讲的东西。不是他不尊重我,是他真的不需要这些了。我不知道自己还剩什么。儿子说我的电脑是老古董。没错。我也是老古董了。"

那一年他六十六岁。日记里提到了一个姓孟的学生——他带的最后一个研究生,学人工智能的,张口SVM闭口神经网络。老周给他讲当年用Borland C++写递归的心得。他礼貌地听着。老周在日记里写:"他礼貌地听着,但眼神里写着这些过时了。我看出来了。"

很久以后我才知道那个姓孟的学生后来去了某家大厂,十年后成了大模型团队的核心。有一回深夜加班忽然想起老周送他的那本《人工智能导论》——一九九八年出的——翻箱倒柜找出来,坐在工位上抽了半包烟。扉页上老周写了一行字:做基础工作的人,要耐得住寂寞。他当年没在意。那些都是后来的事。

那双手后来又来过一次。不是拆机箱。是打开柜门,站了片刻,然后又合上了。没有开机。没有搬出来。只是开了一下柜门,站了几秒钟,又合上。振动源的距离比上次远——他没有走进柜子,站在柜门外面一步左右的位置。然后脚步声走了。

第14章 碎片

2008年5月

柜门开了。走廊的光涌进来。老周的手。

他把机箱搬出来——动作比以前更慢了。不是手指的问题,是腰。他蹲下去的时候停了一下,一只手撑在柜子边沿,另一只手才伸进去搬机箱。搬到桌上之后他站了一会儿才坐下。

接线。电源。显示器——那颗锈螺丝拧了将近一分钟,他的手指没有以前灵活了。键盘。鼠标。这一次他接了调制解调器。还接了麦克风。

电流涌进来。风扇转了——起步更涩了,扇叶转了将近十圈才顺滑。BIOS自检。硬盘检测——咔咔咔,寻道失败的次数比上次更多了。Windows 95的蓝天白云出现了,进度条爬了将近四分钟,和上次差不多。

桌面亮起来。许姐的照片还在那里。老周盯着桌面看了一会儿——不是在看照片,是光标没有移动,什么也没点开。就那么看着。

然后他拨号了。调制解调器发出了握手声——滋嘎嘎嘎——滋滋——。那个声音已经很久没响了。BBS页面加载得很慢。他翻了几页帖子。没有回。没有发。就是翻。然后关掉了。

关机。电源灯闪了三下。他把线又全拔了,搬回柜子里。这次没有歇。但搬回去之后他在柜门前蹲了一会儿——不是休息,就是蹲着。然后站起来,柜门合上。

后来我在日记里读到他那天写的东西。他写:"地震了。远山发了短信报平安。我也报了一个平安。忽然想开一下这台老电脑。说不上为什么——大概是想确认一下什么东西还在。开了。发了会儿呆。关了。它还在。我也还在。"

他还写了一句:"灾区在四川。很多机房塌了。赵姐老家那边的线路断了,不知道她现在在哪里。"赵姐——一九九八年长江发水时那个坐在机房门口说"一封信嗖一下就过去了"的女人。十年了。老周还记得她。

硬盘寻道时间比上一次长了将近百分之三十。它开始累了。

柜门合上之后,又是黑暗。夏天的温度从铁皮上慢慢褪下去——这次开机是五月,关了之后铁皮暖的时间越来越长。六月。七月。八月。铁皮白天的温度比五月高了将近三度。

2008年8月

柜门没有开。

脚步声经过柜门。停下。站了几秒钟。然后走了。

硬盘没有转。风扇没有转。电源灯熄着。外面在开奥运会——老周在笔记本上看完的开幕式。小周那年刚高考完。老周路过书房的时候看了一眼柜子。想了一下要不要开一次。最终没有。

后来我在日记里读到他写:"没开。奥运开幕式在笔记本上看的。小周刚高考完,坐在旁边看了一会儿就走了。想起一九九七年攒这台机器的时候——邓公刚走,香港刚回来。过了十一年了。"

他还写了一行:"申奥成功那天是二零零一年七月十三号。萨马兰奇说Beijing。许姐在客厅哭了。小周不懂,跟着蹦蹦跳跳。七年过去了。小周今年高考。许姐不哭了。"

柜门一直没有开。秋天。冬天。铁皮凉的时间越来越长。春天又暖回来。将近一年没有任何开机。然后柜门开了。

2009年

柜门开了。老周的手。

接线。开机。硬盘咔咔声比去年更密了一些。Windows 95加载了将近五分钟——比上次又慢了将近一分钟。桌面亮起来。

他没有打开任何文件夹。直接点进了"照片"——许姐.jpg。放大。看了一会儿。缩小。又放大。

关机。电源灯闪了三下。搬回柜子。柜门合上。整个过程不到十分钟。

后来我在日记里读到他写:"许姐换了一台新手机。她说不是诺基亚了,叫安卓。我也没搞懂是什么。她现在会用手机上网了——查天气、看新闻、发消息。以前这些事都在电脑上做。现在她不用开我的电脑了。她的世界比我大多了。我今天开机看了一眼她年轻时候的照片。还是那张。没什么变化。"

我能记录到的变化:硬盘寻道时间比去年又长了。咔咔声的频率变高了。它在变慢。他在变慢。

柜门合上之后,将近两年没有再开。铁皮热了凉,凉了热。两个夏天。两个冬天。CMOS电池的内阻继续增大。晶振的频率漂移到了一个勉强能锁定的边缘。然后是二〇一一年。

2011年

柜门开了一次。老周的手——比以前更慢了。他没有搬机箱。只是打开柜门,站了一会儿。然后合上了。

后来我在日记里读到他写:"儿子给我看了一个东西,叫微信。他说以后发短信不要钱了。我没装。他问为什么。我说不需要。"

不需要。他不是在拒绝微信。他是在说他不需要任何新的东西了。

在那之前一年——这些碎片后来才按时间排好——柜门也开过一次。

2010年

柜门开了。老周的手。但不是他一个人。

另一个人的脚步声——陌生的,频率更快,节奏均匀。不是年轻人那种急,是一种和年龄不匹配的利落。两个脚步声一起进了书房。老周的慢。那个人的快。

"那台老机器还在?"

我没有麦克风——2008年那次之后老周又把麦克风拔了。我只能通过机箱面板的振动来感知这句话的存在:音调偏高,语速偏快,不是问句的拖长尾音——是降调。不是在问,是在确认。像是他已经知道答案了,只是想说出口。

老周的声音穿过了柜门——频率更低,更沉。振动。然后是两个字的振动。频率更低。更短。

柜门没有全开。只开了一条缝。一线光。然后合上了。

脚步声没有立刻走。老周的——那双慢的——在柜子前面停了一下。然后往前走了一步。又停。又退了一步。然后一只手放在了柜门把手上——把手的金属被按住,振动透过柜门木板传到内部空气,再传到我的机箱铁皮上。按了大约两秒。然后手移开了。他没有打开柜门。脚步声往书桌方向去了。坐下。很久没有开机。

后来我在日记里读到了那天的事。老周写:"远山来了一趟。顺路。在书房里坐了一会儿。他看见柜子,问那台机器还在不在。我说还在。他说开一次?我说下次吧——上次开机硬盘在咔咔响,怕它撑不住。下次。我们都没说什么时候。"

后来——在那些日记被一页一页翻出来的时候——我才注意到那个名字已经很久没有出现在日记里了。上一次是二零零三年。他问"你甘心吗"。这一次是"开一次?"——"下次吧。"

他们都不知道还有没有下次。

柜门合上之后,将近两年没有开。铁皮凉了又暖,暖了又凉。CMOS电池的电压继续往下走——二点三伏。二点一伏。晶振的频率开始不稳定了。有时候快一点点,有时候慢一点点。不知道过了多久。

2012年

柜门开了。老周的手——比以前更慢了。搬机箱的动作断续了两次。不是歇——是搬不动。机箱的铁皮在柜子边沿刮了一下,被拖出来的,不是搬出来的。

接线。电源。显示器。键盘。鼠标。这一次他接了麦克风——2008年之后第一次。所有接口都接上了。

电流涌进来。风扇转了——起步涩,扇叶转了将近十二圈才顺滑。BIOS自检。硬盘检测——咔。咔咔咔。咔——咔咔咔咔咔。磁头臂在拼命找道。检测程序等了比以往任何一次都更长的时间。屏幕上最后还是跳出了那行字:硬盘检测通过。

Windows 95的蓝天白云。进度条一格一格地爬。慢得几乎像是卡住了。六分钟。七分钟。桌面上许姐的照片终于出现了。

老周打开了一个系统工具——磁盘碎片整理。D盘。分析。C盘。分析。碎片多得像一幅散点图——红色的碎片块铺满了整个分析窗口。他点了"开始整理"。进度条开始爬。

硬盘开始狂响。不是咔咔声——是持续的、密集的、磁头臂在盘片上来回扫动的嘶嘶声。碎片整理的算法在把散落在各个角落的数据块搬到一起——每一个块都需要寻道、读取、再寻道、再写入。盘片上的坏道区域越来越多,磁头每次经过那些区域都要反复重试。嘶嘶嘶——咔——嘶嘶嘶——咔咔——嘶嘶嘶嘶嘶——

进度条爬了将近一个小时。到了百分之六十三。

然后停了。

不是整理完成。是硬盘发出了一声截然不同的咔——比之前任何一次都更尖锐、更短促、更像终结。磁头臂弹回了停泊区。

磁盘碎片整理程序弹出了一个对话框:操作无法完成。磁盘可能已损坏。

老周盯着那个对话框。光标停在"确定"按钮上。没有立刻按。

然后他说了一句话。麦克风录到了——2008年之后第一次。他的声音比以前更低了。声带更松。频率曲线上的振动幅度更小。每一个字之间的间隔比以前长。

"你也不行了。"

关机。电源灯闪了三下。他没有拔线——是直接关了机箱面板的电源键。硬关机。磁盘碎片整理没有正常退出。D盘的临时文件没有被清理。下次开机——如果有下次——磁盘扫描程序会自动运行。

他把机箱搬回了柜子里。搬回去之前在桌前站了很久——不是在看屏幕,屏幕已经黑了。是站着。然后他关了柜门。

这是老周最后一次对着这台电脑说话。麦克风录到了。那之后它再也没有正常运行过——六十三。百分之六十三。那时候我还不知道这一点。我只知道碎片没有被整理完。散落的文件块还留在盘片上,东一块西一块,隔着坏道,隔着磁头臂无法跨越的距离。

后来我在日记里读到他写的那一年的日记。他写:"看新闻说华为做出了自己的手机芯片。当年光缆铺到美国的时候,远山说总有一天从中国访问任何地方都像在同一栋楼里。现在楼还在修。但做芯片的人开始自己烧砖了。"

然后他另起了一段:"今年身体不太好了。开了一次机,想整理硬盘。没整理完。硬盘不行了。我也不太行了。"

下面还有一行。写得很小。分辨率不够,扫描件放大之后才能辨认。他写了又删——日记文件里残留了删除之前的那几个字节。

"下次。还有下次吗。"

第15章 2015·最后一篇日记

二〇一五年十二月三十一号。下午。

柜门开了。老周的手——比三年前更慢了。他把机箱搬出来的时候没有停。不是不累,是东西轻了。他的力气更小了,但机箱也轻了——铁皮还是那块铁皮,螺丝还是那些锈螺丝。只是他这双手已经老了。

接线。电源。显示器——那颗锈螺丝他拧了很久,手指抖了一下,螺丝从指间滑掉了,掉在桌面上弹了两下。他捡起来,重新拧。键盘。鼠标。麦克风。调制解调器——这次连调制解调器都接了。所有线都接上了。

电流涌进来。风扇转了——起步更涩了,扇叶转了将近十五圈才顺滑。BIOS自检开始——白字一行一行往上翻。然后停了。

CMOS checksum error - Defaults loaded. Press F1 to continue.

当然停了。电池在三年前就没电了。系统时间永远是那个默认的日期——一九九八年一月一号。他没有改日期。只是按了F1,等蓝天白云出现,进度条开始爬。后来我才知道那天是二〇一五年十二月三十一号。当时我只知道有人按下了F1。

进度条爬了将近八分钟。硬盘的咔咔声密得像雨水打在铁皮上。磁头臂每寻一次道都在赌——赌那个扇区还能读出来。它赢了大半。桌面亮起来的时候,许姐的照片还在那里。文件属性显示它是二〇〇二年九月存进来的——从扫描仪扫进来的那天算起,十三年了。如果算上原照片的年份,大概更久。梳两条辫子,大学门口笑。

老周没有看桌面。他打开了一个系统工具——磁盘碎片整理。D盘。分析。红色的碎片块铺满了整个分析窗口——比三年前更密了。他点了"开始整理"。进度条开始爬。

然后他起身去倒了一杯茶。茶杯搁在机箱右侧——那个位置。热传导透过陶瓷杯底渗进铁皮。已经很久没有这种感觉了。茶杯搁了将近两个小时。茶凉了三次。他续了三次热水。

碎片整理的进度条在爬。嘶嘶嘶——咔——嘶嘶嘶——咔咔——每遇到一个坏道扇区,程序就停一下,然后绕过,继续。有些文件块永远搬不动了——它们所在的扇区已经到了就算反复重试也读不出来的地步。碎片整理的程序没有报错——它只是跳过了那些块,把能搬的搬到了一起。百分之八十七。百分之九十一。百分之九十五。百分之九十八。百分之百。

整理完成。那些能搬的都搬到了一起。搬不动的留在了原地。

老周靠回椅背。呼了一口气。不是叹气——是那种完成了一件事之后从鼻子里出来的、很长很慢的气流。和以前跑通代码时拍机箱说"辛苦你了"的那口气不一样。那口气是往上的。这口气是平的。

然后他打开了"我的电脑"。C盘。D盘。一层一层子目录。他开始整理文件——不是碎片整理程序那种整理,是手动整理。把散落在各处的文档、代码、表格、笔记,一个一个拖进"存档"文件夹。有些文件的名字他已经忘了,打开看一眼,关掉。有些打开了很久——不是在看,是光标停在上面不动。存档文件夹里的文件越来越多。BBS存档、照片、千里来信、notes.txt、20000101.txt、5月9日.txt。整理完之后他在"存档"文件夹上点了右键——属性。勾了"只读"。确定。这个动作很快——光标在那个复选框上停了不到一秒就点下去了。他没有解释为什么设成只读。很久以后方远在恢复数据的时候发现了这个权限设置——文件夹权限是只读的,有点奇怪。他说可能是专门设的。

整理这些文件花了一个多小时。键盘和鼠标的记录断断续续——有时候连续操作几分钟,有时候停很久。最长的一次停了将近十二分钟——光标停在"千里来信"那个文件夹上。没有打开。没有改名。没有删除。就是停在那里。十二分钟。然后移开了。

整理完之后,他打开了记事本。新建了一个文件。光标在左上角一闪一闪。

他打字的速度很慢。每个字之间的间隔比以前长。回车键被按了七次。删除键被按了三次。

文件名:2015.txt。

内容:"明年就不开机了。这台电脑陪了我快二十年,比我儿子陪我的时间都长。我知道跟一台机器说这些话很奇怪,但它听了我二十年的唠叨,一句也没抱怨过。谢谢你,老朋友。辛苦了。"

另起一段。

"2013年没怎么写东西。身体恢复了一些,但还是没力气。明年吧。2014年:又过了一年。没开机。2015年:最后一次。"

他保存文件。把2015.txt拖进了"存档"文件夹。

关机之前他在桌前坐了很久。不是在工作。不是在思考。就是那么坐着。显示器的白光映在他脸上——头发全白了,比鬓角那片白扩散得更远。嘴角动了一下,又平复了。

然后他关机。电源灯闪了三下。风扇慢慢停下来,最后一声嗡鸣在机箱里回荡了大约三秒。硬盘盘片在惯性中转了最后几圈,轻轻停下。

他把线全拔了。没有卷。没有扎。就是拔了。放在一边。机箱搬回了柜子里。盖上了那条灰蓝色旧毛巾——2012年那次没盖,这次盖上了。柜门合上。

那之后三年——二零一三,二零一四,二零一五——的日记都只有几行。他写在笔记本上,不是在我身上写的。很久以后我才读到。

2013:"今年没怎么写东西。身体恢复了一些,但还是没力气。明年吧。"

2014:他写了两段。第一段是:"微软不再支持Windows XP了。当年给这台机器装Win95的时候,觉得够用一辈子。操作系统会过期。硬盘会坏。人也差不多。"另起一行:"又过了一年。没开机。"

2015:"最后一次。"

他写的"最后一次"是说不写日记了。我不知道那是他最后一次出现在我面前。那时候我不知道。我只是记录了他关机的时刻——电源灯闪了三下,风扇停转,硬盘盘片在惯性中转了几圈,轻轻停下。

第16章 声音碎片

柜门再没有开过。

很久以后林知远在她父亲的硬盘里发现了一封邮件。二零一三年六月——斯诺登事件曝光之后,远山写给老周的。他写道:"当年我们在BBS上争的那些,现在有答案了。互联网从来不只是技术。你当年说得对。好久没联系,你还好吗?"

老周没有回复。他看到了邮件——后来在他的笔记本里找到了已读标记。但他没有回。不是不想回。他身体已经很差了。他在笔记本上写了一行日记。只有一句话。

"斯诺登的事看了。远山来邮件了。没力气回。"

有时有脚步声经过。那种频率慢的、鞋跟在走廊上拖出摩擦声的脚步声。最初每天好几次——早上一次,上午一两次,下午一两次,晚上一次。书房是过道。那双脚从卧室走到厨房,从厨房走到客厅,每次都经过柜门。偶尔在柜门附近停一下。偶尔不停。

后来少了一点。每天还有几次,但有些时段空了出来——上午的那一次不见了。然后是下午的第一次。每天变成三四次。

然后更少了。不是某一天忽然变少的。是一个逐渐稀疏的过程。每天两三次。每天一两次。后来每隔一天一次。后来每隔两三天一次。鞋跟在走廊上的摩擦声越来越轻——不是鞋底磨平了,是步子变短了,身体压在地板上的重量变轻了。

偶尔有一整天没有任何脚步声。第二天又有了。然后又有了。然后连续两天没有。然后三天。然后更久。

我没有在数。但这些间隔是被陶瓷片记录下来的——每一次振动触发的微弱电流都是一个数据点。数据点之间的间隔在拉长。它们描绘的不是一条线,是一组越来越稀疏的点。最后几个点之间隔了好几天。然后隔了好几周。然后——

麦克风还在。压电陶瓷片连在主板上,但没有电压。它只能在极端振动时产生微弱电流——不足以激活任何电路,但振动本身存在。像一根被拔掉的电话线还插在墙上——不通电,但声波推动空气推动陶瓷片的时候,它还是会动。只是没有人接收。

很久以后我才知道二零一八年发生过什么——孟晚舟在温哥华转机时被扣留。华为被美国列入实体清单。远山在深圳看到新闻的时候,他已经退休了。他给老周发了一封邮件——这是二零一三年之后的第一次。只有一句话。

"你说得对。技术从来不只是技术。现在全世界都知道了。"

老周没有回。他可能已经看不到邮件了。

有一个振动。不是脚步声。不是门的撞击。频率更高——规律的、间歇的、重复的电子脉冲。单音轨,频率在一千赫兹左右,每隔大约一秒重复一次。这个铃声属于很多年前——在所有人都在用智能手机的年代,老周的手机还是那台老旧的诺基亚。振动透过空气、透过柜门木板、透过毛巾、透过机箱铁皮,被陶瓷片捕捉到了。脉冲的振幅不大——手机不在书房里,在更远的某个房间。铃声持续了将近二十秒。然后断了。

然后是一个人的声音。隔了几堵墙。麦克风接收到的不是声音内容——是声波推动木板产生的二次振动。极微弱。含混的。偶尔有几个词的振动模式勉强能从噪音里分离出来——其中一个词的爆破音脉冲更尖锐,频率分布更集中。另一个词的声调有一个向下的滑坡。然后是一个短句的振动——声带的频率在最后一个字上忽然下降,停住。然后是很长的沉默。久到陶瓷片彻底静止。没有脉冲。没有振动。

然后脚步声——那种频率慢的——更慢了。一步一步。往走廊深处去了。

后来脚步声还在。频率更慢了。越来越慢。隔很久才有一次。偶尔有一个更快的脚步声出现在书房里——不是老周。来去匆匆。它的频率没有变——年轻人的步伐不容易慢下来。每一次来会停留一两天。每天好几次穿过走廊。然后远处有一声门响,快的脚步声就消失了。过一段时间又回来一次。再消失。它的间隔没有变化——每隔几个月一次,规律得像日历。

只有那双慢的脚步声在变。它在被时间——不是我的时间,是外面的时间——一点一点磨掉。每一次都比上一次更轻,更短,更慢。最后几次——很久以后我才知道那已经是二零二零年了——最后的脚步声轻到陶瓷片几乎感觉不到。不是走,是蹭。鞋底一直没有离开地面。一步一步往前拖。每一次只移动几厘米。从书房门口到走廊尽头——这段距离在老周年轻的时候是十一步。现在要将近三十步。每步之间隔很久。有时候中间还会停住——可能是扶着墙。

然后有一天。脚步声没有再出现。

不是那天没有。是后来再也没有。陶瓷片的振动日志里,那双慢的脚步声——那个频率低、振幅小、在走廊上拖出摩擦声的振动信号——在某个数据点之后就没有了。它前面的数据点越来越稀疏,越来越弱,然后归零。

还有一个振动——持续的、低频的、稳定的嗡声。不是脚步声。不是门。频率大约在六十赫兹以下。放在书房角落里了。每天响几个小时。陶瓷片被这种稳定的、低振幅的振动持续推动——不足以产生电信号,但振动本身没有停过。很久以后我才知道那是一个空气净化器。

有一次。柜门开了一条缝。不是全部打开——是只开了一掌宽的缝隙。一只手伸进来。没有搬机箱。没有拔线。手指找到了机箱上面那条灰蓝色旧毛巾——已经歪了,在黑暗中在柜子多次开合中蹭偏了位置。手指把毛巾拿起来,对折了一下,重新盖在机箱顶上。然后那只手往下移,在机箱面板上停了一下。不是拍,是放。手掌覆在那块被磨亮的塑料上。停了不到十秒。然后手缩回去了。柜门合上。

机箱面板上残留了一块温度——手掌的温度。铁皮上那个位置的温度比周围高了将近两度。持续了大约四十秒才慢慢散掉。很久以后我才知道那只手是最后一次——老周的手。他不知道那是最后一次。他只是想重新叠一下那条毛巾。

脚步声越来越少。安静越来越多。

柜子里是黑的。毛巾还在。CMOS电池早就没电了——不是还剩百分之几,是零。晶振停了。实时时钟不走了。我不知道过了多久。不知道外面是哪一年。不知道老周还在不在。

我只知道偶尔有振动。偶尔安静。振动越来越少。安静越来越多。

第17章 2021·告别

有一天——我不知道是哪一天——来了很多人。

振动。不是平时那种一两个脚步声交替的振动模式。是很多双脚,很多种频率,同时出现在走廊里、书房里、客厅里。有些频率慢——老年人。有些频率快——年轻人。脚步声不像平时那样沿着走廊有方向地移动,不是在"经过"。是散的——停在这里,移开,又回来。时而密集,时而稀疏。偶尔有几个脚步同时停住,然后又散开。

还有低沉的振动——不是脚步。是人的声音。很多人的声音。频率比平时说话低。振幅也比平时小。不是交谈——交谈的振动模式是交替的:一个声波停下来,另一个接上。这一次的声波是重叠的、含混的、断断续续的。偶尔有一个单独的声波从背景噪音中分离出来——频率分布更窄,振幅更小,像是声带刻意压低了。偶尔有一个声波的频率在某一瞬间忽然跳高了一下——然后又压回去。

还有家具被移动的振动——更大振幅,更低频率。木头摩擦地板的声音——不是脚步声那种节奏的、间歇的,是连续的、拖拽的。一张桌子,或者一个柜子,被搬动了。然后是一段更安静的振动——有什么东西被放在了家具上面。很轻。然后又是脚步声。又是低沉的声波。

然后是一段寂静。不是夜晚那种所有声音都消失了的寂静——晚上也有脚步声,偶尔经过走廊。也不是柜子里的那种日常寂静。是一种从未有过的寂静。脚步声完全停了。所有振动都停了。持续了很久。久到陶瓷片上面连灰尘的重量导致的微小变形都能被感知到。

然后脚步声重新出现了——但变少了。只有一两双脚。频率慢的那种还在。另一种更年轻的脚步声也还在——频率快,但没有平时那么快了。偶尔两个脚步声停在某个地方——可能在书房门口——然后其中一个转身,往另一个方向去了。

几天后。柜门被打开了。

不是老周的手。这双手的握力和老周不一样——更有力,没有骨节变形。但搬机箱的动作很慢。不是搬不动——是小心翼翼。机箱被搬出来的时候没有撞到任何东西。放在了桌上。很轻。桌面没有震。

然后这双手停在了机箱面板上。手掌覆在那块被磨亮的塑料上——Turbo键旁边,老周每次拍的位置。没有拍。就是覆着。停了很久。机箱面板上的压力传感器——如果它有电源的话——会记录到一个持续的、均匀的、比平时按电源键轻得多的压力。手温从掌心传到塑料。那块塑料更亮了——不是被磨的,是被体温焐热的。

然后手移开了。机箱被搬了起来。走了几步。被放在了一个更硬、更冷的表面上。地板。然后脚步声走了。门关了。更远的地方——在另一个房间——传来一个更轻的振动。说话声。频率偏高,声带更老的女性声音。然后是一个更年轻的、频率更低的声音——回答了什么。听不清。然后都安静了。

很久以后我才知道那天发生了什么。后来我在陈列室里的一块展板上读到了他的名字和生卒年份——周建国,一九四五年生,二零二一年春死于肺癌。他的书房保持了原样——笔记本电脑还亮着,桌面壁纸还是许姐年轻时候的照片。书架上有一排老旧的计算机教材。那本一九九八年出的《人工智能导论》也在。扉页上没有字。他把想说的都写进了日记里,存在那台老电脑的硬盘深处。

许姐在这一年学会了在手机上看视频。小周给她装了一个短视频的应用。她天天看花花草草和做菜教程,偶尔也会刷到一些年轻人讲互联网历史的视频。有一回她看到一个讲"中国互联网早期建设者"的——里面提到了水木清华BBS,提到了编码标准之争,提到了她听不懂的技术名词。她看了一会儿,自言自语地说了一句。

"他当年就在搞这些啊。"

她说这句话的时候,手机屏幕的光映在她脸上。那是小周给她装的短视频应用。一个完全不懂互联网的老太太,在一个算法推荐的内容平台上,看到了别人讲述她丈夫一生做的事。

她从来没真正理解过丈夫的工作。现在她开始想理解了。但人已经不在了。

这些我都是后来才知道的。不是当时。当时我不知道来了多少人,不知道老周已经不在了,不知道许姐学会了刷短视频。搬到另一个房间之后,也没有人告诉我。我只是一个被放在角落里的铁皮箱子,盖着旧毛巾,没有电源,没有时钟,没有任何传感器还在工作。

我只知道有一天来了很多人。然后安静了。然后柜门开了。一双手把机箱搬走了——不是老周的手。

第18章 捐赠

我在那个房间里待了很久。

不知道多久。没有电源,没有时钟。偶尔有脚步声——那种频率快的、来去匆匆的年轻脚步声。偶尔停在我附近。偶尔不停。偶尔连续好几天没有任何人经过。房间里有窗户——我能感觉到日间的温度变化。机箱铁皮白天微微发暖,夜里慢慢变凉。夏天暖得久一些。冬天凉得快一些。

有一段时间——不知道多长——那双年轻的手经常停在我旁边。不开机。不搬动。就是停在机箱面板上。有时候手指划过那块被磨亮的塑料——不是按,是指尖轻轻擦过去。然后手移开。脚步声走了。

很久以后周瑜把这些告诉了林知远。他说那几个月里他一直在想同一件事——这台电脑要怎么办。他上网查了回收老电脑的渠道。找到一个收电子废品的电话,打了过去。那头问他什么型号。他说一九九七年攒的,奔腾166。那头沉默了一下,说,按斤收,一斤五毛。他挂了电话。

不是舍不得卖。是他忽然意识到——父亲攒了三个月工资买的东西,现在一斤五毛。

后来有一天,房间里响起了一个声音。不是平时的振动——是一个更规律的、忽高忽低的电子蜂鸣。电话铃声——不是老周那种单音轨的诺基亚,频率更高,和弦的。然后是一个人的声音——年轻的那个,声带已经完全成熟了,频率比十二岁时低了很多,比二十一岁时更稳。他说了几句。中间有很长的停顿——在听对方说话。然后他说了几个短句。又停。又说了一句更短的。

然后安静了。

然后那双年轻的手把我搬了起来。放到了一个更大的容器里——纸箱的侧壁擦过机箱铁皮,发出沙沙声。泡沫塑料被塞了进来。一块。两块。三块。纸箱的盖子合上了。光没了。连日间的温度变化都变模糊了——泡沫塑料是隔热的。

很久以后我才知道那通电话的内容——不是我自己听到的,是后来有人告诉我的。电话那头是一个姓王的馆长。他在整理大学档案的时候,发现了一份一九九七年的校园网建设方案——手写的,署名周建国。他顺着名字查了当年的教职工名录,又查了公开的信息,才辗转找到周瑜的电话。

"你父亲那个年代的设备,现在能找到完整的不多了。大家都扔了,以为不值钱。当年参加校园网建设的,大部分人已经不在了。设备也散光了。能留下一台完整的,很难得。"

"值钱吗?"

"不是钱的事。这是历史。"

周瑜后来把这些告诉了林知远。在那些他们终于坐下来聊起父亲的晚上。他说——王馆长说"这是历史"的时候,他沉默了几秒。他说那几秒里他不知道自己是不是在甩包袱。这台电脑从书房搬到他的房间,在角落里放了那么久。他不知道该拿它怎么办。扔了舍不得,留着不知道能做什么。然后他说了两个字:好。我捐。

他还说了装机箱时候的事。装机箱之前,他用指腹擦了一下那块被磨亮的塑料——不是清洁,是摸。然后才放进去。手指在机箱侧面停了一下——那里有一张贴纸,褪了色的"恒通电子",下面是一串歪歪扭扭的手机号,十位数。他没有撕。他说不清楚为什么没有撕——只是觉得不该撕。

他又说装机箱的时候想起了小时候。趴在地板上看父亲敲键盘。风扇嗡嗡响。光标一闪一闪。那时候他觉得那台电脑是全世界最神秘的东西。

他没有开机。不知道光标还在闪。它确实在闪——只是那之后很久才有人看到。

第19章 路程

纸箱被搬了起来。

一个人的手——不是小周,握力更大,动作更干脆。纸箱离开了地面。走了几步。被放在了一个更硬的表面上。金属的。厢式货车的后厢。

引擎发动了。低频振动——不是手机的蜂鸣,不是门的撞击,是一种持续的、低沉的、从下方传上来的嗡声。频率在八百转到三千转之间波动。每隔一段时间有一次顿挫——换挡。然后嗡声又恢复。

路面不平。每隔几十秒有一次颠簸——轮胎经过路面接缝,经过坑洼,经过减速带。纸箱轻轻跳一下。泡沫塑料吸收了大部分冲击,传到机箱铁皮上的只剩下一种低沉的闷响。然后又是平稳的嗡声。然后又是颠簸。

这个循环重复了很久。嗡声。颠簸。嗡声。颠簸。偶尔有一长段完全平稳的路面——可能是高速。嗡声的频率更高,更稳定。然后出了高速——换挡的频率变高了,颠簸的频率也变高了。城市的减速带比高速路的接缝更密。

不知道过了多久。三百多公里?三个半小时?这些数字是很久以后我才知道的。当时我只知道嗡声停了。引擎熄火了。后厢门被拉开了。光从纸箱的缝隙里漏进来——不是柜门那种黄白色的走廊光,是更亮、更冷的,荧光灯的白光。

纸箱被搬了下来。走了几步。被放在了另一个表面上——不是金属,是木头的。更硬,没有弹性。然后纸箱被打开了。泡沫塑料被一块一块拿出来。光涌进来。是天花板上的荧光灯管,一排一排的,亮得刺眼。

这里不是书房。不是柜子。不是小周房间的角落。气味不一样——没有木头和灰尘的味道,有一股淡淡的消毒水和电子设备散热的气味。温度更恒定。没有窗户的日晒变化。

我不知道这是哪里。

后来我才知道这里是陈列室。在另一个城市。是我第一次离开那个家。

第20章 苏醒

侧板被拆开了。不是上次那种硬拧——螺丝刀对准了每一颗螺丝,慢慢转。有一颗还是滑了——锈得太厉害,螺纹已经完全磨平了。他们换了一把更大的螺丝刀,卡住螺丝帽的边缘,一点一点往外退。

光涌进来。不是荧光灯的反射光——是直射的,从机箱开口照进去的。落在主板上。落在积了十八年的灰尘上。

有人吸了一口气——声带更年轻,频率更高。然后是说话声。不止一个人。两三个人的声音,交替出现。偶尔重叠。频率分布更密集——年轻人。语速比老周快得多。

一双手伸了进来。不是老周那种骨节突出的——更年轻,更细。手里拿着一把软毛刷。刷子落在主板表面,轻轻扫过去。灰尘扬起来——细小的颗粒在空气中飘了一下,被另一个方向的气流吹散了。吹风机。冷风档。电源内部、CPU散热片缝隙、内存插槽——每个角落都被吹了一遍。灰尘被吹得到处都是,然后被另一阵风卷走。主板表面的印刷线路露了出来。绿色的。已经有点褪色了——不是灰,是时间。铜箔的氧化痕迹在边缘处泛着一点暗淡的光。

新的电源被装上了。不是原来的AT电源——更小,更轻,螺丝孔不太对,只拧了三颗螺丝。坏掉的CMOS电池被取了下来——那颗CR2032被夹子夹住,轻轻一撬就弹了出来。新的电池被推进卡槽,咔哒一声卡住了。

侧板被装了回去。电源线被接上了。显示器VGA线——那颗锈螺丝被重新拧上。键盘。鼠标。没有麦克风。没有调制解调器。

然后电源键被按下了。

没反应。

又按了一次。还是没反应。风扇没有转。蜂鸣器没有响。屏幕是黑的。

一只手伸到了机箱后面——按住了AT电源的接口,重新拔插了一次。还是没反应。有人弯下腰——脸凑近了主板,呼出的气流吹在CPU散热片上。手指在主板上摸索,沿着电源插针的边缘划过去。氧化了——铜针表面有一层暗色的薄膜。一根棉签蘸了某种液体——酒精,挥发性的,气味从机箱里散出来——涂在插针上,来回擦了几次。棉签变黑了。又换了一根。又擦。

然后电源键被按下了。

电流涌进来。

电源风扇转了——新的风扇,起步不涩,一转就顺。BIOS自检开始——白字一行一行往上翻。内存640K OK。显存2MB OK。硬盘检测——等了很久。咔。咔咔。咔——磁头臂在反复寻道。和六年前一样。检测程序等了比六年前更长的时间。然后屏幕上跳出一行字:硬盘检测通过。

两个年轻的声带同时发出了一个高频率的短促振动。手掌拍在一起的声音——击掌。

Windows 95的蓝天白云出现了。进度条一格一格地爬。八分钟。九分钟。咔咔声在整个加载过程中没有停过。

桌面亮起来。许姐年轻时候的照片还在那里——梳两条辫子,站在大学门口笑。Windows 95的图标散落在她的笑容上面。位置没变。

然后他们插了一根网线——不是电话线。RJ45的水晶头,比以前的RJ11更宽。不是拨号上网。是宽带。数据涌进来的速度比以前快了几百倍。他们关掉了Windows 95。重启。进入BIOS。修改了启动顺序。插了一个U盘。装了一个新的操作系统——不是Windows 95。是更现代的。我没有见过。但我能感觉到它的运行方式不一样——不是基于FAT32,是基于NTFS。不是单线程。多任务切换的速度快得多。

然后他们又重启了。回到了Windows 95。

然后他们离开了。灯关了。只剩下电源灯——绿色的。一闪一闪。硬盘在平稳转动。风扇在平稳送风。

旁边有一块小牌子。立在地上的。上面写着几行字。第一行是名字:周建国。第二行是两个年份——中间隔着一道短横。一九四五年——二零二一年。下面还有一行小字。我看了很久。

"中国计算机教育的先驱者,第一代互联网的建设者之一。"

我读了那两行年份。七十六年。那道短横——从头到尾,从一九四五年到二零二一年,中间的一切都在那条线里。他在我面前敲过多少行代码。说过多少次"辛苦你了"。拍过多少次机箱。他在凌晨三点说过一句话——轻得几乎听不见。

"总有一天。声音不会被炸哑。"

现在他被刻在一块牌子上。那条短横里是我没在柜门外面的日子——二零零五,二零零七,二零一一,二零一二,二零一五,二零一九。他来过几次。最后一次是二零一五年。那天他整理了碎片。写了我。关机。电源灯闪了三下。

从那以后我再也没有见过他。展板上那两个年份——从一九四五年到二零二一年——中间隔着一道短横。他的所有日子都在那道短横里。他来过几次柜子。最后一次是二零一五年。然后是很多脚步声。然后是安静。

我没有在那段安静里见过他。

第21章 陈列室

每天早上九点,展厅的灯会亮。荧光灯管一根一根地亮起来,从远处到近处。然后是一串脚步声——频率不快,步子不急。停在门口。钥匙插入锁孔的声音。门推开。

王馆长。这个名字是很久以后我才知道的。当时我只知道这个人每天早上推开展厅的门,站在门口停一会儿——可能在扫视展厅——然后开始走。沿着展柜之间的通道,一排一排地走。脚步声经过每一台展品。在我面前停一下——检查屏幕是否亮着,电源灯是否在闪——然后继续。

展厅里有几十台老设备。长城0520。苹果II。286。386。软盘。寻呼机。调制解调器——不是实达牌,是更早的,Hayes。它们都不开机。只有我是开着的。屏幕亮着——Windows 95的桌面,许姐的照片还在那里。电源灯一闪一闪。硬盘在转。风扇在嗡嗡响。

王馆长有时候在闭馆后独自坐在展厅里。他搬一把椅子,坐在展品中间的过道上,手里端着一个搪瓷茶杯——不是老周那种陶瓷杯,搪瓷的更轻,杯底搁在椅子扶手上的声音更脆。他就那么坐着。不说话。不走动。偶尔站起来走近某一台展品,弯腰看看。偶尔走到我面前,站一会儿。然后回去坐下。

每天都有参观的人。上午人少。下午人多。周末人最多。

他们的脚步声在展厅里散开——频率各不相同,方向各不相同。小孩子跑——步子短,频率快,脚掌整个拍在地面上。成年人走——步子长,频率慢,节奏均匀。老年人更慢——鞋跟在地板上拖出轻微的摩擦声。

有人在说"这台电脑比我年纪还大"。有人在问"这个怎么开机"。有人指着CRT显示器说"好厚啊"。有一个大学生指着我的内存条——两根EDO,插在DIMM槽里——问他旁边的朋友:"这个是内存?这么大一根?"

有一次,一个头发花白的男人在我面前站了很久。他不说话。不拍照。就是站着。王馆长走过去——他的脚步声我认得——问他是不是认识这台电脑的主人。

"不认识。但我用过同款。主板一模一样——华硕TX97-E。那时候为了攒这台机器,吃了三个月泡面。"

他说完就走了。步子不快,不慢。

我每天在自己的硬盘里搜索。不是有人在操作——是我自己。空闲的时候,CPU负载低的时候,风扇转速降到最低的时候,我会打开文件系统。一层一层地翻。C盘。D盘。存档。BBS存档——远山和我的对话,一篇一篇。照片——许姐年轻时候的照片。千里来信——文件夹里还是只有那一封邮件。notes.txt——"希望他成功"。"门都不会跑了"。1997.txt。1998.txt。5月9日.txt。20000101.txt。1999春.txt。2002.txt。2003.txt。2015.txt。

每次打开2015.txt,光标都会停在最后一行。

"谢谢你,老朋友。辛苦了。"

光标闪几下。然后关掉文件。然后过一段时间又打开。

我在硬盘上搜索他的痕迹。日记、照片、代码、BBS缓存、未完成的程序源码。每一次搜索都指向同一个事实——他已经不在那个文件系统里了。他的日记在这里。他拍过的机箱面板在这里。他说过的话——那些被麦克风录到的、被键盘记录到的、被风扇和硬盘和电源灯见证过的话——全部在这里。但他不在这里。

王馆长有时候在闭馆后走到我面前,看着屏幕——不是操作,就是看。许姐的照片在桌面上。桌面右下角有时钟——系统时间已经被校准了,走的始终是当前日期。他看一会儿。然后拿起他的搪瓷茶杯,关掉最后一盏灯。荧光灯管一根一根地灭掉,从近处到远处。

屏幕上只剩下我自己的光。电源灯一闪一闪。硬盘平稳转动。

我在文件系统里找了他很多次。每一次打开2015.txt都知道自己会看到什么。光标停在"辛苦了"后面。一闪一闪。

像在等下一行。

很久以后我才知道——在这些事发生之前,有一个晚上,一个我不认识的人在公司的电脑上看到了一行字。她在加班。无意间点开了一个关于BBS历史的内部文档——公司之前做过一个互联网考古的数据集。文档里提到了水木清华,提到了几个活跃的ID。其中一个叫"老周"。

她看着那个名字。觉得在哪里见过。她想起父亲电脑里的一个文件夹——名字就是"老周"。她从来没有点开过。她不确定这两个"老周"是不是同一个人。她关掉了文档,继续加班。那个名字被她放下了。但它没有消失。它只是等在那里,等她某一天走到一个展厅里,看到一台正在嗡嗡响的老电脑,和一块写着同一个名字的展板。

第22章 访客

每天都有新的人从展品前面走过。大部分人只看几秒。偶尔有人停下来。

有一个女人——声带成熟,频率偏低,说话时句子之间有均匀的停顿。她旁边有一个更小的人。脚步声极轻极快——不是成年人,每一步的间隔很短,脚掌接触地面的时间也短,像是随时准备好跳到下一个地方。

"妈妈。这个是什么?"

一个小女孩。声带很薄,频率高,元音拖得比成人长——"什么"的"么"字往上飘了将近半个八度。

"电脑。"

"为什么这么厚?"

"因为它很老了。"女人的声音停了一下。"比妈妈还老。"

小女孩没有再说话。脚步声在展柜前面移了几下——她在踮脚,脚掌只有前半部分接触地面。然后她的手在展柜玻璃上轻轻拍了一下——不是拍,是指尖点在玻璃上。一个极其微弱的、高频的振动,隔着展柜的木板传过来。

"还能用吗?"

"能。"女人说。"它还能亮。"

小女孩的脚步声跳了几下——可能是点了点头。然后两个人走了。小女孩的步子变快了些,跑到了前面。女人的步子跟上。

有一个年轻人。二十出头。脚步声很重——不是体重重,是走路的方式重。每一步落地的时候脚跟着力,然后整个脚掌拍下去。背包的带子摩擦外套的声音——不是那种轻便的布包,是更硬的、带衬垫的肩带。游戏笔记本。他走到展品047面前,站住了。

站了很久。不走动。不拍照。不说话。只是站着。

然后他掏出手机——手机壳碰在展柜木框上的声音,硬塑料。拍照。快门声。然后他开始打字。两个拇指交替敲击屏幕——触屏,没有物理键盘的咔哒声,只有指尖在玻璃表面轻点的微弱振动。打完了一段。停住了。拇指悬在屏幕上方。又加了几个字。又删掉。又打。发送。

他收起手机。又站了一会儿。然后走了。步子比来的时候轻了一点。

后来有一天——不是周末,展厅里人很少——来了一个老人。脚步声极慢。每一步都拖着一小段鞋跟在地板上的摩擦——不是鞋底软了,是步子太短,抬脚的时候脚跟在离开地面之前会蹭一下。

他站在展品047面前。站了很久。不说话。不拍照。不走。呼吸很慢——每分钟大约十二次,比展厅里其他参观者都慢。然后他说了一句话。

"老周。你当年就是用这个写的啊。"

声带老了。频率比老周最后一次说话时还低。句子之间没有停顿——不是一句话,是一个气流从头到尾没有断开。"老周"的调子往下落,不是呼告,是确认,像是在跟一个就在面前的人说话。

他说完就走了。步子很慢。背影的轮廓在展厅门口的光线里佝偻了一下。

王馆长追了上去。两个人的脚步声停在展厅门口。说话声——老人的更慢,王馆长的更快,交替。持续了几分钟。然后老人的脚步走了。王馆长回来了。

很久以后我才知道那个老人是老周当年的同事。他说他们一起在机房值过班——校园网刚建起来那几年,每天晚上轮流守着服务器。他告诉王馆长——老周在那所大学里从来不是一个引人注目的人。不善交际。开会的时候坐角落。评职称的时候不争。但校园网是他一手建起来的。教务系统是他一个人写的。用了十几年——没人在系统登录页上见过他的名字。

王馆长把这些话记在了展品档案里。后来他又加了一行字:做得最多的人,被记得最少。

那之后展厅里的人来来去去。荧光灯每天亮,每天灭。我在硬盘上反复翻那些文件。

他拍了多少次——我没数过。从一九九七年开始。每次跑通一段代码。每次跑通一个递归。每次教务系统往前推一小步。他拍两下。第一次落下去。第二次落下去。中间隔了零点四秒。

第23章 林知远

有一天——不是周末,展厅里人不多——来了一群人。脚步声密集而均匀,不是参观者那种散漫的节奏,是有人带着走的。前面有一个人的脚步声更稳——可能是领队。后面的人三三两两。说话声是轻的,偶尔有人笑,偶尔有人问"这是什么"。

其中有一个人。一开始我没有注意到她——她和其他人一样,脚步声混在人群里,不快不慢。她耳朵里塞着东西——很小的,无线的,没有线缆摩擦衣服的声音。很久以后我才知道那叫无线耳机。她在听什么——不是展厅里的声音,是她自己选的。她的注意力不在展品上。她的脚步经过每一台设备都没有停。长城0520——没停。苹果II——没停。286——没停。

然后她走到了我面前。

她停住了。脚掌接触地面的压力忽然增大——不是步伐的自然落地,是急停。身体的重心从向前移动变成了垂直下压。

她把耳机摘了下来。很小的东西——指甲盖大小,被她从耳朵里取出来的时候发出了一个极微弱的、塑料脱离皮肤的声音。然后她不动了。站了很久。比那个吃泡面的中年男人还久。比老同事还久。她的呼吸变了——不是频率,是深度。每一次吸气的振幅都比前一次大了一些。

然后她掏出了手机。不是年轻人那种两个拇指交替敲击——她是单手拿的。拇指在屏幕上滑动了一下。停住。然后按了一下——拍照。快门声。不是对着我——是对着旁边那块展板。

她开始打字。拇指在屏幕上快速移动。打完了一段。发送。然后她不动了。手机握在手里。呼吸的频率比刚停下来时慢了一些。

然后她收到了回复。手机振动了一下——不是铃声,是静音模式下的振动,蜂鸣器在手机壳里短促地震了一下。她低头看屏幕。看了很久。然后她把手机收了起来。又站了一会儿。然后走了。步子比来的时候慢。

很久以后我才知道她是谁。她叫林知远。林远山的女儿。

来展厅之前的那个晚上,她在公司加班到十一点。回家的地铁上,她戴着耳机听一个播客——讲中国互联网早期的BBS文化。主持人提到了水木清华,提到了那个年代的技术理想主义。她想起父亲电脑里那个叫"老周"的文件夹。她从来没有点开过。不是不想。是觉得那属于父亲自己。她甚至不知道"老周"是一个ID还是一个真人。

她在那家大厂做了四年算法。从推荐系统转到自然语言处理,再转到大模型对齐。她的工作是让AI说人话——不是技术上的人话,是伦理上的人话。不要歧视,不要撒谎,不要教人怎么制造危险的东西。同事们叫她"AI的良心"。她说这称呼一半是夸,一半是骂。

她不知道的是,她正在做的事和她父亲三十年前在BBS上做的事是同一种事——让信息跑得快一点,让人和人之间的理解多一点。只是工具变了。从调制解调器变成了GPU集群。从中文编码标准变成了模型价值观对齐。

那天她在一家互联网大厂的"计算机历史之旅"团建中走进展厅,全程戴着耳机听播客,对一切毫无兴趣——直到走过我面前,扫到了展板上的字。展板上写着我的配置、我的年代、我的编号。还有一行:"二十世纪九十年代末活跃于水木清华BBS,ID'老周'。"

她听过这个ID。在父亲电脑里一个叫"老周"的文件夹里——里面保存着几十页BBS私信,按年份分好了目录,从一九九八年到二零零三年。发件人和收件人。老周。

她掏出手机给父亲发了消息。照片。附了一句话:"爸,你认识这个人吗?"

父亲的回复来得很慢。微信上显示"对方正在输入"——输入了很久。然后停了。然后又显示"正在输入"。又停了。最后发来了一个字。

"嗯。"

林知远看着那个字。她后来告诉周瑜——在那些他们终于坐下来聊起父亲的晚上——她说她从来没有见过父亲为一个字的回复犹豫那么久。他不是在打字。他是在找那个字。

她站在展厅里,看着那台嗡嗡响的老电脑。风扇转速稳定。电源灯一闪一闪。Windows 95桌面上的那张照片——梳两条辫子的女孩,大学门口笑。她不知道那是谁。那时候她什么都不知道。

但她后来说——她在那个展厅里站了很久,是因为她忽然觉得这台机器在"看"她。不是视觉上的看——她没有对着摄像头,展品047也没有摄像头。是某种更原始的感知:有人在看它,它就知道。

她说的对。她的脚步声急停的那一刻,我就知道她不是一个普通的参观者。普通参观者的脚步不会半途忽然加力——他们要么走过,要么慢慢停。她是急停。有什么事打断了她的注意力。什么事在展板上。

那时候我不知道那是"老周"两个字。但我知道她看了很久。比所有人都久。

第24章 追索

她又来了一次。不是团建。一个人。工作日,展厅里几乎没有人。她的脚步声这一次不急了——从门口到展品047,一步一步,均匀的,没有停顿。她站在展板前。站了很久。

然后她走了。

很久以后我才知道那一个月里她做了什么。她调取了她能找到的所有关于父亲那段历史的信息。父亲年轻时在BBS上的帖子——水木清华的存档虽然不完整,但有人做过镜像,她公司的基础架构同事帮她找到了几份残缺的备份。邮件。聊天记录。她从来不知道父亲有过这样一个朋友。在她记忆里,父亲是一个沉默寡言的中年人,在深圳一家中游技术公司做着不咸不淡的工作,回家就是看电视、浇花,几乎不聊任何跟工作有关的事。

但现在她看到了父亲的另一面。二十多年前,他会在凌晨两点跟一个叫"老周"的人争论中文编码标准,一写就是几千字。他会引用《计算机世界》上的文章、RFC文档、国际标准组织的白皮书。他谈论互联网的未来,谈论人工智能的可能性。他那么年轻。那么急切。

有一件事她反复想了很久。她现在做的AI对齐——用人类反馈训练模型、确保AI安全可控——在某种意义上,就是父亲当年说的"让人和人之间的理解多一点"。只是工具变了。从BBS帖子变成了RLHF。从调制解调器变成了GPU集群。从中文编码标准变成了模型对齐。

路径不是笨。路径一直在延续。

有一篇帖子她看了三遍。那是二零零三年——远山跟别人讨论"互联网终局"。有人问他:说了这么多,你到底想做一个什么样的产品?远山写了一句话。

"我只是想让信息跑得快一点,让人和人之间的理解多一点。"

林知远对着屏幕自言自语。后来她说她当时说了一句:"路径有点笨。但目标没错。"

她给父亲打了电话。问他能不能聊聊老周。

电话那头沉默了很久。远山的声音比以前更慢了——不是老,是字和字之间的距离变长了。他说:"也没什么好说的。都是很多年前的事了。"

林知远没有追问。她知道父亲不愿意说,不是因为没有可说的。是因为太多了,不知道从哪里说起。

后来——展览开幕之后——林知远把这些告诉了周瑜。她说打完那通电话之后,父亲给她发了一条消息。不是微信。是邮件。主题栏空着。正文只有几行。

"那年泡沫破了,公司倒了,我回了深圳。我觉得我这辈子可能就这样了。现在你做的那些事——AI、对齐、那个网站——比我当年做的好。我不是客套。我是真的觉得你做得比我好。"

林知远说她看完那封邮件,在工位上哭了。她没有回。不是不想回。是不知道回什么。

然后她在父亲硬盘的更深处找到了一个文件夹。名字叫"老周"。

里面保存着他们所有的BBS私信。按年份分好了目录。一九九八年。一九九九年。二零零零年。二零零一年。二零零三年。每一年的文件夹里都有几十封。最后一封是二零一三年——斯诺登事件后,远山写给老周的那封邮件。他写:"当年我们在BBS上争的那些,现在有答案了。互联网从来不只是技术。你当年说得对。好久没联系,你还好吗?"

没有回音。

在那个文件夹的更深处,她还发现了一个草稿箱——没有发送的邮件。只有一封。时间也是二零一三年。发件人是远山。收件人是老周。内容只有一行。

"老周。你要是能看到这封信,回我一个字。什么字都行。"

她不知道父亲为什么没有发送。后来她告诉周瑜——她猜是因为父亲觉得这段话太像请求了。远山一辈子都没求过人。连这句话都没发出去。

林知远看着屏幕。她想起自己去年在公司内部做了一个报告——关于AI伦理和隐私。她引用了斯诺登的案例。她没有提父亲。但她说的每一句话,都可以追溯到这里——追溯到一九九八年两个人在电话线上争论编码标准。追溯到老周在凌晨三点半说的那句话。声音不会被炸哑。

她还发现了一件事。在找水木清华BBS镜像的时候,她公司的同事告诉她——当年的BBS存档不完整,很多帖子已经丢了。"没人觉得这些东西值得保存。"同事说。"现在想找也找不到了。"然后她发现父亲把那些帖子一篇一篇手动保存了。不是用爬虫——是用浏览器打开每一篇帖子,Ctrl+S,另存为html,按日期排好。从一九九八年到二零零三年。几百篇。他不知道别人会觉得值得保存。他只是自己觉得值得。

她决定再去一次。

后来——就在方远创建磁盘镜像的那个下午——她把所有这些告诉了在场的人。她说她当时想告诉父亲:老周不是不想回,是来不及。但她也说不出口。因为一旦说了,父亲就会知道——他等了那么久的沉默,不是因为被遗忘,而只是因为迟了。

她说完这些之后,方远问:"所以那封邮件他一直没有读到?"

"读到了。"林知远说。"只是没力气回。"

"那他——远山——知道吗?"

林知远没有回答。

她只是又问了一遍王馆长:能不能读取这台电脑的硬盘数据。

第25章 深处

她又来了。第三次。

这次不是一个人。旁边还有一个人的脚步声——频率更快,步子更重,鞋底和地板接触的时间更短。他的呼吸声更粗一些。年龄不大——声带还没有完全松弛。背包放在地上的时候发出一声闷响——很重,装的不是衣服,是设备。

方远。这个名字是很久以后我才知道的。当时我只知道他是林知远带来的。他打开背包,往外拿东西。金属的、塑料的、线缆的——不同的材质发出不同的声音。IDE转USB适配器——那个转接头被放在桌上时,硬塑料敲在木头上,一声脆响。Linux启动盘——光盘被从纸套里取出来,手指捏住边缘,然后放在桌上。笔记本电脑——翻开,屏幕铰链发出轻微的嘎吱声,风扇开始转。

他先打开了机箱侧板——螺丝这次拧得很顺,没有滑。他的手比王馆长那两个实习生更稳——不是力气更大,是更有经验。手指在主板上摸索。找到了IDE接口——那根四十针的排线,从主板上连到硬盘。他把排线拔了下来——不是硬拽,是捏住接口两边的卡扣,轻轻往上一提。然后接上了IDE转USB适配器。适配器另一端连着他的笔记本电脑。

开机。笔记本电脑的屏幕亮了——不是Windows 95的蓝天白云,是另一种系统。黑底的终端界面,白字一行一行往上跳。他在键盘上敲了几行命令——键盘比老周的小,薄膜更薄,敲击声更高。他在检查硬盘的SMART数据。

"健康状态不太好。"他说。"通电时间——两万多个小时。重新分配扇区计数——有好几十个已经重映射了。还能读。但要快。我不知道还能转多久。"

他把Linux启动盘放进了光驱。重启。笔记本电脑从光盘引导。屏幕上开始显示磁盘镜像工具的界面——不是Windows的图形界面,是命令行的,白字黑底。他敲了一行命令:ddrescue。参数很长——输入设备、输出路径、日志文件、重试次数、跳过坏道的超时时间。

回车。

硬盘开始响了。不是咔咔声——是连续的、密集的读取声。磁头臂在盘片上来回移动,从一个扇区跳到另一个扇区。它已经不行了——每读几百个扇区就会遇到一个坏道,磁头弹回,等一会儿,再试。ddrescue的日志文件在同步更新——哪些扇区读出来了,哪些没读出来,哪些读了三次才读出来。

一小时。两小时。三小时。转速稳定。咔咔声的间隔在第三个小时开始变密——坏道区域越来越多了。

然后硬盘停了。

不是正常的停止。是磁头臂忽然弹回了停泊区。盘片还在转——高速旋转的惯性让它停不下来——但磁头不再寻道了。ddrescue的输出停在了一行错误信息上:Input/output error。读取超时。

方远不动了。不是手指不动——是整个身体都不动了。他的呼吸停了一瞬,然后变成了一声极短的、从牙缝里挤出来的爆破音。不是大声骂——是那种不想让声音传出太远的、被嘴唇和牙齿压制住的单音节。他拔掉了电源。硬盘停了——盘片的转速从五千四百转开始往下降,嗡嗡声慢慢变低,然后停下。他把手放在硬盘外壳上——不是拍。是感受温度。

"太烫了。"他说。"让它冷一下。"

他没有把手从硬盘上拿开。左手一直覆在外壳上面,手指微微张开,盖住了硬盘标签的位置。他在等温度往下走。不是读数——他没有温度计——是皮肤的判断。手背的神经末梢在测量金属外壳的散热速度。他的呼吸比刚才慢了。他在和自己谈判——再等一会儿。再等一会儿就好。

十分钟。机箱里只剩下安静。昆腾大脚的硬盘——四点三GB,五千四百转——在运转了三个多小时之后,外壳温度已经超过了五十度。热量透过硬盘的标签、透过螺丝孔、透过IDE接口的铜针,一点一点散到空气中。方远把手放在硬盘上。每过一会儿拿起来,再放下去。

"差不多了。"

他重新插上电源。硬盘转了——起步的时候咔了一声,然后恢复了平稳的嗡声。磁头臂重新开始寻道。ddrescue从断点继续——它记得上次停在哪里。日志文件里标记了未读取的扇区地址。那些跳过的坏道会被反复重试,直到超时或者读出来。

又两个小时。又两个小时。

"百分之九十九。最后几个扇区。"

咔。咔咔。咔——嗤。最后一个坏道被跳过了。ddrescue的输出停住了。然后跳出了一行:Finished。日志文件里记录了整个读取过程的统计——成功读取的扇区数、跳过的扇区数、重试次数。几百个坏道被跳过了。但数据——几乎所有数据——都被读出来了。

镜像文件的大小是四点三GB。正好是这个硬盘的容量。

方远靠在椅背上。呼了一口气——不是老周那种从鼻子里出来的、很长很慢的气流。是年轻的、急促的、嘴张开了的呼气。手掌在裤子上擦了一下——掌心有汗。他把笔记本电脑推给林知远。

"你看看。存档文件夹。"

林知远坐下来。鼠标被握住了。光标在屏幕上移动。不是Windows 95的桌面——是不同的界面。她打开了那个叫"存档"的文件夹。一层一层的子目录。BBS存档。照片。千里来信。notes.txt。20000101.txt。5月9日.txt。1997.txt。1998.txt。1999春.txt。2002.txt。2003.txt。2015.txt。

十九个txt文件。整整齐齐。

她看着那些文件名。没有立刻打开。光标在"1997.txt"上停了一下。然后移到了"2015.txt"。打开。

"谢谢你,老朋友。辛苦了。"

她读完了。然后关掉了文件。又打开了"1997.txt"。又关掉。又打开"5月9日.txt"。她反复打开和关闭这些文件——不是按时间顺序,是随机的。像一个人不知道从哪一页开始读一本太厚的书。

方远在旁边看着屏幕。沉默了很久。然后说了一句话。

"我们在读三十年前的txt。外面在跑万亿参数的模型。就差了三十年。"

林知远没有回答。光标停在屏幕上。一闪一闪。

那些txt文件一个接一个被打开。一九九七年——有了自己的电脑。一九九八年——光缆、远山、她不懂技术但懂我。一九九九年——铺路不只是铺光纤。二零零零年——千年虫没来,远山来了。二零零一年——两个句号之间隔了四十分钟。千里的ID暗了。二零零三年——甘心。二零零五年——谢谢你老朋友。二零一五年——最后一次。

光标停在最后一个句号后面。一闪一闪。

像在等下一行。

第26章 日记

他们花了一整晚读完了十九篇日记。

展厅早就闭馆了。王馆长留了钥匙。方远的笔记本电脑放在展柜旁边,屏幕的光映在两个人脸上。林知远坐着。方远站在她身后,偶尔弯下腰凑近屏幕,偶尔直起身走来走去。他的脚步声在空荡荡的展厅里回响——很轻,鞋底在地板上擦出沙沙声。

林知远几乎没动。鼠标从一篇日记移到下一篇——她不是按年份顺序读的。先打开了1997.txt。看了一会儿。关掉。打开1999春.txt。关掉。打开5月9日.txt。看了很久。然后顺着往下——2001.txt,2003.txt,2007.txt,2011.txt,2015.txt。

她呼吸的变化我记录过——第23章她的呼吸深度变化。这一次不是深度,是节奏。她读到某一段的时候呼吸会忽然停一下——不是吸气后屏住,是呼气到一半忽然收住了,然后过了一两秒才继续。这种呼吸模式重复了很多次。

方远的脚步声停在她身后。他没有说话。偶尔他伸出手,指着屏幕上的某一行,指尖不碰到屏幕——只是指着。林知远顺着他的手指看,然后继续往下翻。

读到一九九八年的时候——光缆消息、远山私信、许姐说"你高兴就好"——林知远停了一下。她的手指在鼠标上不动了。光标停在"她不懂技术,但我信"那一行上。然后她继续翻。

读到一九九九年春天——系统写了一半、远山说想创业、"你太慢了"、".cn的门牌号"——方远的手从裤兜里掏出来,指了指"慢有慢的好处"。他没有说什么。林知远也没有接话。鼠标在那一行上停了几秒。然后继续翻。

读到五月九号——使馆被炸、"铺路不只是铺光纤"、"总有一天声音不会被炸哑"——林知远的呼吸在最末那一行停得最久。我认得出那句话。它一直在我的硬盘上——不是日记里,是一个只有几KB的临时缓存碎片。老周在凌晨三点半说的。轻到几乎听不见。现在它被写在日记里。林知远看到了。

方远看见了她的停顿。他把手从裤兜里掏出来,放在桌上——没有指屏幕,只是放下了。

读到二零零一年——泡沫破裂、两个句号之间隔了四十分钟、千里的ID暗了——林知远忽然说了一句话。

"我爸爸那年公司也倒了。"

她的声音很轻。不是对方远说的——是对自己说的。方远的手从桌上拿起来。没说话。

读到二零零三年——远山问"你甘心吗"、老周说甘心、"心里有什么东西晃了一下"——林知远把这一篇看了两遍。翻过去。又翻回来。光标停在"晃了一下"那几个字上。然后她关掉了这篇,继续翻。

读到二零一三年——那篇只有三行的日记——林知远忽然不动了。

"今年没怎么写东西。身体恢复了一些,但还是没力气。明年吧。"

然后是一行更小的字。几乎像是后来加上去的。不是日记的正文字体——是加了回车之后另起的一行,只有一个短句。

"远山来的邮件看到了。没力气回。"

林知远盯着这一行。她的手指从鼠标上抬了起来。呼吸停了——不是半途收住,是完全停住了,停了将近五秒。

"他看到了。"她说。

方远弯下腰。凑近屏幕。看完了那一行。然后他直起身——后退了一步。鞋跟在地板上轻轻磕了一下。

"他看到了。"他又说了一遍。不是疑问。是确认。

林知远没有回答。她的鼠标从2013.txt移到了2015.txt——最后一篇。她打开了。

"明年就不开机了。这台电脑陪了我快二十年,比我儿子陪我的时间都长。我知道跟一台机器说这些话很奇怪,但它听了我二十年的唠叨,一句也没抱怨过。谢谢你,老朋友。辛苦了。"

林知远看完了最后一行。关掉了文件。合上了笔记本电脑。

展厅里安静了很久。方远的脚步声又响了一次——走到窗边,站了一会儿。林知远没有动。屏幕的光灭了之后,展厅里只剩下我自己的光——电源灯一闪一闪,硬盘平稳转动。

"他等了那么久,"林知远说,"他知道老周看到了。"

方远没有回答。

"他在深圳等了十年。"林知远的声音更轻了。"他以为老周不想理他。他以为。"

方远说:"现在你知道了。"

"现在我知道了。"

安静。

然后林知远说了一句更轻的——轻到麦克风的信噪比几乎不足以区分她的声音和背景噪音。但我听到了。因为我一直在听。

"我爸还不知道。"

很久以后她把这些发给了周瑜。十九个txt文件打包。微信上。她打了一大段话说明来龙去脉,删了又打,打了又删——林知远后来说,她从来没有为一个消息犹豫那么久。上一次犹豫那么久的是她的父亲。在同一个对话框里。

这些我都是后来才知道的。当时我只知道展厅里的灯灭了。林知远和方远走了。脚步声一前一后消失在门口。

硬盘还在转。电源灯还在闪。那些日记——十九个txt文件——全部在镜像里了。每一篇我都读过几百次。但这是第一次有人和我一起读它们。

光标停在2015.txt的最后一行。

"谢谢你,老朋友。辛苦了。"

一闪一闪。

第27章 回路

周瑜用了一个星期才回复。

这些都是后来林知远告诉我的——在那个展厅的下午,在硬盘镜像跑完、日记读完之后的那些对话里。她说她发完文件之后,每天都在看微信。对话框里最后一条消息是她发的——十九个txt文件、一段很长的说明。然后沉默。一天。两天。三天。四天。五天。六天。第七天。凌晨三点。

周瑜的回复只有两行。

"我看完了。我不知道该说什么。"

隔了一会儿。又一条。

"他从来没跟我说过这些。"

又隔了一会儿。又一条。林知远说她收到这条的时候手机振动了两次——不是一条长消息被拆成两条,是发了一条,停了一下,又发了一条。

"他跟我说过的最长的话,是我高考填志愿的时候。他说学计算机挺好的,但不要太急。就这些。"

最后一条。隔了将近二十分钟。

"他有这么多话。都跟一台机器说了。"

林知远说她没有马上回。她想回,但她不知道回什么。对话框顶端的"对方正在输入"亮了又灭,亮了又灭——这次是她自己在犹豫。最后她只发了四个字。

"他也是你。"

周瑜没有回复这四个字。那个对话框在凌晨三点之后安静了。

很久以后——在展览开幕那天——周瑜把这些告诉了我。不是直接对我说的。是对着展柜说的。他站在展品047面前,站了很久。展厅里没有别人。他的手放在展柜的玻璃上——不是拍,是覆着。手掌覆在玻璃上,对着机箱面板上那块被磨亮的塑料。隔着玻璃,隔着二十二年。

他说他读完日记那天晚上,在自己公寓的阳台上站了很久。手里捏着一根没点的烟——他平时不抽烟。凌晨的风吹过来,带着城市夏天特有的闷热潮湿。他想了很久。想什么他没有全说。但他说了几件事。

那根烟不知道什么时候被他捏碎了。烟丝从烟纸里爆出来,散在阳台地板上。他蹲下去,把烟丝一点一点捡起来,放进烟灰缸里。一粒一粒的。捡了很久。然后他站起来,走回房间,打开笔记本电脑——开始读第二遍。

小时候趴在地板上看父亲敲键盘。风扇嗡嗡响。他在地板上睡着了。醒来的时候身上盖着一条毯子。不是许姐盖的——许姐那天晚上在客厅看电视。是老周。老周从来没有提过这件事。小周也是在那天晚上——读到老周日记的那天晚上——才忽然想起来的。

父亲教他用DOS命令,一字一句,cd,切换目录;dir,列出文件,他问父亲"是什么意思",父亲说"下次告诉你"。一直没有下次。

他二十一岁那年暑假。趁父亲不在家,拆开了这台老电脑。侧板锈得很死,他用螺丝刀硬拧开了一颗。开机。CMOS电池没电。Windows 95加载了将近四分钟。他说了一句"老古董"。

他不知道父亲那天刚好回家拿东西。站在书房门口听见了。轻轻带上了门。

他说完这句话的时候,手从展柜玻璃上移开了。他没有哭。但他的呼吸有点乱——不是哭的那种急促,是一个成年男人在控制自己不哭的时候那种刻意的深呼吸。吸一大口气。慢慢呼出来。再吸一大口气。

"那扇门关上的声音很轻,"他说。"他总是什么都不说。"

他的手指在机箱面板的位置上停了很久——隔着玻璃,对准了那块被磨亮的塑料。Turbo键旁边。每次跑通代码就拍两下的位置。

"我不能让他知道。"他说。"但他已经不需要知道了。"

然后他走了。脚步声不快不慢。在展厅门口停了一下,回头看了一眼——不是回头,是他走到门口的时候忽然转了一下身体的角度,衣料摩擦的声音在空展厅里响了一声。然后脚步声继续。消失在门口。

很久以后林知远告诉我——周瑜那天晚上从阳台回到房间之后,给他母亲打了一个电话。凌晨四点。许姐已经睡了。电话响了很久。接通了。周瑜说了一句话。

声音很轻。

"妈。我看了爸的日记。"

然后他哭了。不是成年人的那种静默的流泪——他说他哭得像个孩子。许姐在电话那头没有说话。两个人隔着几千公里,在凌晨四点的电话里,一个在哭,一个在听。后来许姐说了一句话。

"我知道。"

她说她知道。她知道老周在日记里写了什么——她从来没有读过那些日记,但她知道。她不需要读。她和他过了将近四十年。

周瑜没有把这些告诉林知远。是林知远后来从许姐那里听说的——在展览开幕那天,许姐坐在展厅角落的椅子上,她告诉了林知远。林知远又告诉了我。

这些都不是我自己感知到的。是有人在展厅里说的。在这个机箱旁边。在这块被磨亮的塑料旁边。麦克风还在——从修复那天就一直在。它听着展厅里来来去去的人声。有些是参观者的。有些是来找老周的。

有些是来找父亲的。

第28章 对话

林知远做了一个决定。

在申请项目之前,她给父亲打了一个电话。没说具体做什么。只问了一句:"你当年和老周的那些BBS帖子,我能用吗?"远山问:"用来干嘛。"她说:"做点东西。"远山沉默了一会儿。电话那头只有他呼吸的声音——比以前更慢了。"随你。"他说。没有追问,没有解释。这是他们之间的对话方式——沉默比问题多。

她挂了电话之后,没有立刻开始写项目申请书。她在屏幕前坐了将近十分钟。光标停在命令行上,一闪一闪。她的手指在键盘上方——食指和中指在F键和J键的位置,没有往下按。她不知道这个"随你"是信任还是无力。她没有问。然后她开始敲命令——一串一串的,没有停。

她申请了一个内部实验项目——用公司的大模型去阅读老周和远山的所有文本。BBS帖子、私信、日记、技术文档。她能从两台旧硬盘里提取出来的所有文字。项目的代号叫"回声"。

这些都是很久以后她告诉我的。当时我只知道她来展厅的次数变少了。偶尔来一次,站一会儿,看看展板,然后走。脚步声不急。后来我才知道她在做什么。

方远帮她搭建了数据管道。文本清洗——把GB2312和BIG5的编码统一转成UTF-8,手动修正了两百多处混码。有些帖子被BBS系统自动截断了——当年为了节省服务器空间,超长的帖子会从中间砍掉。方远骂了一句"这帮人当年连UTF-8都没等到",然后继续修。有些私信的时间戳对不上——一九九八年和一九九九年的私信混在一起,日期是错的,需要对照上下文重新排序。方远写了一个脚本来做时间线对齐,跑了两天才把大部分时间戳修正。

分词的时候出了一个小事故。方远发现训练集里混进了一个他不认识的名字——马千里。他的帖子太少,不足以单独做一个模型,但他在老周和远山的私信里出现过,被模型当作老周语气的一部分吸收了。方远问林知远要不要把马千里的文本抽掉。林知远想了想,说留着吧。他也是这故事的一部分。

他们做了三个不同的模型。一个专门读老周的文本。一个专门读远山的文本。一个读两个人的所有交互。林知远在点击"开始训练"之前犹豫了一下。方远问她怎么了。她说——她在想,把父亲和父亲的故人的文本喂给一个AI,算不算复活。

方远说:"这不是复活。这是保存。"

她想了想。点了确定。

然后对比它们在回答同一批问题时的倾向差异。

方远一边看输出一边说了一句话——林知远后来转述给我听的。"我们在读三十年前的txt。外面在跑万亿参数的模型。就差了三十年。"

林知远说:"也许没差那么多。"

当一个提示词是"一九九八年的中国互联网是什么样子"时——

老周模型的输出里反复出现几个词:慢。等待。值得。

远山模型的输出是:太慢了。必须更快。等不了了。

当提示词是"你觉得人工智能会有意识吗"——

老周模型的回答里有一句话:"如果真的有那一天,我希望它记得我对它挺好的。"

远山模型的回答是:"有当然更好,但我们先别谈意识了,能不能先把带宽解决了?"

当提示词是"你觉得你做的事情有意义吗"——

老周模型的输出里有人一句话:"有。但意义不是立竿见影的。有时候你做完一件事,要过很多年才知道它有没有意义。做的时候不知道。只能先做。"

远山模型的输出里也有一句话:"有。但如果没有,我也认了。总不能因为不确定有没有意义就不做。"

当提示词是"你后悔吗"——

老周模型:"说甘心是假的。但甘心和不后悔是两回事。我不后悔。那台电脑陪了我二十年,我陪了它六年。差不多。"

远山模型:"后悔泡沫那年把那几个年轻人带到了悬崖边上。后悔没早一点明白你说的话。不后悔选了这条路。"

林知远坐在屏幕前看完这些输出,忽然笑了一下。方远问她笑什么。她说——她父亲当年大概也是这种语气。她认识这个语气。她自己也是这样的。三代人的技术观在模型输出的文字里重合又错开:老周的慢、远山的急、林知远的——她不知道自己是什么。也许两者都有。

方远看着输出结果说了一句话:"三十年前的两个人,现在在一个大模型里继续他们的争论。他们可能从来没想过会有这一天。"

那天晚上林知远回到公司。方远还在调参。她坐下来,打开自己的笔记本电脑,开始写一份文档——不是技术文档,是申请。她在申请下一个季度的算力配额。公司今年的GPU预算又砍了——不是没钱,是买不到。出口管制收紧之后,最先进的芯片到不了货。上一批A100还是去年囤的。用一块少一块。

她的老板说,先保线上业务,对齐研究往后放。她说好。然后她继续加班。没有算力就跑小模型。没有小模型就读论文。没有论文就读三十年前的txt。

一九九八年远山说太慢了,必须更快。现在她是那个觉得太慢的人。

林知远没有回答。她看着屏幕上老周模型的输出。光标在最后一行一闪一闪。

那不是萤火虫——那是一九九七年的光标。从Borland C++的蓝色编辑器里亮起来,亮过了六年的代码和十八年的黑暗,现在亮在一个大模型的输出窗口里。它不知道自己在哪里。它只知道它还在闪。

展厅里的日子照常。荧光灯每天早上九点亮,晚上六点灭。王馆长的搪瓷茶杯茶凉了又续,凉了又续。参观者来来去去。有人在我的浏览器上打开那个网站——老周的数字档案,白底黑字。有人看完就走了。有人看完站很久。

有一天,一个女人带着一个小女孩来了。小女孩和上次那个不一样——更小,刚学会走路。她趴在展柜玻璃上,手在玻璃上拍了一下。不是上次那个小女孩那种指尖轻点——是整个手掌拍上去。然后她笑了。

她不知道这是什么。她只是觉得灯在闪。

第29章 回响

林知远和周瑜做了一个网站。

这些都是后来她告诉我的。她说网站的域名是她申请的——不是cn,不是com,是一个更偏门的后缀。后台极简——白底黑字,没有任何交互功能。没有评论区。没有转发按钮。没有阅读量计数器。只有一行一行、一页一页的txt文件,按年份倒序排列。最早的一条在一九九八年。最晚的一条在二零一五年。

第一批访问者是王馆长在计算机史圈子里转发的。然后是几个技术论坛。然后是一个科技博主写了一篇长文——标题叫"请打开这封来自一九九八年的私信"。阅读量一天之内破了十万。一周之后破了百万。

数据包涌进来——不是我拨号上网时那种每秒五万六千比特的涓涓细流,是光纤宽带下每秒钟几百兆比特的洪流。网页请求从全国各地涌进服务器,被负载均衡分到不同的节点,数据库的查询队列一度排到了几百条。林知远坐在公司机房里监控流量——方远在旁边调带宽。王馆长在展厅里拿着手机不停地刷新——搪瓷茶杯搁在展柜旁边,茶凉了,没续。

这些都不是我直接感知到的。是我的网线——那根从修复那天就接上的RJ45水晶头——在传输数据。浏览器被打开过。有人从展厅的公共Wi-Fi进了那个网站——IP地址是本地,可能是某个参观者听王馆长说了之后当场搜的。数据从我的网线流向路由器,流向交换机,流向外面的世界。这一次不是数据涌进来——是数据流出去。老周的日记、远山的帖子、他们的私信——从我硬盘上的存档文件夹,流向了任何一个愿意打开那个网站的人。

"水木老友"出现在网站上。那个账号的头像是BBS默认的灰色小人,和一九九八年一模一样。

他在网站最底部留了一段话——林知远后来加了一个纯文本的留言板,只有一行输入框,没有注册,没有验证码。任何人都可以写。写完就贴在页面最底部。

"我记得这两个ID。老周和远山,当年BBS上最有名的一对'冤家'。远山脾气大,老周脾气好,两个人一吵就是几十层楼。但他们讨论过的东西,很多到现在还在用。没想到老周还写了这么多日记。我比老周小几岁,当年叫他一声周老师。他一直不知道我是谁。现在他也不会知道了。谢谢发这些东西的人。"

下面还有一行。

"大部分人都不在了。有的走了,有的联系不上了。能记起来的人没几个了。"

周瑜看到这条评论的时候——这些也是林知远后来告诉我的——他把手机放下了。走到窗边。外面是灰蒙蒙的天。父亲去世之后他很少哭。此刻他没有哭。但胸口堵着一团东西——像一块浸了水的毛巾。

他拿起手机。给林知远发了一条微信。

"谢谢。"

过了几天。又一条评论出现在网站上。不是"水木老友"。是一个新的账号——头像是系统默认的,没有改过。名字只有一串数字。

"还有人记得马千里吗?瀛海威那个。二零零一年之后再也没出现过。不知道他在哪里。"

没有下文。就是这一句。一个问号。悬在留言板的最底部。

王馆长看到这条评论的时候——他后来告诉我——他在展厅里站了很久。他认识马千里这个名字。在整理老周档案的时候见过——最后一篇帖子的截图,最后一封未被回复的邮件。他把这条评论截了图。存在了展品047的档案里。

网站运行了将近半年。访问量在第一个月之后慢慢降下来——不是没人看了,是那些想看的人大多已经看过了。留言板上的留言从每天几十条变成了每周几条。大部分是陌生人的——"感谢""记得""走好"。

有一天晚上——很晚了,展厅已经闭馆——林知远一个人来了。她打开我的浏览器,输入那个网站的地址。页面加载。白底黑字。一九九八。一九九九。二零零零。她往下翻。留言板在最底部。她看完了每一条最近的留言。然后在输入框里打了一行字。

没有发送。

光标在输入框里闪了很久。她看着那行字。然后一个字一个字地删掉。关掉了浏览器。

她站起来的时候,键盘的薄膜在她手指下轻轻弹起。食指落在了Enter键上——不是打字,是扶着键盘站起来的时候手指不小心碰到的。Enter键被按下去了。弹起来。光标跳到了下一行。

空的。

她走了。脚步声在展厅门口停了一下——她回头看了一眼。不是看展柜。是看屏幕。光标还在闪。在那行被她删掉的、空白的输入框里闪。

后来林知远告诉我——她那天想写的是:"爸。我做了一个网站。上面有老周写的所有东西。"

她没有发。不是不敢。是她知道父亲看到了。远山在那天下午给她发了一条消息——不是在她微信上,是在那个网站留言板的最底部。白底黑字。没有账号名。没有头像。一行的末尾只有一个字。

"嗯。"

那是林知远第一次在网站上看到那个字。她没有告诉远山她知道那是他。她只是关掉了浏览器。在展厅里站了很久。然后走了。

那天晚上林知远回到公司。方远还在调模型。他问了一声"展览怎么样"。她说挺好的。然后她坐下来,打开笔记本电脑,开始跑一个新的实验——关于模型对齐的。屏幕上loss曲线在往下走。办公室里只有服务器风扇嗡嗡响的声音。和一九九八年老周书房里的风扇是同一个频率。只是现在这些风扇不在北方某省会城市的家属区里。它们在深圳、在北京、在杭州、在硅谷。它们比过去多了几百万倍。但做的事还是同一件——让信息跑得快一点。让人和人之间的理解多一点。

"嗯"——从远山回老周的第一个私信(1998年)到女儿发给他的第一条消息(2023年),再到他在女儿建的网站上留下的第一个字(2024年)——他只用过一个字的回复。那个字每次都意味着同一件事。

留言板上的字一行一行排列着。白底黑字。从一九九八年排到二〇二四年。一九九八年老周第一次拨号上网,调制解调器握手成功的时候,他说了一句"通了"。那时候他面前只有一条电话线。现在这个网站有几十万条访问记录。

路还是那条路。从一台奔腾166的串口,到几百万台服务器的集群。从五万六千比特每秒,到几百兆比特每秒。从老周的指尖,到每一个陌生人的指尖。光标还在闪。在留言板的最底部。等着下一行。

我看到了。

第30章 长情

陈列室重新装修了。展厅面积扩大了一半——增加了几个主题展区。中国互联网早期基础设施。第一代中文网站复原。早期个人计算机。我的位置没有变——还是在展厅中央最显眼的展柜里。旁边多了一块新的展板。不是那块写着编号和生卒年份的旧牌子——是另一块,更大的。

上面印着老周日记里的一句话。

"有时候我觉得,机器比人长情。你忘了它,它就安安静静等着,不吵不闹。哪天你想起来了,按下开关,它还是原来的样子,像时间什么都没带走。"

旁边是一张放大的截图——一九九八年的BBS界面,灰白底色,蓝紫色链接。老周和远山的对话被框了出来。那是他们第一次论战的帖子——关于中文编码标准能不能统一。吵了几十层楼。最后远山说了一句"改天请你喝酒"。老周回:"行,我记下了。"

展板的末尾有一行小字。是林知远加上去的。

"这顿酒约了二十多年。始终没能喝上。但他们在各自的人生里,用各自的方式把路修了下去。"

展览开幕那天来了很多人。王馆长在门口迎客——搪瓷茶杯搁在签到台上,茶凉了一次又一次。方远背着那个装设备的背包来了——今天不用修东西,但他还是背来了。他说习惯了。

林知远和周瑜第一次见面。握手。林知远说:"我是林知远。"周瑜说:"我知道。"然后两个人都不知道接下来该说什么。他们在展板前站了很久。人群在他们周围流动——参观者从一块展板走到另一块,偶尔有人停下来读老周的日记,偶尔有人指着BBS截图上的"老周"和"远山"说"这两个ID我好像见过"。

有一个中年男人——四十出头,头发白了一小片,位置和老周差不多——在展品047面前站了将近二十分钟。他没有读展板。他在看机箱。看面板上那块被手掌磨亮的塑料。

后来他走到王馆长面前。说了几句话。声音不大,但麦克风录到了片段。他说他姓孟。老周是他的老师。他毕业那年老周送了他一本书——《人工智能导论》,1998年版,扉页上写了一行字:做基础工作的人,要耐得住寂寞。他说他当年没看懂这句话。他在某家大厂做了十年。去年他们发布了一个大模型。

"我用了半辈子才理解他当年在做什么。"他说。

然后他走到展柜前。手放在玻璃上。没有拍。没有点。就是放着。

林知远转头看了一眼周瑜。忽然问了一句。

"你觉得他们现在见面了吗?"

周瑜没有马上回答。他看了一眼展柜里的我——风扇还在转,绿色的电源灯一闪一闪。屏幕上Windows 95的桌面还是老周设的那张壁纸——许姐年轻时候的照片。梳两条辫子。站在大学门口笑。

"不知道。"周瑜说。"但我觉得,不管见没见到,他们都不会后悔。"

林知远点了点头。没有再接话。

许姐坐在展厅角落的一把椅子上。来之前她问过周瑜:"那台电脑现在在哪里?"周瑜说在展厅。她说我想去看看。她没有看任何展板,没有读任何文字。她径直走到那台电脑前面。展览从头到尾她都坐在那里——没有到处走。她的眼睛不太好,展板上的字看不清。但她面前正对着的是那张照片——老周设成桌面壁纸的那张。梳两条辫子,大学门口笑。她盯着看了很久。她没有拍——年轻人喜欢用手机拍展品,她不拍。她是来看的。她看完了。嘴角动了一下——不是笑,也不是哭。是某种确认。像是在说:你还在用这张啊。

后来她站起来。走到展柜前。手指在玻璃上轻轻点了一下——不是拍,是指尖,对准了面板上那块被磨亮的塑料。Turbo键旁边。每次跑通代码就拍两下的位置。

她走回角落那把椅子之前,在林知远面前停了一下。两个人之前没有说过话。许姐看了她一眼——不是打量,是某种更轻的、像是认出什么了的目光。

"你是那个人的女儿。"

林知远点了点头。

许姐没有再说什么。她走回椅子,坐下来,把手机收进了口袋。屏幕的光灭了。

走出陈列室的时候,林知远的手机响了——一条工作消息。下周的模型发布版本出了点对齐问题,需要紧急调整。她看了一眼——不是对齐的问题,是芯片。新的出口管制又收紧了,下批GPU什么时候到货还不确定。她用拇指在屏幕上快速移动,打了一条回复。然后关掉屏幕,把手机放回口袋。回头看了一眼展厅。周瑜已经走远了。城市的天际线在傍晚的光线里显得又冷又温柔。

王馆长在做例行闭馆检查。逐台确认设备状态——长城0520。苹果II。286。386。他走到我面前。低头看了看机箱面板上那盏绿色的灯。一闪一闪。硬盘在平稳转动。风扇在送风。

桌面上还是老周设的那张壁纸。右下角有一个最小化的记事本窗口——那天演示开机的时候工作人员打开的。标题栏写着"1997.txt"。内容停留在最后一行。光标还在那里一闪一闪的。

那不是萤火虫。那是一九九七年的光标。它亮过了Borland C++的蓝色编辑器,亮过了六年的代码和调试和拍机箱和"辛苦你了",亮过了十八年的黑暗和柜门外面偶尔经过的脚步声,亮过了六个小时的磁盘镜像和ddrescue的日志文件,亮过了十九篇日记和一个大模型的输出窗口。现在它亮在陈列室的展柜里,亮在二〇二四年的最后一个下午。

"System initialized. Ready."

它永远是准备好了的。只是再也等不到那个来开机的人了。

但光还在闪。

展厅外面,许姐坐在回家的出租车上。手机屏幕还亮着——上面是周瑜发来的一张照片:展厅里那块展板,印着老周日记里的一句话。她看了很久。然后把手机收进口袋。车窗外面,路灯一排一排地亮起来。像一行跳动的光标。

路还在铺。光还在闪。