微星科技。NextGen实验室。
测试部主管带着两个人,推着一台铝合金推车进了隔间。
推车上放着三台演示样机。
银色外壳。微星最新的自研处理器。
这批机器是专门给发布会准备的。三千人的会场,主舞台上要做现场演示。
测试部主管把第一台样机接上电源。开机。
系统启动画面出来了。
新界面。流畅。动画过渡丝滑。
主管拿着一份清单,一项一项点。
打开文件管理器。通过。
打开浏览器。通过。
打开系统设置。通过。
多任务切换。通过。
二十八项功能点,全部通过。
用时十九分钟。
主管在清单最下面签了字。日期。封存。
三台样机断电。盖上防尘布。锁进玻璃展柜。
测试流程就这么多。
没人提出要跑两小时满负载。
没人想到要跑两小时满负载。
因为发布会现场演示,总共就二十分钟。
谁会去测两小时?
旧金山。唐人街。黄记烧腊。地下室。
老唐坐在折叠椅上,两台显示器并排摆着。
左边那台显示的是SourceForge上FireSeed的社区页面。
三百一十七个补丁包。来自十一个国家。
文件管理系统被补全了。原来只有个框架,现在能正常读写了。有个芬兰人写的日志模块,干净利落,老唐看了三遍,挑不出毛病。
右边那台显示的是补丁审核列表。
老唐逐条过。
第一百二十三号补丁。法国人提交的。内存池优化。
看了十分钟。合并。
第一百二十四号补丁。巴西人。文件索引重构。
看了二十分钟。打回。注释写:“索引树深度超过八层会递归溢出。重写。”
一条一条来。
快不了。也不能快。
张红旗从楼梯下来的时候,老唐正在审第一百九十号。
“多少个过审了?”
“一百六十二个。剩下的要么打回,要么还在排队。”
张红旗搬了把椅子坐下来。从口袋里掏出一张纸。A4的,折了两折。
展开。
上面是一段代码的打印件。
老唐瞥了一眼。
“这是0.1.3里的东西。”
“对。”张红旗把纸放在桌上。“你看这段。”
手指点在第四十七行。
一个函数。名字叫sys_logcounter。
老唐凑过去看了十秒。
“这不是日志记录模块吗?”
“不是。”
张红旗把椅子往前拉了拉。
“这个计数器,系统启动的时候就开始跑。每次调用微星闭源图形接口的时候,加一。”
老唐不说话了。
“阈值十万。”
“十万次之后呢?”
“进程调度逻辑触发内存泄漏。只分配,不释放。物理内存全部吃满。死机。”
老唐盯着那段代码。
“触发条件呢?”
“连续运行两小时以上。”
老唐把眼镜摘下来擦了擦。又戴上。
“微星那边测试跑多久?”
“他们的标准流程是三十分钟功能验证。不做长时间压力测试。”
“所以他们测不出来。”
“测不出来。陈明辉那三个人也看不出来。这段代码伪装成日志模块。函数名、注释、调用方式,全是正常日志的写法。不把整个调度逻辑从头到尾拆一遍,发现不了。”
老唐把那张纸翻过来看了看背面。空白的。
“你什么时候写进去的?”
“封存0.1.3之前。”
老唐把纸放下。
“发布会当天,台上那二十分钟演示不会出事。”
“不会。二十分钟触发不了。”
“那什么时候炸?”
“发布会之后。硬件厂商拿到系统装机。量产。用户拿到手。正常使用。两小时。”
老唐靠在椅背上。
天花板上那盏白炽灯泡晃了一下。地下室的空气潮。
三天后。
威廉的办公室。
他的秘书把一份剪辑好的视频拷贝放在桌上。U盘。
“演示视频。三分二十秒。”
威廉插上电脑看了一遍。
新系统启动。界面切换。多任务运行。响应速度。
画面流畅。没有一帧卡顿。
“发给名单上所有的硬件厂商。”
“排他协议附在邮件里吗?”
“附。”
威廉把U盘拔了,扔回给秘书。
“告诉他们,发布会当天签字。签了的,明年独家供货。不签的,后年合同到期不续。”
秘书出去了。
威廉拿起桌上的发布会流程表。用红笔在第七项上画了个圈。
第七项:现场签约仪式。十二家硬件厂商。台上签字。媒体拍照。
同一天。地下室。
老唐在社区里发了第二份技术文档。
标题:FireSeed Kernel hardware Interface Specification v1.0
内容很长。五十七页。
底层硬件接口标准。全部基于开放指令集。
任何芯片制造商,只要按照这套标准写驱动,就能跑FireSeed。
文档发出去半小时。下载量八百。
老唐把文档打包了一份。单独发了封邮件。
收件人:龙芯微电子研发中心。技术总监。周平。
邮件正文只有一句话:“看这个。”
北京。龙芯微研发中心。
周平打开邮件的时候是下午两点。
五十七页的文档他花了四个小时看完。
看完之后坐在办公桌前没动。
龙芯微的芯片,指令集架构,和这份接口标准的兼容度超过百分之九十。
剩下百分之十是适配层的问题。两天能写完。
周平把技术骨干叫进了办公室。七个人。
“两天。给我把适配驱动写出来。”
“什么系统?”
“FireSeed。开源的。社区里那个。”
“那不是个玩具吗?”
“你去看看下载量再说这话。”
七个人出去了。
两天后。凌晨三点。
驱动编译完成。测试环境搭好了。龙芯微的开发板接上显示器。
加载驱动。
启动FireSeed。
屏幕亮了。
系统起来了。
周平看着屏幕右下角的性能监控面板。数据传输速率。
他揉了揉眼睛。又看了一遍。
比他们之前适配其他系统的传输效率,高了三倍。
周平拿起手机。回了那封邮件。
附件:龙芯微FireSeed底层驱动v0.1。
正文:通了。效率你自己看数据。
地下室。
老唐收到邮件的时候是凌晨四点。
他在虚拟机里加载了龙芯微的驱动。跑了一遍。
数据出来了。
他截了个图。发给张红旗。
张红旗秒回。
“合并进主分支。”
“什么时候发布完整版?”
“微星发布会那天。”
老唐打了几个字过去:“你要去现场?”
“票已经买了。第十七排。”
老唐没再回。
他把龙芯微的驱动代码提交到FireSeed的开源库里。
然后打开日历。
微星科技新系统发布会。
还有六天。