最新网址:www.00shu.info
地下室的门在楼梯尽头,是一扇铁门,没有锁孔,只有一道感应区。沈夜把钥匙贴上去,铁门发出“咔”的一声,缓缓向里打开。门缝里漏出来的,不是黑暗,而是冷白色的光。服务器的指示灯。
三个人走进去,都愣住了。
这是一间机房。不大,二十来平,但塞满了机柜。老式的塔式服务器一台叠一台,风扇嗡嗡转着,指示灯红红绿绿闪成一片。温度比外面低好几度,空气里有一股机房特有的、混合着灰尘和臭氧的味道。
沈夜太熟悉这种味道了。他在这行干了快十年,一半的青春都泡在机房里。
林小雪站在门口,没有往里走:“这地方,比外面看起来大得多。”她伸手敲了敲最近的一台机柜,“从外面看,打印店只有二十平。这间地下室至少也有二十平。那上面的店面,加上楼梯,面积对不上。”
“对不上就对了。”沈夜说,“如果这家店真的是‘门’,那它的内部空间,本来就不必遵守物理规则。”
他沿着机柜间的过道往里走,手指依次拂过那些服务器的外壳。走到最里面一台时,他停住了。那台服务器的机箱侧板上,用记号笔写着一行小字,字迹已经模糊,但他还是认了出来:
“加班,勿念。”
沈夜的手,顿了一下。
这是他自己的字。三年前,他给公司服务器做维护的时候,总喜欢在机箱上写这种话。可这台服务器,按理说应该在老周手里。老周为什么还留着这台贴着他字的机器?
“你在看什么?”零号飘过来。
“没什么。”沈夜收回手,“一个习惯。”
“三年前的旧习惯。”零号补充道,“你越来越容易‘记得’过去了。这趟打印店,你找回的记忆,比过去三个月加起来都多。”
沈夜没有接话。他知道,找回记忆不一定是好事。每找回一段,都意味着他“丢过”一段。
“三年前的机器。”他摸了摸一台服务器的外壳,“这个型号,2018年就停产了。”
“它们还在跑。”零号飘到机柜前,代码流在她身上亮了一下,“不是待机。是满载运行。”
“在跑什么?”
零号没回答。她落在一台服务器的显示屏前,屏幕上的内容,让三个人的呼吸都停了一拍。
屏幕上滚动着git log。136条提交记录。
“这和沈夜家里那块硬盘上的,一模一样。”林小雪说。
“不是一模一样。”沈夜盯着屏幕,声音有点哑,“是同一个仓库。我家的硬盘是clone,这是origin。远程仓库。服务器在跑这个?它在跑我三年前的代码仓库?”
“它在跑,而且一直在跑。”零号说,“这个仓库里,有一个进程,从三年前启动,到现在都没有停过。”
“什么进程?”
“door。py。”
沈夜的脑子里,“当”了一声。
door。py。老周修过的那个文件。那扇“门”。
“它没有被关闭。”零号的声音很轻,“三年前,有人启动了这个进程,然后把它留在了这里。它一直在这台服务器上运行。也就是说,这扇‘门’,从三年前起,就一直没有关过。”
三个人沉默了一会儿。
风扇的声音在机房里嗡嗡地响,像某种古老的、不知疲倦的心跳。
“那我们现在站在‘门’里面?”林小雪问。
“我们站在门的正上方。”沈夜说,“打印店是入口,地下室是机房,机房是服务器。门是这台服务器上跑着的程序。我们脚下,就是那扇门。”
他走到机柜中间,最里面一台服务器上,插着一个老式的CRT显示器。屏幕边缘发黄,但画面清晰。上面不是git log,是一个终端窗口。
光标在闪。
然后,光标开始自己打字:
“来取件了?”
沈夜盯着屏幕。这个打字节奏,他太熟悉了。door。py里那行注释的“主人”,就是这么打字的。
“老周?”他喊。
屏幕停了一秒。
“老周……”那个光标重复了一遍,像在咀嚼这个名字,“好久没人这么叫我了。你们喜欢叫我‘后台进程’,或者‘守护程序’。”
“你是老周写的程序?”沈夜问。
“我是老周。”光标说,“或者说,我是老周留下的‘那部分’。”
沈夜心里一紧:“他把自己写进代码了?”
“不。”光标说,“他把‘记忆’留在了这里。就像他把你的一部分记忆锁起来一样。他也把自己的一部分,锁进了这个进程。三年前,他上传代码那天,就没有再离开这台服务器。”
“为什么?”
“因为门需要有人看着。”光标说,“门是双开的。他写了后门,你写了正门。正门你知道,后门……他得看着,防止它被别人打开。”
“后门?”沈夜的声音紧起来,“什么后门?”
光标沉默了很久。机房里的风扇声,显得格外响。
“你确定,你想知道吗?”光标说,“知道之后,你就没法当什么都没发生过了。你三年前,就是这么对我说的:‘老周,别告诉我。知道的人越少越好。’”
沈夜站在原地,喉结动了一下。
他确实想不起三年前说过这句话。但他知道,这句话听起来,像是他会说的话。
“你认识我,对吧?”沈夜问,“你认识的是三年前的我。那你知道,我是怎么变成现在这样的吗。我每天上班、写代码、加班,活得像个正常人。但我的记忆里有洞。我记不清很多事,只知道自己‘忘了’。”
光标停了一会儿:“你三年前就知道会这样。所以你把‘正常的自己’留在了现实里,把‘记得深渊的自己’锁进了这家店。你让现实里的沈夜,以为自己只是个普通程序员。这样,深渊就找不到你。”
“……找不到我?”
“它一直在找你。它想吃掉你的记忆,因为你记得它。你把自己‘格式化’成普通人,它就看不清你了。但你留了一个后门。你让老周替你看守这个后门,等你自己找回来。”
“那我为什么现在找回来了?”
“因为深渊醒了。”光标说,“它醒的那天,你留在现实里的‘普通人生’,就会开始出现裂缝。你忘掉的东西,会一点点自己爬回来。你挡不住。”
“我现在想知道。”他说,“因为我发现,我忘掉的太多了。”
光标停了一会儿。然后,它开始打字,速度很慢,像一个在斟酌措辞的人:
“三年前,你发现了一个东西。你管它叫‘深渊’。它藏在所有被删除的代码、被遗忘的记忆、被丢弃的程序下面。它很大,大到你想不到。你写door。py,不是为了打开它,是为了‘观察’它。”
“那我为什么要写BUG0001?”
“因为你想修它。”光标说,“你发现深渊里有一个bug。一个会让它失控的bug。你想修好它。但修它的代价,是你会被它‘记住’。你每动一次它的规则,它就会吃掉你一部分记忆。你怕自己修着修着,忘了自己在修什么。”
“所以我把门做成了双开。”沈夜接话,“我写正门,让老周写后门。如果我忘了,老周还能从后门进来,替我看着。”
“你三年前,是这么安排的。”光标说,“但老周出了事。他上传代码之后,就从现实里消失了。没有人知道他去了哪儿。”
“他消失了?”林小雪问,“那他留在这儿的‘那部分’呢?”
“还在。”光标说,“一直守着后门。守着你们。”
机房的角落,忽然传来一阵轻微的机械声。
三个人同时转头。
那台蒙着灰的激光打印机,不知道什么时候自己启动了。纸槽里,一张A4纸正慢慢滑出来,墨粉的味道在冷空气里散开。
打印机打完了,安静下来。
沈夜走过去,拿起那张纸。
纸上只有一行字,是打印体,工工整整:
“地下室钥匙你拿到了。接下来,去你最早丢东西的地方。”
“……最早丢东西的地方?”沈夜皱眉,“我在哪儿最早丢过东西?”
打印机没有回答。
但沈夜注意到,那张纸的背面,有浅浅的墨痕,像是之前打印过什么,又被擦掉了。他把纸翻过来,对着光,辨认出几个模糊的字:
“幼儿园。”
“微笑幼儿园。”林小雪的声音忽然变了调,“你最早丢东西的地方,是微笑幼儿园?”
沈夜想起来。那个A级副本,那第8条园规,那枚他捡到的透明芯片。
“那里藏着什么?”他问。
打印机又响了。这一次,只打出了一个字:
“门。”
沈夜低下头。他忽然想起,三年前那份代码草稿的最后一页,老周在下面写过同一个字。
门。
他抬起头,看着机房里那些嗡嗡运转的服务器。他知道,自己脚下的这扇门,比他想象的要大得多。而他要找的东西,也不止一家打印店。
“老周把这台服务器留在这里,守了三年后门。”沈夜说,“他守的,就是通往幼儿园的那扇门。他把‘门’的钥匙,拆成了两半。一半挂在打印店的墙上,另一半,在幼儿园里。”
“那另一半钥匙,长什么样?”零号问。
“不知道。”沈夜说,“但我知道一个线索。第8条园规。当初在微笑幼儿园,那条园规被涂掉了一部分。我一直在想,被涂掉的那部分写的是什么。现在我知道了:被涂掉的,可能就是‘门’的位置。”
“你确定?”
“不确定。”沈夜承认,“但打印机把我们指向幼儿园,老周又把门藏在幼儿园。两条线指向同一个地方,巧合的概率,约等于零。”
“走吧。”他把纸折好,塞进口袋,“回幼儿园。”
零号飘到他肩头,声音很低:“沈夜,你刚刚进来的时候,我注意到一件事。”
“什么?”
“服务器上的136条提交记录,是完整的。”零号说,“但其中有一条,刚刚发生了变化。就是你查过的那条‘把门修好了’。它的提交时间,从三年前,变成了今天。”
“……今天?”
“就在我们进地下室的时候。”零号说,“有人,正在今天,重新提交这条记录。”
沈夜的手机,在口袋里震了一下。
他掏出来看,是一条短信,号码是空的。短信只有一行字:
“第七层,等你,别走正门,走打印店后门。”
最新网址:www.00shu.info