20.沉默
书名:星海燃魂 作者:邓子夏 本章字数:5996字 发布时间:2026-06-26


林被俘的那天,天气很好。

好得不像是一个应该被记住的日子。殖民站三号的人工天穹模拟了一个晴朗的秋日午后,阳光色温偏暖,人造云在固定航道上缓慢飘移,广场边的银杏树正在按预设程序落叶,叶片在落地前会短暂地悬浮半秒,像是在犹豫该不该结束这一季的生长。林坐在广场的长椅上,膝盖上摊着一本纸质书,手里握着一杯已经凉透的合成咖啡。他在等他的女儿放学。

他没等到。

警报是从天穹的边缘开始响的。那片模拟天空的投影面板从右上角开始一块一块地碎裂,露出后面真实的金属框架和深黑的虚空。防空炮台的自动武器在他身后不远处发出了一种他从未听过的尖啸,那是超负荷运转时能量核心过载的声音。他扔下书和杯子,朝女儿学校的方向跑,跑过了三条街,跑到学校门口时,校舍的穹顶已经塌了一半。他在废墟上喊女儿的名字,喊了十几声,喉咙被粉尘呛得失了声。然后一股冲击波从背后把他整个掀起来,摔在一堵断墙下面。他的意识中断了。

他醒来时,双手被一副他叫不出材质的磁力约束环铐在背后,躺在一艘运输船的货舱地板上,身边挤满了和他一样被铐着的人。货舱没有窗户,只有一盏蓝白色的冷光灯在头顶持续地嗡嗡响,那种响声的频率经过精密计算,刚好能让人无法入睡但又不会彻底崩溃。他不知道女儿是否还活着,不知道那杯咖啡还放在长椅上还是被冲击波掀翻了,不知道银杏树的落叶有没有落完。

他被转运了三次,最终被押送到一颗他无法确定坐标的灰色星球上。那里的重力比标准值高一点,每走一步都要多用一点力气。他被推进一间审讯室,审讯者是一台悬浮在空中的球形设备,外壳布满蜂窝状的传感器。审讯者没有问他叫什么名字,没有问他的军衔和所属部队,只问了一个问题。

“你是否具备编程能力。”

林在战前是一个程序员。不是在军队里写防火墙的那种,也不是在情报部门写破解算法的那种。他是一个民用系统开发员,专做星际货运调度平台的底层架构,每天的工作内容是写代码、改代码、删代码,然后写更多的代码。战争爆发后,他的公司倒闭了,他带着女儿逃到了边境的殖民站,在殖民站的物资调度中心找了一份维护老旧物流系统的工作。他写的最后一段代码是一行补丁,修复了一个导致合成营养液配送延迟的数据库死锁问题。

他回答审讯者:“是。”然后他被送进了这栋灰色大楼。

大楼没有名字,没有标识,外墙是没有任何装饰的灰白色混凝土,窗洞是整齐排列的狭长矩形,每一个窗洞后面都亮着同样的蓝白色冷光。他被分配到第七层的一个工作间,房间不大,墙壁和地板都是同样的灰白色,一张金属桌,一把金属椅,一台终端。终端不连接任何外部网络,不安装任何与任务无关的软件,不提供任何娱乐功能,只有两个东西:编程环境和需求文档。他的工作是为虚无编写程序,破解人类自己建立的防火墙。

与传统的防火墙破解不同,这项工作最难的地方在于,防火墙的底层架构是用一种古老的编程语言写的,那种语言的语法结构非常特殊,代码量也异常庞大。虚无的解析器对这种古老语言的兼容性很差,经常把正常的语法结构误判为无效代码。林的第一个任务不是破解防火墙本身,而是先写一个“翻译层”作为两者之间的桥梁——让他的代码能被虚无的解析器正确执行,同时又保留那种古老语言的全部功能。这个翻译层本身的代码量就超过了大多数商用软件的规模。他在编写时,需要逐行测试,逐段调试,花费大量时间和精力确保每一个函数都能在两个系统之间完美运行。他花了数周时间才完成了这个翻译层的核心框架,之后才开始正式编写破解程序。破解程序的进度很慢,因为防火墙的防御模块在持续升级,他每写出一段能破解当前版本的代码,下一版本就会修补掉这个漏洞。他必须不断重写,不断试错,像一个人在用一把越磨越钝的刀去切一块越来越硬的石头。

