1冗余代码2025年12月22日,冬至。北京的下午四点,
天色已经像一块浸了水的脏抹布,阴沉沉地压在望京SOHO的玻璃幕墙上。
周壹盯着屏幕右下角的时间,秒针跳动了一下,变成了16:00。“周工,流程走完了吗?
”HR的声音很轻,像是怕惊扰了什么,又像是为了掩盖某种例行公事的冷漠。
她站在工位旁,手里拿着一个透明的文件袋。周壹转过头,
看着这个比自己小大概五岁的姑娘,她的妆容精致,眼神却不敢与他对视。“走完了。
”周壹的声音有些干涩。他关掉了正在运行的IDE(集成开发环境),
那个黑色的窗口闪烁了一下,消失了。连同消失的,
他在这个大厂这五年来留下的所有痕迹——代码权限、内部Wiki访问权、食堂饭卡余额,
以及那种“我在改变世界”的虚幻成就感。
(ID:199508)hasloggedoff.收拾东西只用了二十分钟。
一个机械键盘,这还是他刚入职时,为了奖励自己拿到的第一个项目奖金买的,
如今键帽已经打得油亮;几本关于分布式架构的书,书脊都没怎么压平过;还有一个相框,
照片里是五年前意气风发的自己和几个同事在公司年会的合影,
那时候大家都觉得未来是线性的,是一条只会向上的阳线。现在,那条线断了。
裁员名单下来的时候,没人感到意外。AI生成代码的效率已经是初级程序员的二十倍,
而像周壹这样“不算太老但也绝不年轻”的30岁中层,成了性价比最低的冗余资产。
走出大楼,寒风瞬间钻透了优衣库的羽绒服。周壹缩了缩脖子,打了个车去北京西站。
高铁时速350公里,窗外的景色被拉成了模糊的色块。周壹靠在椅背上,
耳机里放着那个年代的老歌——周杰伦的《反方向的钟》。“穿梭时间的画面的钟,
从反方向开始移动……”他闭上眼,感觉自己像个逃兵。30岁,未婚,无房,
存款在支付了北京高昂的房租和日常开销后,只剩下一个尴尬的数字。
父亲两年前因病去世后,老家对他来说只是一个名词,而不是一个归宿。但现在,
除了那个空荡荡的坐标,他无处可去。回到县城已经是晚上九点。
南方湿冷的空气里夹杂着煤烟味和即将过年的腊肉味。周壹拖着行李箱,
走在熟悉又陌生的街道上。路灯换成了LED的,亮得刺眼,把他的影子拉得很长。
老房子在城南的家属院,红砖外墙爬满了枯萎的爬山虎。钥匙**锁孔,
转动时发出涩滞的摩擦声,像是推开了一扇通往旧时光的门。屋里很冷,甚至比外面还冷。
家具上蒙着白布,像一个个沉默的幽灵。周壹没有开灯,借着窗外的月光,他在沙发上坐下。
手机震动了一下,是前同事群里的消息。“老周,听说明天又要优化一个部门,
这日子没法过了。”“周哥回老家了?也好,休息一阵。”周壹看着屏幕,
手指悬在虚拟键盘上,最后打出了两个字:“保重。”然后退出了群聊。
在这漆黑的客厅里,孤独感像潮水一样漫上来。三十年前,1995年,就在这间屋子里,
父亲是不是也曾这样坐着?那时候父亲刚满三十岁。周壹听母亲说过,
那一年父亲做了一件惊天动地的大事。那是1995年的夏天,由于家里没装空调,
电风扇呼呼地吹着热风。父亲是个无线电爱好者,也是镇上为数不多能看懂英文说明书的人。
那天,父亲骑着那辆除了铃铛不响哪儿都响的“二八大杠”,后座上绑着一个巨大的纸箱子,
一路摇摇晃晃地骑回来。“那是什么?”邻居大婶嗑着瓜子问。“电脑。
”父亲擦着满头大汗,眼神亮得吓人,“这是通往未来的车票。”“多少钱?”“一万二。
”邻居大婶的瓜子掉了一地。那时候,镇上普通工人的工资才三四百块。
父亲花掉了家里所有的积蓄,甚至还借了外债,就为了买这个不能吃不能喝的铁疙瘩。
周壹站起身,在这寂静的夜里,他突然很想看看那张“车票”。他打开手机手电筒,
走向阁楼。木楼梯发出“嘎吱嘎吱”的**。阁楼是父亲的专属领地,母亲生前很少上来,
说是嫌乱。推开门,一股陈旧的书纸味和机油味扑面而来。在阁楼的角落里,
堆着一堆废旧的电路板、缠绕在一起的红红绿绿的电线,以及那台被防尘布盖着的庞然大物。
周壹走过去,掀开布。灰尘飞舞中,一台泛黄的、像个大方脑袋一样的显示器露了出来。
旁边是卧式的主机箱,上面有一个3.5英寸的软驱口,
还有一个如今绝迹了的5.25英寸光驱口。机箱上贴着一张早已褪色的不干胶贴纸,
上面是父亲刚劲有力的钢笔字:“1995.08.05购入。赠吾儿周壹。
”周壹的心猛地颤了一下。1995年8月5日。那是他出生的日子。
他一直以为这台电脑是父亲买来玩游戏的,或者是为了显摆。他从未注意过这行字。原来,
这台机器和他的生命是同一天“启动”的。周壹伸出手,指尖划过粗糙的显示器外壳。
一种奇怪的冲动涌上心头。作为一名早已习惯了云端、容器化、微服务的现代程序员,
面对这台算力连现在电子手表都不如的古董,他竟然感到了一种久违的兴奋。
就像是一个迷失在茫茫大海上的水手,突然摸到了罗盘的边缘。“能不能开机呢?
”他自言自语。他蹲下身,开始检查电源线。插头已经锈蚀了,
但他记得楼下的工具箱里有砂纸。半小时后。周壹重新插上电源。他深吸一口气,
按下了主机箱上那个大大的、圆形的电源键。嗡——巨大的风扇声瞬间填满了阁楼,
像是沉睡的巨兽开始呼吸。主机箱的红灯闪烁起来,发出“咔哒、咔哒”的硬盘读取声。
那声音在深夜里听起来如此嘈杂,却又如此悦耳。显示器闪烁了几下,先是一片灰白,然后,
那个熟悉的黑色DOS界面跳了出来。左上角的光标开始闪烁:_紧接着,
sting...16384KOKLoadingMS-DOS...屏幕停住了。
最后一行显示着:C:\>_周壹的手指微微颤抖。他拉过那把父亲坐了半辈子的木椅子,
坐了下来。椅子发出“吱呀”一声,仿佛父亲就在身后,轻轻拍了拍他的肩膀。
“Hello,World.”周壹轻声说道。
他试探性地敲下了第一个命令:DIR(列出目录)。键盘的回弹力度很大,
发出清脆的“啪啪”声。屏幕飞快地滚动起来,列出了一大串文件。大多是系统文件,
还有一些古老的游戏:WOLF3D,DOOM,PAL(仙剑奇侠传)。
但在文件列表的最后,有一个文件夹显得格格不入。它的名字不是英文,也不是缩写。
那是用拼音缩写命名的文件夹:ZHO_YI(周壹)。
创建日期:1995-10-12。最后修改日期:2023-04-01。周壹愣住了。
2023年4月1日。那是父亲去世的前一天。在那之后的两年里,
父亲从未跟他提过电脑的事。他们最后的几次通话,
都是关于“什么时候结婚”、“工作累不累”、“别老熬夜”。周壹总是匆匆敷衍,说在忙,
在开会。父亲在生命的最后时刻,还在这台三十年前的老电脑上修改了什么?
周壹感觉喉咙有些发紧。他输入命令:CDZHO_YI回车。进入目录。
再次输入DIR。屏幕上只显示了一个文件。不是文档.TXT,
也不是图片.BMP。
而是一个可执行文件:1995.EXE光标在C:\ZHO_YI>后面不停地闪烁,
像是在催促,又像是在等待。窗外,零点刚过。
周壹迎来了他在1995年出生后的第三十个年头。在这个被时代抛弃的阁楼里,
他面对着父亲留下的最后一道谜题。他抬起手,敲下了回车。2硬件复位手指落下的瞬间,
期待中的画面并没有出现。“咔——吱——”机箱里传来一声令人牙酸的尖啸,
像是某种金属部件在这个寒冷的深夜里发出的垂死挣扎。屏幕上的画面瞬间撕裂,
变成了一堆乱码,紧接着,那台486电脑仿佛耗尽了最后一丝力气,彻底黑了下去。
连电源指示灯都灭了。“草。”周壹下意识地骂了一句。
那是程序员最害怕的声音——磁头划伤盘片,或者是电源短路。他坐在黑暗里,心脏狂跳。
刚才那短暂的亮起,难道只是回光返照?但他很快冷静下来。他是工程师,
虽然现在写的是运行在云端的Java和Go,但他大学学的是计算机科学与技术,
第一课就是《计算机组成原理》。“硬件问题。”他自言自语,声音在空荡荡的阁楼里回荡。
他站起身,打开了阁楼顶上那盏昏黄的白炽灯。灯光洒下来,照亮了这方寸之地。
他脱掉昂贵的羽绒服,卷起保暖内衣的袖子,从角落里拖出了父亲那个墨绿色的工具箱。
铁扣弹开,发出清脆的声响。
里面整整齐齐地码放着万用表、电烙铁、一卷焊锡丝、一盒松香,还有各种规格的螺丝刀。
那是父亲的武器库。周壹拿起一把十字螺丝刀,握在手里的重量感让他感到久违的踏实。
他开始拆机。现在的电子产品——MacBook、iPhone,都是高度集成的黑盒子,
严丝合缝,拒绝用户的窥探。但90年代的电脑不一样,它们是坦诚的、粗犷的。
卸下四颗螺丝,推开“U”型的金属外壳,内部结构暴露无遗。
一股浓烈的、陈旧的味道扑面而来。那是灰尘被长期烘烤后的味道,
混合着电解液和酚醛树脂电路板特有的气息。周壹把它称为“时间的味道”。
机箱内部布满了灰尘,像是一层灰色的积雪。周壹找来一个小刷子和皮老虎(气吹),
开始清理。他动作很轻,像是一个考古学家在清理出土文物。随着灰尘散去,
这台机器的内脏逐渐清晰:主板是绿色的,上面插着两条早已绝迹的72线SIMM内存条,
容量大概只有16MB,那是当年的顶配。CPU上覆盖着一个小小的铝制散热片,
连风扇都没有——那颗Intel80486DX2-66的心脏,
发热量小到甚至不需要主动散热。硬盘是一块昆腾(Quantum)的大脚硬盘,
只有5.4英寸大,像块砖头。周壹拔下显卡,
用橡皮擦小心翼翼地擦拭着金手指上氧化的痕迹。一下,两下。黑色的氧化层褪去,
露出原本金黄的光泽。这动作让他突然鼻头一酸。记忆像闪电一样击中了他。六岁那年,
家里的电视机坏了,不出人影只出雪花。父亲就是这样,让他拿着手电筒,
自己用橡皮擦擦拭电路板的接口。“壹儿,看着点。”父亲当时说,“机器跟人一样,
日子久了,关节就会生锈,接触不良。你得帮它擦干净,它才能重新通上电。
”“通上电之后呢?”小时候的周壹问。“通上电,信号就通了,心意也就通了。
”周壹看着手中发亮的金手指,眼泪毫无预兆地砸在了防静电地板上。他和父亲之间,
是不是也像这块显卡一样,因为太久没有维护,积满了灰尘和氧化层,
最终导致了“接触不良”?他忙着在大城市追逐最新的框架、最高的薪水,
却忘了回来擦一擦他和父亲之间的接口。他吸了吸鼻子,强行把情绪压回去。
现在不是感伤的时候,他得把这台机器修好。经过检查,
问题出在电源盒里的一个保险丝熔断了,可能是刚才通电瞬间电流过大导致的。这难不倒他。
他在工具箱里找到备用的保险管,换了上去。顺便,
他还给主板换了一颗新的CR2032纽扣电池——父亲的存货里竟然连这个都有。
重新组装回去的时候,他在机箱底部的缝隙里,摸到了一个硬硬的本子。
那是一个深红色的软皮笔记本,封皮已经磨损得厉害。被卡在硬盘架和底板之间,
如果不拆机根本发现不了。周壹把它抽出来。笔记本的封面上写着四个字:《运行日志》。
他翻开第一页。纸张已经发黄变脆,但字迹依然清晰。
1995年8月20日系统第一次点亮。主频66MHz。快,真快。比我想象的还要快。
给壹儿录入了第一张照片,扫描用了半个小时,存进去只占了30KB。这就是数字化吗?
神奇。1998年6月1日壹儿今天把可乐倒进键盘里了。被老婆骂了一顿。我拆开洗了洗,
晾干还能用。这小子吓坏了,躲在床底下不敢出来。我告诉他,
破坏也是了解机器的一种方式。2003年3月15日给机器加装了一条内存。
现在跑Windows98更顺畅了。壹儿开始上微机课了,他说学校的电脑比家里的好。
这老伙计确实该淘汰了,但我舍不得。这里面存着太多东西。
2015年9月1日壹儿去北京上大学了。学计算机。好样儿的。家里突然变得很空。
我把这台老机器搬出来通了通电,怕它坏了。它还在,壹儿却飞远了。
周壹坐在冰冷的地板上,一页页翻着。这不仅仅是一台电脑的维修记录,
这是一个父亲看着儿子背影渐行渐远的观察日记。每一条故障记录后面,
都藏着父亲当时的心情。这台486电脑,是父亲在这个飞速变化的时代里,
唯一能抓住的、与儿子专业有关的锚点。父亲也许无数次在这个阁楼里,试图学习新的知识,
试图理解儿子口中的“互联网”、“云计算”,
但最终只能无力地守着这台他唯一能掌控的老机器。翻到最后几页,笔迹变得潦草颤抖,
那是父亲病重后的时期。2023年3月31日身体不行了。医生说也就这几天。
趁着精神好,我上来把那个程序改完了。密码是壹儿第一次拿满分的日期。
这台机器不知道还能不能撑到他看的那一天。如果坏了,希望他还会修。
他可是大厂的工程师啊,应该没忘本吧?周壹合上笔记本,双手紧紧地攥着。
指关节因为用力而发白。“没忘。”他对着虚空轻声说,“爸,我没忘。”他重新站起来,
眼神变得坚定。这一次,他没有急着开机。他先检查了所有的接线,
确认了散热风扇的转动阻力,甚至用万用表测了插座的电压。一切就绪。
手指再次按下电源键。“嗡——”风扇平稳地转动起来,那种刺耳的尖啸声消失了。
屏幕亮起。MemoryTesting...16384KOK这一次,
系统没有卡顿,顺利地跳过了自检画面。那个熟悉的、闪烁的光标再次出现。
C:\>_周壹深吸一口气。他输入了那个路径:CDZHO_YI然后,
他看着那个1995.EXE。根据日志里的提示,这不仅仅是一个程序,
它还需要一个密码。他运行了程序。1995屏幕一黑,紧接着跳出一个输入框,
那是经典的DOS风格,
SSWORD:[________]密码是壹儿第一次拿满分的日期。
周壹闭上眼,在记忆的海洋里疯狂检索。是小学一年级吗?还是初中?不,
父亲对这种事情的记忆,往往比他自己更深刻。他看向书桌旁的墙面。虽然墙皮脱落,
但他依稀记得,那里曾经贴满了奖状。有一张奖状,是父亲最骄傲的。不是数学,不是语文。
而是小学三年级,他参加全县少儿编程比赛(那时候叫Logo语言),
那是他人生中第一次写代码。画一只小海龟,走出一个迷宫。他是全县唯一一个满分。
他记得那天父亲高兴得喝醉了,抱着他说:“我儿子是天才!
”那天是……周壹的手指悬在键盘上。1995是他的出生年份,
但那个日子是……20040601。那是儿童节,也是比赛颁奖的日子。
他试探性地敲下了这串数字。20040601回车。屏幕静止了一秒。
然后,发出了一声清脆的蜂鸣音:“滴!”蓝色的对话框消失了。屏幕中央,
出现了一个缓缓旋转的、由像素点构成的沙漏。
一行字慢慢浮现:“系统正在加载记忆模块...0%”阁楼外,远处的公鸡叫了第一声。
天快亮了。而周壹知道,属于他的漫长黑夜,才刚刚被撕开了一道口子。
3开机自检(POST)时间:1995年8月5日坐标:南方某县城,
电机厂职工宿舍1995年的夏天,热得像是一个巨大的蒸笼。
知了在法国梧桐树上声嘶力竭地惨叫,仿佛在控诉这个要把柏油路都烤化的鬼天气。
周国伟(父亲)骑着他的那辆“永久”牌二八大杠,衬衫背心早已湿透,紧紧贴在脊梁骨上。
但他感觉不到热,他的心脏正在胸腔里以每分钟120下的频率狂跳,
那种亢奋感甚至盖过了即将为人父的焦虑。自行车的后座上,
用麻绳五花大绑着一个巨大的纸箱,上面印着四个蓝色的英文字母:INTEL。“国伟,
你疯啦!”回到筒子楼,刚把箱子卸下来,妻子林芳挺着九个月大的肚子,扶着门框,
眼里的火气比外面的太阳还毒。“那是一万二!一万二啊!咱们存了三年的钱,
再加上我妈给的生孩子钱,你全都换成这堆废铁了?”林芳的声音带着哭腔。那个年代,
一万二能在县城买半套房,能买好几吨奶粉。周国伟一边擦着额头上的汗,
一边小心翼翼地拆开纸箱,像是在拆解一颗随时会爆炸的地雷,又像是在捧出一尊神像。
“芳,你听我说。”周国伟的声音因为激动而有些发抖,“这不是废铁。这是电脑。
这是……这是未来的车票。”“我不坐车!我要给孩子买尿布!
”林芳把手里的蒲扇摔在桌子上。周国伟走过去,蹲下身,把耳朵贴在妻子隆起的肚皮上。
里面传来有力的胎动。“这孩子生下来,就是要去未来的。”他抬起头,眼神亮得吓人,
那是那个年代特有的一种叫做“下海”或者“闯荡”的光芒,“咱们这代人,
接了上一辈的班,修了一辈子电机。但这孩子不一样。等到他长大的时候,
世界就不靠齿轮转了,是靠这个——”他指了指那个灰白色的方盒子。
“是靠这种看不见摸不着的‘信号’转的。”林芳看着丈夫那张倔强又汗津津的脸,
叹了口气。她知道周国伟是个技术痴,自从镇上来了个广东推销员给他看了一次电脑演示后,
他就丢了魂。“要是这玩意儿赚不回钱,”林芳咬着牙说,“你就抱着它睡走廊去。
”那天下午,周国伟像是进行一场神圣的仪式。他把家里那张唯一的实木书桌腾空,
把结婚时的花瓶、相框统统挪走。主机、显示器、键盘,摆放得方方正正。为了防静电,
他甚至特意去洗了个手。插头**插座。按下开关。
“嗡——”那种风扇的轰鸣声第一次在这个狭窄的职工宿舍里响起。对于周国伟来说,
这比贝多芬的交响乐还要动听。屏幕闪烁,那是DOS6.22系统的启动画面。
stingextendedmemory...done.周国伟兴奋得手舞足蹈,
他想拉着林芳来看,却发现林芳正捂着肚子,脸色苍白地靠在床头。
“国伟……”林芳的声音发虚,“疼……”周国伟脑子里的“二进制”瞬间崩塌了。
“怎么了?是不是要生了?不是还有预产期吗?”“羊水……好像破了。”那一刻,
未来的大门暂时关闭了,现实的急迫感如洪水般涌来。周国伟连电脑都没来得及关,
抱起林芳就往楼下冲。他那辆刚驮过“未来”的二八大杠,
现在要驮着他生命中最重要的两个“现在”,向县医院狂奔。那天夜里,
县医院的产房外雷雨交加。1995年的台风“海伦”过境,
狂风把医院走廊的窗户吹得哐哐作响。周国伟浑身湿透,蹲在产房门口,
手里紧紧攥着那个刚买回来的、还没焐热的传呼机(BP机)。他在等消息,
也在等命运的审判。凌晨三点。一声嘹亮的啼哭穿透了雷声。
护士抱着一个皱巴巴的小猴子出来:“周国伟!是个带把儿的,六斤八两!
”周国伟看着那个闭着眼、张着嘴嚎啕大哭的小东西,眼泪混着雨水流了下来。
他伸出粗糙的手指,轻轻碰了碰孩子的脸颊。软的,热的,活生生的。“想好名字了吗?
”护士问。周国伟愣了一下。他脑子里乱哄哄的,
闪过各种名字:建国、伟业、志强……都太俗了。他突然想起了那个还开着的电脑屏幕。
那个在黑色虚空中闪烁的光标。那个由0和1组成的世界。在计算机的逻辑里,0代表虚无,