第72章 刘菲菲的“开关”实验
庆功会过去三天,公司里的喜悦劲儿还没散。
机房的白板上,有人用红笔写着“500万胜诉款=200杯奶茶+100份炸鸡”,后面跟着一长串签名.
连向来严肃的王律师都画了个笑脸。
我刚把全平台内核统一的初步方案贴上去,小李就凑过来,手里晃着个U盘.
“刘哥,Chrome测试版的兼容性报告出来了,你看看要不要加个新的缓存优化模块?”
我接过U盘,余光瞥见刘菲菲坐在角落的工位上,盯着屏幕出神。
她面前的咖啡已经凉透了,杯壁上凝着的水珠顺着桌沿往下滴,在笔记本上洇出一小片水渍。
这几天她总是这样,要么在机房待到很晚,要么开会时突然走神.
问起Chrome测试版的进度,也只是含糊地说“还在调试”。
“菲菲,”
我走过去,敲了敲她的桌面.
“昨天说的‘开心农场’接入浏览器内核的方案,你那边有头绪了吗?”
她像是被突然惊醒,手指飞快地按了下键盘,屏幕上的代码页面瞬间切换成了文档。
“啊……快了,”
她抬起头,眼底带着点熬夜的红血丝.
“我再测测兼容性,明天给你初稿。”
我注意到她的笔记本摊开着,上面写满了密密麻麻的代码注释,中间夹着一行奇怪的符号:“☼+0101→解锁”。
刚想多问一句,何鹏飞的声音从门口传来.
“刘军,来我办公室一趟,讨论下PC端内核的研发预算。”
我回头应了一声。
再看刘菲菲时,她已经合上了笔记本,放进了抽屉里。
手指在抽屉把手上顿了顿,像是在确认锁没锁好。
下午的会议开了两个多小时,等我回到机房,大部分人都已经下班了。
刘菲菲的工位还亮着灯。
她肩膀微微弓着,双手在键盘上飞快地敲击,屏幕反射出的蓝光映在她脸上,看不清表情。
“还没走?”
我走过去,想看看她在忙什么。
她像是被吓了一跳,猛地合上笔记本电脑。
转过身来时,脸上带着点不自然的笑意。
“哦,还有点代码没改完,马上就走。”
我注意到她的手指在发抖,放在膝盖上的手紧紧攥着。
“要不要帮忙?”
我指了指她的屏幕。
“Chrome测试版要是遇到瓶颈,咱们可以一起想办法。”
她连忙摇头,把笔记本往怀里抱了抱。
“不用不用,就是点小问题,我自己能解决。”
说完,她站起身,拿起包就往门口走。
经过我身边时,我闻到她身上有股淡淡的薄荷味,混着咖啡的苦味。
和平时的橘子香水味完全不一样。
等她走后,我回到自己的工位,打开Chrome测试版的代码库,想看看兼容性报告里有没有需要调整的地方。
代码一行行滚过屏幕,大部分都是熟悉的模块,直到翻到内核核心的启动程序部分,突然发现一段陌生的代码:
//Emergency Module: Trigger Time=2009-01-01 00:00:00
//Function: Global Kernel Shutdown
function checkTrigger(){
let now = new Date();
if (now.getFullYear()=== 2009 && now.getMonth()=== 0 && now.getDate()=== 1){
if (!verifyPasscode()){
shutdownAllInstances();
}
}
}
我的心一下子提了起来。
这段代码藏在启动程序的底层,不仔细看根本发现不了,功能却写得清清楚楚。
2009年元旦零点,只要验证密码不通过,全球使用这个内核的浏览器都会自动崩溃。
我赶紧往下翻,想找verifyPasscode()函数的定义。
却发现这个函数被加密了,只有一个调用接口,没有具体实现。
是谁植入的这段代码?
我第一个想到的就是刘菲菲。
这几天只有她在负责Chrome测试版的内核调试,而且她刚才的反应太反常了。
我拿出手机,想给她打个电话,手指悬在拨号键上又停住了。
如果真的是她,为什么要这么做?
我们一起经历过内核泄密案,她不可能不知道这种“自杀开关”的风险。
一旦触发,不仅会影响用户,还会让UE的技术信誉毁于一旦。
我起身走到她的工位,拉开椅子坐下,想看看有没有留下什么线索。
抽屉是锁着的,桌面上干干净净,只有一个空的咖啡杯。
我拿起杯子,发现杯底贴着一张小小的便签,上面用铅笔写着一行字。
“生日是钥匙,藏在太阳花里”。
太阳花?
我想起她笔记本上的那个“☼”符号,还有安安书包上的向日葵图案。
难道密码和安安的生日有关?
安安是9月1号开学的,生日是8月25号,之前她还说要给安安画向日葵庆祝我升职。
我试着在心里组合密码——825?
20080825?
不对,verifyPasscode()函数应该需要更复杂的验证方式,可能还和其他东西有关。
这时,机房的门被推开了。
刘菲菲站在门口,手里拿着一个文件夹。
看到我坐在她的工位上,脸色瞬间变得苍白。
“你……你怎么还没走?”
她的声音有点发颤,手里的文件夹掉在地上。
里面的纸张散了一地,最上面那张是Chrome测试版的用户名单。
后面跟着几行手写的注释:“测试用户数:1200人,覆盖15个国家,均使用未加密内核”。
“那段代码是你写的?”
我捡起文件夹,递到她面前。
“2009年元旦触发的自杀开关,到底是怎么回事?”
她没有接文件夹,反而往后退了一步,靠在墙上,双手抱在胸前,像是在防备什么。
“我只是想做个实验,”
她的声音越来越小。
“之前内核泄密案之后,我总担心咱们的技术还有漏洞,要是再有人盗用代码,或者内核出现严重bug,至少有个应急方案……”
“应急方案?”
我提高了声音。
“你知不知道一旦触发,全球1200个测试用户的浏览器都会崩溃,到时候UE怎么解释?这不是实验,是冒险!”
她的眼睛红了,用力抹了下眼泪。
“我知道有风险,但我设置了密码,只要在触发前输入正确的生日,就能解除。我只是想测试下内核的应急响应能力,还有……还有看看你能不能发现这个漏洞。”
“看看我能不能发现?”
我愣住了,没想到她做这件事,竟然还有这样的心思。
她走到我面前,从包里拿出那个笔记本,翻开中间那一页。
上面除了“☼+0101→解锁”,还有一行更小的字:“刘哥的准则:技术要对得起良心,也要经得住考验”。
“我知道你升了首席架构师,以后要负责全产品线的技术规划,”
她的声音带着点哽咽。
“但内核是咱们的根,要是根不稳,后面做再多功能都没用。我植入这个开关,一方面是想测试应急机制,另一方面,也是想提醒你,不管技术发展多快,都不能忽略潜在的风险。”
我看着笔记本上的字,心里又气又暖。
气她不声不响地做这么大的冒险,暖她始终把内核的安全放在心上,甚至用这种极端的方式提醒我。
“密码到底是什么?”
我问,语气软了下来。
她低下头,手指在笔记本上划着那个“☼”符号。
“是安安的生日,加上‘UE’的大写字母,还有你笔记本第一页写的那个日期——2006年,咱们开始做内核重构的那一年。”
我掏出手机,算了下密码组合:20060825UE。
如果真的是这个,那确实需要结合她留下的所有线索才能解开。
“你为什么不直接跟我说?”我问。
她抬起头,眼底还带着点泪痕,却笑了笑。
“跟你说了你肯定不同意啊,而且……我想看看,咱们一起经历了这么多,你能不能懂我的心思。”
我把笔记本还给她,站起身,拍了拍她的肩膀。
“下次有想法,一定要跟我商量,别再做这种冒险的事了。内核的安全很重要,但你更重要,要是因为这个出了问题,我怎么跟团队交代?”
她点了点头,把笔记本抱在怀里,像是卸下了一个沉重的包袱。
“我明天就把那段代码注释掉,等咱们完善了应急响应机制,再正式测试。”
走出机房时,夜色已经很深了。
路灯把我们的影子拉得很长。
刘菲菲走在我旁边,手里攥着笔记本,脚步比来时轻快了不少。
“刘哥,”
她突然停下脚步,看着我。
“其实我还有个想法,咱们可以在浏览器里加个‘安全模式’,要是检测到异常代码,就自动切换到备用内核,这样既不用冒险,又能保证用户体验。”
我笑着点头:“好啊,明天咱们一起讨论方案,把这个功能加进全平台内核统一的计划里。”
她眼睛亮了起来,像是又变回了之前那个和我一起熬夜改代码的刘菲菲。
脸上带着对技术的热情,还有藏不住的笑意。
回到家,安安已经睡了。
书桌上摆着一幅画,画着一朵大大的向日葵,旁边写着“祝爸爸升职快乐”。
我拿起画,想起刘菲菲笔记本上的太阳花符号,心里突然明白。
她做的这个“开关”实验,不仅是对技术的考验,更是对我们团队信任的考验。
而这份信任,就像安安画里的向日葵,只要朝着正确的方向,总能在关键时刻找到阳光。
我打开电脑,登录Chrome测试版的代码库,找到那段“自杀开关”的代码,在旁边加了一行注释:“//2008.08.28发现应急测试模块,待完善后正式启用”。
然后,我新建了一个文档,标题是“安全模式开发计划”。
在第一行写下:“负责人:刘军、刘菲菲”。
窗外的月光照进书房,落在文档上,像是给这份计划镀上了一层温暖的光。
我知道,技术的路上总会有风险,但只要有刘菲菲这样的伙伴,有团队的信任,再难的路,我们也能一起走下去。
而那个藏在代码里的“开关”,终将变成守护内核安全的“钥匙”,提醒我们永远不要忘记对技术的敬畏,还有对彼此的信任。