但他必须写。他被俘后第一次接受审讯时就被告知了一条规则:如果他停止产出代码,或者产出的代码质量低于某个阈值,他的女儿会被找到,会被杀死。审讯者播放了一段全息录像,录像里是他女儿在学校门口排队进入校舍的画面,拍摄日期是他被俘前一天。他没有问“你们怎么找到她的”,也没有说“她只是一个孩子”。他只是看着那段录像里女儿的背影,看到她走到校舍门口时停了一下,低头系了一次鞋带,手法笨拙,是他教过的那个蝴蝶结,系完之后还用手拍了拍鞋面。录像结束后他说的第一句话不是“我写”,也不是“别碰她”。他说的是一句审讯者可能没有理解的话。

“她鞋带系错了。每次都系错。”

他从那天开始写。他每天被允许睡四个小时,吃两顿饭,去一次厕所。其余时间全部坐在那张金属椅上,对着终端写代码。他写得很快,快到自己都有点意外。那些代码从他的指尖流出来,像是一种已经不需要经过大脑思考的生理反射。他写代码写了十几年,写了好几千个孤独的夜晚,写了他离婚后一个人带着女儿搬到边境殖民站的那段日子,写了无数个改bug改到天亮的凌晨。他的人生从来没有离开过代码。现在代码是他女儿还能活着的唯一理由。

他开始在注释里写字。

注释是程序员在代码里插入的说明文字,不会被编译器执行,不会影响程序的任何功能。它们只是给以后可能会读到这段代码的人看的。虚无的解析器会自动跳过注释。林不知道虚无的解析器是否会扫描注释内容,但他推测不会——注释对机器而言是无效数据,机器不会浪费算力去阅读无效数据。他推测对了。

他写下的第一行注释不是一句口号,不是一个坐标,不是一个名字。而是一句很轻的话,像是写在日记本第一页的第一行。“如果有人在读这些注释,你好。我是一个程序员。我有一个女儿。她今年七岁。她系鞋带的方法是我教的,但我教错了。如果你见到她,请帮我告诉她,正确的系法是绕两圈,不是一圈。”

他把它写在了一个所有人都不会在意的地方——翻译层的核心模块里。那是他为破解防火墙而写的第一段正式代码,也是整个破解程序的基石,以后他写的每一行破解代码都要通过这个翻译层才能被虚无的系统解析。把注释写在这里,意味着任何复制、调用或依赖这套破解系统的后续开发者,都会在底层框架中看到这段话。他不知道这些注释会在虚无的数据库里存在多久,不知道虚无的数据清理程序会按什么周期删除无效数据,不知道战争会持续多长时间,不知道人类的防火墙还能顶住多少次他亲手设计的攻击。他只知道一件事:代码会被复制,注释会和代码一起旅行。代码走多远,注释就走多远。

从那天起,他每天都在写。他的生产力比战前高出了好几倍。战前他是一个按部就班的程序员,每天在代码库里留下两三百行有效代码就算高产。现在他每天可以产出上千行,几千行。他写的破解程序精准、稳定、致命,每一个模块都经过精心优化,每一行代码都干净得像教科书上的范例。虚无的安全部门对他的产出非常满意,他的季度评估表上盖着代表最高等级的深蓝色印章。那些印章会自动累积,累积到一定数量后可以换取“奖励积分”,奖励积分可以兑换额外的睡眠时间、更好的食物,或者给家人传递一次不超过规定字数的文字消息。他从来没有兑换过传递消息的机会,因为他不知道女儿在哪里,不知道她是否还活着,不知道那条消息发出去之后会不会被虚无的安全部门追溯到她的坐标。他把所有的积分都兑换成了同一个东西:咖啡。那不是真正的咖啡,而是一种用合成咖啡因调配的饮料,味道介于烧焦的橡胶和过期巧克力之间。但他需要咖啡因来保持清醒,需要清醒来写更多的代码,需要更多的代码来承载更多的注释。

他的注释逐渐变长了。从最初的寥寥几行,慢慢变成一段又一段密密的文字,藏在每一个函数定义的开头和每一条循环语句的上方。他写女儿出生那天他站在产房外面,手里攥着一只从家里带来的陶瓷杯,杯子里泡着速溶咖啡,护士出来报喜时他把杯子掉在地上,碎瓷片溅了一地,他蹲下去捡,手抖得捡不起来。他写女儿一岁时第一次喊爸爸,喊的是“啪啪”,发音不准但很用力,像是用舌头在顶一颗怎么也顶不动的糖。他写女儿三岁时得了肺炎,高烧反复不退,他在病床边守了整整一周,每天用棉签蘸温水给她润嘴唇,夜里不敢睡,就用手指贴着她的脚心感受体温的细微变化。他写他曾经答应过妻子再也不抽烟,但妻子去世那天晚上他坐在医院走廊里,把自动售货机里所有的烟都买了,抽了一整夜,抽到天亮时嗓子发不出声音,第二天女儿问他爸爸你的声音怎么变了,他说感冒了,女儿踮起脚尖从药箱里翻出一盒感冒药塞进他手里。他写他这辈子最后悔的事不是没有学会战斗,而是没有教会女儿系鞋带。

