而且日期是2009年6月,现在是2023年5月,差了整整十四年。
王洋感到口干舌燥,他关掉这个文档,点开6月10日的:
“6月10日,晴。项目进入关键阶段,李老师给我们申请了621的专用权限,说这间机房暂时不对外开放,让我们安心做。电脑配置太老了,跑仿真慢得要死。张伟从家里带了内存条来升级,结果不兼容,白折腾一晚上。陈峰说要不偷摸用学院的服务器,被李老师骂了一顿。”
6月5日:
“6月5日,多云。第一次小组会议。我、张伟、陈峰,三个人都是计算机系大二的,被李老师选中做这个项目。说是人工智能相关的前沿课题,其实我们心里都没底。但机会难得,硬着头皮也要上。张伟是技术最好的,陈峰最细心,我算是协调吧。希望一切顺利。”
王洋快速浏览着这些日记,越看心越沉。从记录来看,这是三个大二学生在2009年做一个重要项目,在621机房闭关开发。前期还算顺利,但越到后面问题越多,压力越大,团队成员之间似乎也出现了矛盾。
他点开最早的一个文件,5月20日:
“5月20日,晴。今天李老师找我们谈话,说有一个绝密项目,需要三个人组队。如果成功,不仅有保研资格,以后出国深造、进大厂都没问题。但签了保密协议,对谁都不能说,包括家人。我们三个都签了。项目内容听起来很科幻,说是要做一个能够模拟和预测人类行为的算法模型,基于校园一卡通数据。李老师说这是某个大公司委托的课题,做好了直接录用。张伟最积极,他家里条件不好,需要这个机会。我和陈峰也差不多。加油吧。”
王洋背上的冷汗已经湿透了T恤。他关掉所有文档,坐在椅子上,脑子里一片混乱。
2009年,三个学生在621机房做一个秘密项目。现在2023年,他无意中闯进这间机房,用了其中一台电脑,电脑里存着当年的日记。而他现在被困在这里,出不去,联系不上外界,机房没有窗户,门外一片死寂。
这中间有什么联系?
王洋重新站起来,用手电筒照向其他电脑。他走到另一排,随便选了一台,按下开机键——没反应。他又试了几台,都一样,完全不通电。
只有他用的那台是好的。
不,不一定是“好”的。王洋突然想到,他刚进来时,这间机房所有电脑都是关着的,他随便选了门口这台,一按就能用。这太巧了,巧得不像巧合。
他走回那台电脑前,仔细观察。机箱是那种老式的白色方正款,显示器是大屁股CRT的,这种显示器早就被淘汰了。键盘的按键已经泛黄,有几个键上的字母都磨没了。
王洋蹲下来,看机箱后面。线都插着,电源线、视频线、网线。他顺着网线往墙上看,网口的位置是个老式RJ-45接口,旁边还贴着一小条褪色的标签,上面有手写的字迹。
他凑近了些,用手电筒照着。标签上写着:“621-07,2008年安装,已停用。”
停用?那为什么这台电脑还能用?
王洋伸手去摸网线,就在他的手指碰到网线接口的瞬间,整个机房的灯突然闪了一下。
不是天花板上的灯——那些灯从来没亮过——而是从墙壁的缝隙里,从地板下面,透出一种微弱的、暗红色的光。那光只持续了不到一秒,然后就消失了,快得让王洋以为自己眼花了。
但紧接着,他听到了一种声音。
很细微的,像是电流的“嗡嗡”声,从机房深处传来。王洋立刻把手电筒照向声音的方向,光束刺破黑暗,照出一排排静止的电脑和椅子。声音也停了。
“谁在那儿?”王洋问,声音在颤抖。
没有回答。
他握紧手机——这是他唯一的光源,也是唯一的“武器”,虽然没什么用。他深吸一口气,朝着声音的方向慢慢走去。脚下的灰尘很厚,每一步都留下清晰的脚印。他数着自己的脚步,一、二、三……走到第八排电脑时,他又听到了那个声音。
这次更清楚了,是键盘敲击声。
“咔、咔咔、咔……”
很有节奏,像是在打字。王洋屏住呼吸,把手电筒照向声音传来的位置——机房最里面,靠墙的那排,中间的位置。
那里坐着一个人。
王洋全身的血液好像一下子冲到了头顶,又瞬间褪去,手脚冰凉。他僵在原地,手电筒的光束颤抖着照在那个人背上。是个穿深色衣服的人,背对着他,正对着电脑屏幕,双手在键盘上敲击。从背影看,像是个男生,头发有点长,肩膀很瘦。
“同、同学?”王洋艰难地发出声音,“你也……也被关在这里了?”
那个人没有回头,继续敲着键盘。敲击声在寂静中格外清晰,咔、咔咔、咔……每一声都敲在王洋紧绷的神经上。
王洋鼓起勇气,又往前走了两步。现在他能看清更多细节了:那个人穿的是一件深蓝色的连帽衫,帽子搭在背上。电脑屏幕亮着,上面是黑色的命令行界面,绿色的光标在闪烁,一行行代码在滚动。
“同学,这门打不开了,我们得想办法出去。”王洋说,声音大了些。
敲键盘的声音停了。
那个人停下了动作,双手悬在键盘上方。但依然没有回头。
王洋又走近了些,现在距离那个人只有三排座位了。他闻到一股奇怪的味道,像是灰尘、旧纸张,还有一种……金属味?像是电流过载时的那种焦糊味。
“你……”王洋刚要再开口,那个人突然说话了。
声音很年轻,是男声,但有点哑,像是很久没说话的那种沙哑:“就快写完了。”
“什么?”王洋没听懂。
“代码,就快写完了。”那个人说,还是没有回头,“再给我一点时间,就差最后一点了。”
王洋突然想起电脑里那些日记,2009年的项目,三个学生。他脑子里闪过一个可怕的念头,但他立刻压了下去——不可能,那都是十四年前的事了。
“同学,现在很晚了,而且我们被困在这里了,得先想办法出去。”王洋试图让声音保持平稳,“你什么时候进来的?怎么进来的?”
那个人沉默了几秒,然后说:“我一直在这里。”
“什么?”
“我一直在这里,”那个人重复道,声音平静得诡异,“写代码。李老师说,写不完不能走。”
王洋感到一股寒意从脚底窜上来。他握紧手机,手电筒的光束在那个人背上晃动。他注意到,那个人的衣服看起来有点……不对劲。不是款式不对,是质地,在手电筒的光下,那件连帽衫几乎没有反光,像是吸收掉了所有光线。
“你叫什么名字?”王洋问,声音发紧。
“张伟。”那个人说。
王洋脑子里“嗡”的一声。张伟,日记里的张伟,2009年那三个学生之一。
“现在是哪一年?”王洋听见自己问,声音干涩。
“2009年。”张伟说,然后他顿了顿,补充道,“6月15日。明天就要演示了,我得写完。”
王洋往后退了一步,脚下被什么绊了一下,差点摔倒。他扶住旁边的桌子,手按在厚厚的灰尘上。
“你看,”张伟突然说,他抬起一只手,指向屏幕,“这里,这个循环,总是出问题。我改了三遍了,还是不对。”
王洋下意识地顺着他指的方向看去。屏幕上,绿色的代码快速滚动,他看不清楚具体内容,但能看出是一个复杂的嵌套循环。
“哪里不对?”王洋问,纯粹是出于程序员的本能反应。
“边界条件。”张伟说,声音里有一丝困惑,“每次跑到第1024次迭代,就会溢出。我检查了变量类型,检查了内存分配,都不应该溢出。但就是溢出了。”
1024。王洋对这个数字有印象,在计算机里,1024是2的10次方,经常出现在各种算法中。但为什么偏偏是1024次迭代?
“你能帮我看看吗?”张伟问,他还是没有回头。
王洋犹豫了。理智告诉他,这一切都不对劲,他应该离这个“人”越远越好。但另一种冲动,一种属于程序员的好奇心,让他想知道到底是什么代码,什么算法,在十四年后还在运行,还在被“调试”。
“我……我看看。”王洋说,他绕到那排座位的侧面,这样能看到张伟的侧脸,也能看到屏幕。
当他看到张伟侧脸的那一刻,王洋的呼吸停了一拍。
那确实是一张年轻的脸,大概二十岁左右,有些瘦,颧骨突出。但那张脸是半透明的。不是比喻,是真的半透明。王洋能透过他的脸颊,隐约看到后面电脑屏幕的光。而且张伟的皮肤呈现出一种不正常的灰白色,在屏幕光的映照下,几乎像是会发光。
张伟的眼睛盯着屏幕,一眨不眨。他的眼球是浑浊的,像是蒙了一层雾。
王洋强迫自己把视线移到屏幕上。代码还在滚动,是C语言,但写法很古老,注释风格也是十几年前的样式。他快速浏览,试图理解这段程序在做什么。