微星科技。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的開源庫里。
然後打開日曆。
微星科技新系統發布會。
還有六天。