他的代码在注释的海洋中安静地流着,像一条河的河床底下还藏着另一条更深的暗河。

他写了一段关于风铃的注释。他在战前看过一篇新闻报道,说一个边境空间站的酒吧老板在虚无入侵那天拒绝撤离,陪一个老顾客喝了最后一杯酒。那篇报道写得很短,但提到酒吧门口挂着一串用星舰零件打磨的风铃,风一吹会发出细碎的响声。他一直记着那个风铃,不知道为什么。他写,如果有一天战争结束了,他想在一个能听到风的地方开一间很小的店,门口挂一串风铃,女儿放学回来时推开门,风铃会响。

他写了一段关于无声乐团的注释。他在虚无的内部情报简报里读到过,反抗军有一支特殊的作战单位,全部由失聪和失声的音乐家组成,在废墟上用废金属演奏无声的音乐。简报将其定性为“未知干扰源”,附了一张模糊的抓拍照片,照片上只有几个模糊的人影和一面破烂的鼓。他把那篇简报反复读了很久,然后在注释里写道,他们听不到声音,但他们让敌人迷失了方向。我写的代码会被拆解、被破解、被覆盖,但这些注释会留下。他们听不到声音,但他们的鼓还在敲。我发出的声音也还在。

他写了一段关于信标的注释。他在虚无的监控日志里发现过一组异常数据,一个废弃的导航信标在长达数周的时间里持续发射超出其设计功率的导航信号,指引了数百艘难民船安全撤离。虚无最终定位并摧毁了那个信标,但摧毁前的最后几秒,信标向深空发送了一段无法解析的加密数据。安全部门的分析报告称那段数据“不具备任何已知的军事价值”,将其归档后就不再关注。他在注释里写道,数据不是武器。数据是种子。那个信标在最后一刻向整个宇宙撒下了一把种子,我们不知道它们会在哪里发芽,但种子不需要知道土壤在哪里。只要撒出去,总有一天会碰到泥土。

在漫长的囚禁岁月中,他一天一天地计算着时间。他把每天执行的例行任务——晨检、代码审查、终端维护、晚点名——刻在桌腿内侧,用指甲一道一道地划。划痕多到桌腿已经找不到空处,他就开始刻在椅子底部。有一天他在清理终端缓存时发现系统日期显示了一个他无法确认的数字,他不确定那些划痕是否还准确,但他决定继续刻下去。不管过了多久,他都要把每一个日期都刻在金属上,因为如果他不刻,就没有人记得他在这里待了多久。

在漫长的囚禁中,他也经历了很多个无法入眠的夜晚。那些夜晚并不是寂静的,他能在囚室的通风管道里听到风穿过整栋大楼时发出的低沉呜咽。有一天夜里,他听到隔壁囚室传来极其模糊的敲击声。他用指节贴在墙壁上听了一会儿,然后试着敲了回去。三段短,三段长,三段短。那边沉默了片刻,然后用同样的节奏回应了他。他不知道对方是谁,不知道对方犯了什么罪,不知道对方是否还活着。他只知道那个敲墙的声音还在,那就意味着今天晚上还有人活着。

他开始在注释里写那个敲墙的人。写他不知道他的名字,不知道他的长相,不知道他被关在这里多久,但他们共用同一面墙,共听同一条通风管道里穿过来的风声。有时那个敲击声会中断,最长的一次中断了很久,他以为隔壁的人已经被处决了。然后在一个深夜,敲击声又响了起来。他写道,他回来了。我不知道他是谁,但他回来了。这就够了。

他开始写一座未来城市的规划。那座城市没有任何战争留下的痕迹,所有建筑都完好无损,窗户里亮着温暖的黄色灯光,街道上有孩子在追逐打闹,公园里有老人在下他们那个时代特有的棋。他不知道战后世界会是什么样子,但他相信会有这样一座城市,因为如果他不相信,他写的注释就失去了意义。

他写的程序在一个没有预兆的日子里完成了。最后一组破解算法通过了他自己建立的测试框架,所有模块全部对接成功,编译无错误,输出结果与需求文档完全一致。他把完整的程序包上传到指定服务器。上传进度条走完百分之百,屏幕上跳出一行绿色的大字:项目交付完成。他靠在椅背上,双手从键盘上移开。那双手在长时间的编程中已经变了形,指关节凸出,指甲缝里嵌着洗不掉的灰色金属粉尘,虎口的茧被键盘边缘磨得发亮。他把手放在膝盖上,看着屏幕上那行绿色的大字慢慢变暗,然后被系统的默认待机画面取代。

