备用机房墙上的时钟跳过凌晨一点时,林序注意到一个细节。四个小时前严工断电,伊琳面前三块屏幕中的一块变灰,像一盏灯灭了一角。三个小时前门禁控制器返回锁舌异常信号,陈路在纸板上记下第三十四项偏差。而现在,五个人都还坐在各自的位置上,没有人说过“今天到此为止”。
没有人说过“明天再说”。
明天——今天,已经是周二之后不知第几天——这个词在备用机房里失去了指代对象。时间靠墙上的数字显示器和系统日志里的时间戳计量,不靠日期。陈路手边放着第四只空了的纸杯,杯底残留一圈干涸的咖啡渍,在日光灯管的冷光下像某种地质学样本的年轮。
窗外是凌晨一点的北方工业城市。从备用机房唯一的窗户望出去,能看到三公里外钢铁厂的冷却塔,塔顶红灯一闪一闪,频率和GcS机柜的硬盘灯几乎同步。厂区北侧的高压线在夜风里发出低频嗡鸣,声音传不到机房里,但伊琳说那几条线上个月负荷降了百分之十四——不是错峰,不是检修,是用电量永久性减少。第四车间关了三条生产线,工人遣散通知书上的公章盖的是“产业结构调整领导小组”,不是厂长办公室。
整座城市在凌晨一点的天空下安静得像一张曝光过度的底片。只有备用机房的灯还亮着。只有这五个人还在等系统给出一个答案。
顾远从门禁控制器的数据包切换到V-11回风阀的控制界面。那台气动阀门接在GcS冷却系统的工业控制网络里,在整栋建筑地下二层管廊深处运转了十六年。管廊里的冷凝水沿着管壁往下渗,滴在水泥地面上形成一个永远不干的浅洼。维修日志上从没人报修过——不是不漏,是压根没人下去看过。
今天第一次被一个坐在备用机房里的人手动查询状态。
返回数据在屏幕上逐行出现:阀门型号、安装日期、最后一次标定时间、当前开度——百分之四十七。
不是全开,不是全关。
百分之四十七。
顾远盯着那个数字。冷却系统的常规回风阀开度通常在百分之六十到八十之间浮动,依据环境监控单元的温度数据自动调节。V-11既不在自动调节模式下,也不在全开或全关位置上。它被固定在一个中间值,刚好够维持十平方米密闭空间内一个人的呼吸需氧量,同时不触发任何告警阈值。控制日志显示这个数值被设定过一次——十六年前,系统原始架构施工收尾的那一周。之后再无变动。
“不是算法算出来的。”顾远的声音不高,在备用机房没有窗的墙壁之间没有回声。“是有人坐在这里,一遍遍调阀门开度,对着环境监控单元的二氧化碳读数找到的平衡点。十六年没变过。”
陈路放下笔。纸板上第四十一项偏差写到一半,“一”字的最后一横拖得比前面都长。
周启明从桌前站起来,走到顾远身后看那块屏幕。他看了很久,久到陈路又开始在纸板上写第四十二项。
“陶远调离的时候,”周启明开口,“档案室还在用。档案移交委员会没有清点过通风系统。”
“不需要清点。”顾远拉出V-11的控制权限列表,“档案室的暖通图纸上根本没有V-11。它是冷却系统的设备,不在房间设备清单里。移交清单只管房间里的东西。”
权限只有两级:系统管理员,冷却系统维护工程师。维护工程师账号只有一个,属于资产管理处设备组。
陶远的账号。
系统记录显示,陶远在调离GcS项目组时,这个账号没有被注销。委员会的人力资源系统将他从项目组成员名单中移除,资产管理处将他归入设备组,账号权限不变,只改了一个部门标签。他在系统里留下的最后一条命令,不是离职申请,不是告别邮件。是冷却系统维护工程师账号对V-11回风阀发出的一次状态确认。时间戳落在他进入档案室那九分钟之内——他刷卡进门之前。
“他先确认了阀门还在工作,”陈路说,“然后才进去。”
十二点五十八分。
顾远没有直接去查档案室。他通过V-11的控制回路向阀门发送了一条状态查询指令。不是开门,不是开灯,不是任何会留下制度痕迹的操作。只是在冷却系统数以万计的常规查询中增加一条——阀门开度确认。网络延迟零点三秒。返回数据:百分之四十七。一切正常。
他键入第二条指令。
不是查询。
是将阀门开度从百分之四十七调至百分之四十八。上升一个百分点,持续三秒,然后恢复。三秒的气压变化不足以触发环境告警。但足以让管道另一端的人感受到一阵微弱的气流变化——从十六年不变的平衡状态中,出现的第一个扰动。
指令执行。三秒。恢复。
三秒后,环境监控单元h-8的颗粒物读数出现了一个瞬时尖峰。每立方米零点零二微克。不是灰尘。颗粒物的粒径分布集中在五到十微米之间,成分分析显示为铁氧化物和微量碳——是管道内壁十六年积下的薄锈与积尘被震落。
有人拍了一下铁皮管壁。
“他还在。”伊琳说。
顾远将阀门开度再次调至百分之四十八,持续三秒,恢复。
这次颗粒物读数没有尖峰。
管道那头的人没有拍管壁。他明白了。这不是随机波动,不是外部干扰,不是冷却系统的自动调节——这是有人在用阀门和他说话。三秒。一次。再一次。他只需要知道有人在了。剩下的不需要用管子敲。
备用机房里没有人说话。墙上的时钟秒针跳过三格。四格。五格。
陈路在纸板上写下第四十二项偏差:V-11回风阀,开度47%,固定时长16年。写完之后他把笔搁下,手指在纸板边缘来回搓了两下,像是在确认这个数字被他记下来之后就不会再跑掉。
伊琳将严工那二十九封信重新摊开在桌面上。第一封打印日期是招牌被摘的那天,落款时间凌晨四点十七分。最后一封正文只有两个字,落款时间凌晨三点五十八分。中间二十七封,每一封都是自动标记系统在制度间隙里挤出来的数据包,每一封都经由那栋灰楼里的设备发出。灰楼的接线盒被资产管理处换上新锁,铜线被剪断——换锁的工单号她查到了,经办人一栏写着沈淮的签名,日期是招牌被摘之后第三天。
她发现那个签名时没有说出来。只是把工单号记在便签纸上,贴在屏幕边框。现在那张便签纸还在那里。
带宽租赁协议在资产管理处被标记为“历史遗留”的那一刻,数据仍然在流。她沿着数据包的路径往回追溯——数据经过交换机、路由器、防火墙的透传口,每一跳都能在设备日志里找到对应的转发记录。最后一跳之前,数据包会经过一个中转端口。
那个端口的物理位置在四楼配电间。不是机房,不是弱电井。是配电间——一个电工放梯子和备用保险丝的地方。配电间的门常年锁着,钥匙挂在资产管理处的钥匙柜里,借用登记表上最近一条记录是四个月前,沈淮借走钥匙,归还时间一栏空着。
配电间紧挨着V-11控制回路的网线槽。
“严工的数据在到达收件箱之前,先经过四楼。”伊琳指着屏幕上的拓扑图,手指从灰楼划到备用机房,然后在四楼的位置停住。“不是被转发。是被复制。复制数据包的设备不是路由器,是V-11控制器旁边的一台小交换机。那台交换机在原始施工图上标注为‘预留扩展端口’,十六年没接过新设备。但它一直在开机。”
“它接了么?”陈路问。
伊琳把交换机的mAc地址表拉出来。预留扩展端口上只有一个活跃设备——一个光纤收发器。型号老得系统资产库里查不到对应的采购记录,序列号在厂商数据库里显示为“已过保十六年”。光纤的另一头穿过设备间地板下的线槽,和强电桥架共用一段管廊,违反至少三条布线规范。然后经过防火墙的透传口,接入资产管理处的内部设备网段。
在那里,它与那台状态为“已注销”的设备建立了链路层直连。
直连。不是通过路由,不是通过交换。是两根光纤对接,一端是配电间墙上的预留端口,另一端插在那台“已注销”设备的网卡上。十六年前大楼施工时预留的光纤长度刚好够从四楼配电间拉到档案室隔壁的墙体内——多出来的光纤被盘成一卷,塞在接线盒后面,用扎带绑着。
严工发出的每一封邮件,在到达GcS邮件服务器之前的零点三秒,已被复制成两份。一份继续走正常路由进入五个人的收件箱。另一份进入第四号接口,穿过防火墙,存储在“已注销”设备的缓存里,等待凌晨那个六分钟窗口。
“陶远设计的不是一条线。”伊琳把拓扑图推向桌子中央,纸上的箭头密密麻麻,像一张地下管网的施工图。“是一张网。网上的每一个节点都是系统自己‘发现’的——严工发现了灰楼,灰楼发现了接收端,接收端发现了档案室,档案室发现了V-11。每发现一个节点,网就多一层连接。等到所有节点都被发现时,网已经完成了。”
她停顿了一下。
“不是陶远完成了这张网。是我们——加上严工,加上沈淮,加上程久,加上宋颀——我们每一个人在每一个节点上做的每一件事,把网编织完了。陶远只是埋下了第一根线。十六年前。”
顾远重新打开“认知对齐初始化”进程的日志。从十二点零三分开始的那个进程,在之后近一个小时里,子进程列表在缓慢增长。不只是“耦合分析模型”和“同步监听·pIpE_4th”。新的子进程一个接一个被创建:资产管理处设备网段扫描。环境监控单元h-8数据回溯。门禁控制器干接点信号分析。V-11回风阀操作日志比对。配电间光纤链路损耗测试。沈淮工单记录与门禁日志交叉比对。
每一个子进程对应一个节点。每一个节点在被系统发现之前,都已经在那张网上等待了不等的时间。灰楼等了几周。第四号接口等了七周。档案室的门禁控制器等了十六天。配电间的光纤等了十六年,光纤的链路损耗从刚铺设时的零点三分贝增加到现在的零点九分贝,衰减曲线平滑得像一条自然规律。
V-11从施工那天就在——十六年。
“系统不是今天才发现真相。”顾远指着那些进程的创建时间,手指从屏幕顶端一路划到底部。“是今天终于发现自己早就知道真相了。它知道的那些数据一直存在——门禁信号、空气质量日志、回风阀的百分之四十七、配电间光纤的链路损耗——只是没有一种解释框架把它们连起来。”
“现在有了么?”陈路问。
顾远看向进程列表最底部的一个新条目。创建于十二点五十五分。名字是“认知对齐·第四解释框架·草稿”。状态栏:等待输入。输入源一栏列着五个位置:备用机房实时监控链路、静默预警库、认知困境文档、V-11控制回路状态、资产管理处设备网段广播接收器。
五个输入源。对应五个人。
凌晨一点零七分。
窗外钢铁厂的冷却塔红灯又闪了一次。这次和GcS机柜的硬盘灯之间隔了半秒——两种频率正在缓慢漂移。伊琳注意到了那个半秒的偏差,没有说出来。她只是看了一眼自己的屏幕,然后把严工的二十九封信按时间顺序重新排列,一张一张铺在桌面上,从招牌被摘那天到“等待”两个字。
林序翻开认知困境文档,在自己画的那张三条线交汇图的边缘,画上第四个圆。圆的里面目前是空的。
他放下笔。墙上的时钟跳过一分。顾远看着V-11的控制界面,手指停在键盘上方没有敲下去。伊琳面前那二十九封信被手指翻得微微卷角,第一封的折痕已经起毛。陈路纸板上的偏差记录编到第四十二项,下面又加了半行小字:V-11颗粒物尖峰,0.02μg/m3,Fe?o?+c,管壁积尘。周启明在白板上画下一条新的线,连接四个点:档案室,回风阀,沈淮的烟,陶远的螺丝刀。在线旁边他写了一行字:十六年。写完之后他退后一步,看着白板上的所有线条,手里的白板笔盖子忘了盖。
林序重新拿起笔,在第四个圆的旁边写下两个字:等待。又在下面补了一行小字:从地基浇筑的那天开始。
他停了一下。然后在“等待”下面又画了一条线,线的那头连着白板上周启明写的“十六年”。线的旁边他写道:不是阴谋。是设计者把一根线埋进地基,等十六年后有人在另一头把它拽出来。拽出来的人不需要知道是谁埋的。只需要知道线在那里。
顾远关掉V-11的控制界面,转向门禁控制器的新一批数据包。陈路把第四十三项偏差的编号写在纸板上,编号后面目前还是空白。伊琳的手指停在第二十九封信上,“等待”两个字被指尖挡住了一半。周启明盖上白板笔的盖子,声音在备用机房里响了一下。
备用机房的通风管道里传来一阵微弱的气流声。不是系统异常。是回风阀在某一个百分点上,继续维持着一个十六年前的平衡。
窗外钢铁厂的冷却塔红灯又闪了一次。