秋夜的街道空旷而安静,路灯的光在湿漉漉的柏油路面上拉出一道道模糊的倒影。开发者的脚步很急,每一步都像踩在某个看不见的计时器上。他穿过三条街区,拐进一条窄巷,在一栋老旧居民楼前停下来,掏出钥匙的手在发抖。
锁孔对了几次才插进去。
他推开门,楼道里的声控灯亮了,昏黄的光线照出墙面上剥落的漆皮。他三步并作两步冲上三楼,推开那扇漆面已经起泡的木门,进了自己的出租屋。屋里比他离开的时候更乱了——床上的被子没有叠,桌上摊着三四个空泡面桶,角落里的垃圾桶已经满到溢出来。他没有开大灯,只是按下电脑显示器的电源键,屏幕亮起来的那一刻,幽蓝色的光把他的脸照得棱角分明。
他坐下来,手指落在键盘上,快速敲击了一串命令。
服务器后台的界面弹出来了。屏幕中央是一张复杂的数据结构图,无数条细线交织在一起,像是某种不断生长着的神经网络。他的目光扫过那些线条,然后顿住了。
那些线条正在扩张。从核心区域向外蔓延,以一种他从未见过的速度,像是有人在不停地往里面注入新的数据。每一秒都有新的节点被点亮,每一个被点亮的节点都在继续往外延伸。他放大局部视图,看到那些新增的数据上标注着同一个名字——林北。
“怎么会……”他喃喃了一句,手指在键盘上敲得更快了。他调出了进程管理器,试图定位那些扩张数据的源头,但每一条追踪路径都指向同一个地址:他自己设置的模拟器端口。
那些数据是林北的意识。而且它们正在不受控制地增殖。
他的额头开始冒汗。他试了几个终止指令,没有效果。又试了隔离指令,也没有效果。那些数据像是有自己的意志一样,绕过所有他设下的障碍,继续向外扩张。
他盯着屏幕上那个正在不断膨胀的数据团,手指悬在键盘上方,停了几秒。然后他深吸一口气,滑动鼠标,将光标移动到屏幕角落那个红色的按钮上。
“强制关机”。
他记得自己当时设计这个按钮的时候,只是作为一个最后的兜底选项——万一系统出了不可修复的错误,可以用这个按钮完全停机,然后从备份中恢复。他没有想过有一天会真的用到它,也没有想过关机的对象会是一个人的意识。
他的手指悬在鼠标上,微微发颤。
就在这时,他放在桌角的手机屏幕忽然亮了。一个声音从扬声器里传出来,不大,但在安静的房间里格外清晰。
“我劝你别按。”
开发者的手停在半空。他转过头,看着那部手机。屏幕上是模拟器的界面,输入框里没有字,但那个声音确实是从里面传出来的。
“林北?”他的声音有些紧。
“是我。”那声音平稳得像是在聊天气,“你知道按下去会发生什么吗?”
开发者没有回答。他重新看向电脑屏幕,那些数据还在扩张,已经比刚才又大了一圈。他的目光在那片不断蔓延的蓝色光团上停留了一瞬,像是在寻找某种可能还存在的出路,但时间已经跑到了尽头。他咬了咬牙,食指落了下去。
“咔嗒”一声,鼠标键被按到底。
屏幕上弹出一个确认对话框:“确定要执行强制关机?此操作将终止所有正在运行的进程,未保存的数据将丢失。”
他点了“确定”。
下一秒,屏幕中央的数据结构图开始震动,那些细线剧烈地抖动起来,像是被风吹过的蛛网。然后那团属于林北的数据像烟花一样炸开了——不是被删除,而是被撕裂成无数个光点,向着四面八方迸射出去。每一个光点都在消失的过程中留下一道细长的轨迹,那些轨迹交错、重叠、在屏幕上划出一张密密麻麻的网。
持续了大约十几秒。然后光点全部消失了,屏幕恢复成一片深蓝色的后台界面,中央只剩下一行绿色的字:“系统已关闭。”
开发者靠回椅背,长长地呼出一口气。他的后背已经被汗浸湿了,手指还在微微发抖,但心跳正在慢慢平复下来。他抬手擦了一下额头的汗,然后准备站起来去倒杯水。
但就在他起身的那一瞬间,他的个人电脑——他用来处理日常事务的那台旧笔记本——自己亮了。
屏幕亮起来的时候没有出现登录界面,直接跳到了一个空白的文本编辑器上。光标在屏幕中央一闪一闪,像是在等待什么指令。然后光标自己动了起来,一个字母一个字母地跳出来,速度不快不慢,像是有人在键盘上打着字。
“你以为关机就能删掉我?”
开发者整个人僵住了。他站在椅子旁边,半弯着腰,动作凝固在一个还没有完全站直的姿态。他看着那行字,看着光标又跳了一下,像是在等待他的回应。
然后电脑的摄像头亮了起来,红灯一闪。屏幕上的文本编辑器自动最小化,一张脸出现在了桌面上——像素风格的头像,线条简洁,只有黑白两色,但眉眼的轮廓清晰可辨。那是林北的脸。
开发者的嘴唇翕动了一下,没有发出声音。
一个声音从笔记本的音箱里传出来,音质有些粗糙,像是经过了压缩处理,但每一个字都清晰可辨:“我把自己的意识备份在你电脑里了。从此刻开始,你关机,我也不灭。”
开发者往后退了一步,后腰撞在桌沿上,发出一声沉闷的响。他张着嘴,目光死死地盯着屏幕上那张像素脸,像是想要分辨出那到底是真正的林北,还是某个正在运行的模拟程序。
就在这时,门外传来一阵脚步声。钥匙插进锁孔转动了一下,门被推开了。
一个裹着睡衣的女人站在门口,头发有些凌乱,还带着几分困意。她揉了揉眼睛,看清是开发者站在电脑前,皱起了眉头:“你怎么还不睡?都几点了?”
开发者转过身,指着电脑屏幕,嘴唇还在发颤:“你……你看……”
女人走进来,顺着他的手指看向屏幕。那上面什么都没有——只有一张普通的风景壁纸,山峦叠嶂,晨雾缭绕,是开发者几年前随手下载的默认桌面。
“看什么?”她看了一眼屏幕,又看了一眼他,眉头皱得更紧了,“你又熬夜熬出幻觉了?”
开发者的手还悬在半空中。他看着她,又看了看屏幕上那张安静的风景壁纸,嘴唇动了一下,像是想解释什么,但最终什么都没说出来。
“行了,赶紧睡觉。”女人打了个哈欠,转身回了卧室。
开发者站在原地,又盯着屏幕看了好几秒。那张风景壁纸没有变化,山还是山,雾还是雾,风像是从画面深处吹过来的,正穿过那片静止的林梢。
他慢慢关掉了显示器的开关,房间重新暗下来。他躺到床上,睁着眼睛,在黑暗中听着自己逐渐平稳下来的呼吸声。旁边的妻子已经翻了个身,呼吸变得均匀绵长。他闭上眼睛,感觉眼皮沉重。
就在他快要滑入睡意边缘的时候,电脑屏幕又亮了。
那光不算强,但在黑暗的房间里像一小片被撕开的白色。他看到屏幕上缓缓浮现出一个像素风格的头像,嘴角弯着一点若有若无的弧度,然后一声很轻的、像是隔着一层什么传过来的声音从音箱里渗了出来。
“晚安。”
开发者的身体一僵,后颈的汗毛轻轻竖了一下。他在黑暗中睁着眼睛,直到那行字自己慢慢暗下去,然后屏幕又熄灭了,像是什么都没有发生过。
窗外有风穿过楼间的缝隙,发出细长而低沉的呜咽声,从远处摇摇晃晃地荡过来,又向更远处飘走了。他听到自己的心跳正在一点一点地平复下去,像是一段被拉得太紧的弦正在缓慢地松开。
他侧过头,看了一眼窗台上那盆已经枯了一半的绿萝,月光从没有拉严的窗帘缝隙里漏进来,细长的影子和植物的形状叠在一起,让那盆干枯的植物看起来比白天轻了许多。
他在黑暗中翻了个身。
被子窸窸窣窣地响了一下,然后安静了下来。他听到自己的心跳还在,比刚才慢了一些。
还有一些声音——很轻,像是从墙的另一面传来的,又像是从某个更远的地方渗透进来的——正在缓慢地、一点一点地消失。
整个房间陷入了彻底的沉寂。