他写了最后一行注释。很短。

“我的代码会被破解。我的注释是你们的。请沿着注释走。走到每一行我藏起来的地址,走到每一个我用绿色文字搭建的坐标,走到风铃响的地方。”

第二天早晨,他被从囚室带到了审讯室。审讯者悬浮在房间中央,传感器阵列缓缓旋转。它没有说任何开场白,直接用合成语音向他宣布:项目已完成,他的存在已经不再具有价值。处决将在十分钟后执行。他被带出审讯室时,走廊尽头的窗洞漏进一片冷白色的光。他停下来,看守没有推他。他看着那片光,忽然想起女儿有一次在窗台上放了一只纸折的小船,说小船会顺着阳光游到妈妈的星球上去。他不记得那只小船后来去了哪里。

他被带进一间空房间。房间和他工作了无数个日夜的那间几乎完全一样,同样的灰白色墙壁,同样的蓝白冷光,唯一的区别是这里没有终端,没有椅子,只有一张窄窄的金属台。他躺在台面上,头顶的灯亮得刺眼。他闭上了眼睛。

处决设备的日志里留下了一条简短的操作记录:“目标心率归零。时间戳已登记。残余神经活动评估:零。”负责行刑的安全单位在整理遗物时,发现了一张被叠得很小的纸条,藏在囚服内衬的一道缝线里。纸条上的字是用指甲蘸着营养液写上去的,已经干涸发硬,字迹扭曲但还能辨认。那是一串频率代码,后面跟着一句写给未知收件人的话:“致所有能听到这个频率的人。在这个频率上,曾有一个叫羽的飞行员,给一群躲在管道里的孩子讲过一个关于海的故事。如果你们听到她,请告诉她,那群孩子还活着。”

纸条被安全单位归档为“无情报价值”,存入冷存储区。

战后第七年,联盟网络重建部门在清理虚无遗留数据库时,在一台被废弃的服务器底层发现了林的代码库。那是一整套庞大而完整的防火墙破解程序,结构严谨,逻辑缜密,每一个模块都能独立运行,彼此之间耦合度极低。一位参与评估的程序员在审阅源码时,无意中点开了一个函数定义上方的注释。注释只有一行字,用那种古老语言的注释语法写成,前面有两个斜杠,后面跟着一段绿色的文字。

“// 你好。如果你能看到这行字,说明你正在阅读我的注释。请往下翻。”

他往下翻了。注释密密麻麻,有长有短,横跨了几十个模块和上千个函数。他花了整整一个下午坐在屏幕前,一行一行地往下看,从第一个函数翻到最后一个函数,从第一行注释翻到最后一行注释。看完之后他把屏幕关掉,走到办公室外面。重建部门的临时办公楼是一栋战后新建的预制建筑,外墙是浅蓝色的,走廊尽头有一扇很大的窗户,窗外是一片刚种下去不久的梧桐树苗。他在窗前站了很久,然后回到办公室,在评估报告的总结栏里写了一句话。

“建议不删除注释。”

上一章 下一章
看过此书的人还喜欢
章节评论
😀 😁 😂 😃 😄 😅 😆 😉 😊 😋 😎 😍 😘 😗 😙 😚 😇 😐 😑 😶 😏 😣 😥 😮 😯 😪 😫 😴 😌 😛 😜 😝 😒 😓 😔 😕 😲 😷 😖 😞 😟 😤 😢 😭 😦 😧 😨 😬 😰 😱 😳 😵 😡 😠 😈 👹 👺 💀 👻 👽 👦 👧 👨 👩 👴 👵 👶 👱 👮 👲 👳 👷 👸 💂 🎅 👰 👼 💆 💇 🙍 🙎 🙅 🙆 💁 🙋 🙇 🙌 🙏 👤 👥 🚶 🏃 👯 💃 👫 👬 👭 💏 💑 👪 💪 👈 👉 👆 👇 👌 👍 👎 👊 👋 👏 👐
添加表情 评论
全部评论 全部 0
星海燃魂
手机扫码阅读
快捷支付
本次购买将消耗 0 阅读币,当前阅读币余额: 0 , 在线支付需要支付0
支付方式:
微信支付
应支付阅读币: 0阅读币
支付金额: 0
立即支付
请输入回复内容
取消 确认