隨著曙光一號進入設計中期,作業系統的問題浮出水面。硬體設計再先進,如果沒有作業系統支援,對使用者來說就是一塊無法互動的鐵板。當時市面上主流的個人計算機作業系統有兩個:微軟的-DOS和開源的CP/前者需要向微軟購買授權,費用不菲,且授權條款對硬體平臺有諸多限制——微軟要求所有預裝DOS的機器必須透過其相容性測試,測試費用由硬體廠商承擔,且測試周期完全由微軟排期。CP/原始碼雖然公開,但架構老舊,對十六位處理器的支援非常有限,更不用說曙光一號的三十二位資料匯流排和精簡指令集架構——CP/底層I/O驅動和記憶體管理都是為八位機設計的,移植到曙光一號上需要重寫大量彙編程式碼,工作量不亞於從頭開發一個新系統。
李家港在實驗室白板上畫了一個矩陣。橫軸是作業系統的幾個核心功能:核心、檔案系統、裝置驅動、使用者互動介面。縱軸是幾種可能的選擇:購買-DOS授權、移植CP/自主開發。他在每個交叉格子裡填寫對應的成本、時間和風險,然後退後兩步,看著滿白板的標註沉默了一會兒。-DOS授權費加上相容性測試的時間成本,對曙光一號目前以教育市場和中小企業為目標客戶的定位來說負擔過重——這筆費用會直接轉嫁到整機售價上,讓曙光一號在價格上失去對進口同級產品的競爭優勢。移植CP/技術門檻雖然比自主開發低一些,但移植後的系統無法充分發揮三十二位匯流排和精簡指令集架構的效能優勢。他在“自主開發”那一行用紅筆逐項填寫——核心只保留最基礎的程序排程和記憶體管理,檔案系統只支援FAT格式的讀寫以保證與-DOS的資料盤相容,裝置驅動只需要支援曙光一號板載的鍵盤、顯示器和音訊介面。他在這幾行字旁邊加了一行備註:“第一版不求功能強大,只求足夠輕量、足夠穩定、能跑在曙光一號上。”
林知夏靠在實驗臺旁邊,手裡端著方潔瑛剛端上來的搪瓷缸。他聽完李家港的分析之後放下缸子走到白板前,在“自主開發”那一行拿起記號筆畫了一個圈,說這個系統的核心是精簡——核心只做程序排程和記憶體管理,檔案系統只做FAT讀寫,驅動只做鍵盤、顯示和音訊。精簡指令集處理器的精髓是精簡指令,精簡作業系統的精髓是精簡服務層——每一層只做最小必要的事,剩下的留給應用軟體。他給這個系統起了個內部代號叫“曙光OS”,字型和他畫架構圖的筆跡一樣簡練。李家港在他身後補充了一句,說從今天起作業系統不再只是微軟和IB後花園——創世紀正在用自己的處理器和作業系統,為華資製造業開闢一條從硬體到軟體全鏈路自主的道路。
訊息傳到車間時,阿強正在實驗臺前逐只抽檢磁鼓底座的接觸壓力曲線。他把探頭拔下來放在桌上,說這個OS的驅動層能不能像品控手冊的流程圖一樣——每一個I/O埠都有對應的標準介面,驅動層只做讀寫,不做任何多餘的事。這句話後來被林知夏寫進了曙光OS驅動架構設計規範的第一條原則。老錢從版圖臺前抬起頭,推了推滑到鼻尖的眼鏡,說他的版圖裡有幾個空閒的I/O埠,本來是為未來擴充套件預留的,如果OS的驅動層需要獨立的除錯序列埠,可以在版圖上直接加一個引腳的引出線。劉師傅從注塑車間探出頭,說外殼後面是不是要開一個新的序列埠孔——他在模具水路圖上臨時加了一道標註,把序列埠孔的排水槽和原來的外殼卡槽排水槽合併到同一條水路里,省了模具改動的工時。
作業系統開發團隊的搭建比晶片設計團隊更讓李家港費神。全球能做精簡指令集處理器物理設計的工程師屈指可數,但至少還有;而願意在一家華資電子廠從頭寫一個作業系統的軟體工程師,在當時簡直是鳳毛麟角。他透過林知夏在斯坦福的校友網路輾轉聯絡到幾個候選人,最終透過方工的舊關係從內地一所高校的計算機系找到一位年輕的講師,姓孫,是恢復高考後第一批計算機專業畢業生,在編譯原理和作業系統核心方面有紮實的功底,曾用匯編語言為國產小型機寫過一套簡易的即時監控程式。孫工第一次來創世紀時是坐火車從內地到深圳,再從深圳搭渡輪到九龍。他穿著洗得發白的中山裝,拎著一隻帆布包,站在創世紀鐵門前抬頭看了很久門楣上那塊招牌,然後對來迎接他的林知夏說他是從寶安無線電廠方工那裡聽說創世紀在做自主處理器的。方工在信裡寫了幾個字:“他們在做處理器,需要寫作業系統的人。”他把那封信從口袋裡掏出來給林知夏看,信紙已經磨得起了毛邊,顯然是反覆翻看了多遍。
孫工的加入讓曙光OS專案正式啟動。他在實驗室裡開始逐行編寫作業系統的核心程式碼,李家港在白板上畫了一棵更大的產品家族樹。樹幹上已經掛著星辰收音機、視霸錄影機、曙光一號和數據機模組,現在他在曙光一號旁邊畫了一個新的方框,標註了曙光OS的內部代號。這棵產品家族樹從類比電路的根系出發,穿過消費電子的枝幹,跨過數字邏輯的分叉點,現在終於在作業系統這一層長出了自己的葉子。方潔瑛從設計工作室過來送新一批外殼配色終稿,看到白板上這棵越來越茂密的產品家族樹,在外殼設計稿的空白處用炭筆畫了一個極小的啟明星符號,寫下了作業系統的第一行版本號。她的筆跡和當年在收音機說明書上畫的第一顆啟明星一模一樣——起筆輕,收筆穩。李家港在旁邊用紅筆圈出了日期,對林知夏和孫工說,今天曙光OS正式立項。從今天起,曙光一號不再只是一顆處理器——它是一臺完整的計算機,有自己的心臟,也有自己的靈魂。窗外九龍塘的夜色已經完全沉降,實驗室裡的燈還亮著,孫工在他的新工位上編寫核心的第一段引導程式碼,林知夏在旁邊對著白板上的架構圖逐行標註作業系統與硬體之間的介面規範。兩個人在各自的精度世界裡入了定,一個在軟體層逐行搭建核心,一個在硬體層逐行最佳化時序。他們之間隔著一張白板,但用的是同一套語言——邏輯、時序、介面,和祖父當年在閘北炮火裡繞線圈時用的語言一模一樣。注塑機還在有節奏地運轉,劉師傅在模具側面那塊白漆記錄板上寫下新一行保壓引數,車間深處傳來巡迴保養車緩緩駛入泊位的引擎聲。白板上曙光OS的方框旁邊多了孫工的簽名,和所有已經簽過名字的方框一起,靜靜地指向同一個方向。








