“不知道是什么樣的操作系統?”托瓦茲推了推眼睛,問道。這方面他可以說是專家級的。
“一個混合式構架的操作系統!”這時推門走進一個亞裔的青年,他笑著說道。然后他伸手和托瓦茲握了一下,坐下后,繼續道:“我叫周昌,你可以喊周。我現在負責這個操作系統的研發。”
袁明元旦一過完就過來了,成立了分公司,招聘的人員,直到今天和托瓦茲見面。他看著這個青澀瘦小的大男孩,誰又能想到未來能和威阮抗衡的操作系統之父,就是這個邋里邋遢的男孩?
“混合式架構?”托瓦茲疑惑的皺著眉頭,道:“我只聽過單內核和微內核,還沒聽過有混合式架構的?”
袁明笑著解釋道:“這是我們公司自行設計的一種架構思想。”混合架構,也可以叫做混合內核,是后世才發展起來的一種集單內核和微內核兩種架構之長的操作系統內核。大名鼎鼎的MAKOS就是采用混合內核的,后來威阮的Win也改用了這一架構。當然他們現在都還不是,萍果現在是微內核架構,威阮是單內核架構。
混合內核的基本設計理念,是以微內核架構來設計操作系統內核,但在實現上則采用單內核的作法。混合內核實質上是微內核,只不過它讓一些微核結構運行在用戶空間的代碼運行在核心空間,這樣讓核心的運行效率更高些。這是一種妥協做法,是因為微內核架構雖然在擴展性、穩定性上更勝一籌,但消耗了更多系統時間,在運行速度上比不上單內核的架構。
袁明早于歷史10多年提出這種架構思想,不但讓自行研發的新操作系統少走了很多彎路,又可以讓操作系統的性能更強!
當袁明為托瓦茲解釋了什么是混合式架構后,托瓦茲思考了一下后,驚訝的問道:“這不是一種單內核的變種嗎?”
袁明笑著點點頭道:“確實是的,只是我們更喜歡稱它為微內核的變種。當然兩種講法其實都差不多,不過看大家的傾向而已。”
托瓦茲見袁明沒有反對他的話,心中不由很滿意,他對單內核架構很執著,因為他是個實用主義者,考慮的更多是系統如何更快,以及讓CPU的性能充分發揮。從某些方面來說,這樣的作法是正確的。
在八、九十年代,CPU的速度不高,內存的很小,所以并行多任務的需求很少,大多數計算機操作系統都是分時多任務系統。這樣的系統,因為運行的任務少,所以即使因為故障掛掉了,重新跑一邊就好了。因為不需要考慮故障對操作系統核心的影響,所以那個時代單內核成為了主流。
而當CPU速度越來越快,內存越來越大,甚至一臺計算機可以有多個CPU時,服務器隨著作業量的增加和可靠性要求的增高,單內核的操作系統就很吃虧了,因為任何一個小小的系統故障都會導致系統宕機,這才有了混合內核的誕生。
袁明見托瓦茲沒有反駁,不由送了一口氣,果然托瓦茲是個單內核控,幸好沒刺激到他。
“我們準備按照一個月500米刀支付你的薪水,不知道你愿意接這個任務嗎?”袁明問道。
“愿意!愿意!”托瓦茲心里太愿意了,上午他還在為差幾百米刀而苦惱,結果中午就有人支付薪水請他干活,他怎么能不愿意?
“那好,后面的事情都由伊芙娜負責,你后面和她聯系就好。”袁明心情愉快地走了。
伊芙娜笑著對托瓦茲說:“我們準備為你了一間辦公室,另外還有十幾個計算機高手,協助你完成開發。而我是這個項目的負責人,后面還需要托瓦茲先生多多協助。”袁明當初招伊芙娜進來只有一件事情,就是保持和托瓦茲的接觸,讓他順利進入項目組,然后完成開發任務。伊芙娜也知道老板對這件事看得很重,所以對待托瓦茲非常謹慎小心,生怕得罪了他,她就完不成任務。
托瓦茲對于有美女陪伴,還有高手幫忙的事情,非常滿意!上哪里找這樣的好事情啊!所以后面他就利用課余時間過來,開始了操作系統的研發。
說實話,雖然有十幾個幫手,但他們更多是開發外圍程序,而混合內核的開發只能由托瓦茲自己獨力完成。獨自開發操作系統內核的日子其實十分單調。托瓦茲每天24小時是這樣度過的:編程——睡覺——編程——吃椒鹽卷餅或洗澡(隨便沖沖了事)——睡覺——編程。
好在有美女相伴,他并不感覺枯燥。相反,由于伊芙娜的存在,他爆發出了前所未有的激情。他基本上吃喝都在公司,連宿舍和家都很少回。由于他的大學就在家門口,以往他都是隔一段時間就要回家的。現在他回家很少,即使回去了,也是埋頭寫代碼,對外面的事情漠不關心。
見他如此沉迷,引來了父母的擔憂。父親尼奇憂心忡忡地對母親米奇說:“趕緊讓他去外面玩玩吧。”米奇擔心的則是另一回事:“像他這副(整天宅著不出門的)德性,以后還怎么去結識好女孩兒啊?”
在父母為兒子操心時,黑客兒子也為正在開發的系統操碎了心。
由于和作為參考的Minix操作系統架構不太一樣,他要從原來單層結構里,再插入一層BSD層,用于跑用戶進程。開始他的做法是直接讓微內核的直接調度BSD層的進程,結果發現又回到了單內核的老路上,和混合內核的思想嚴重沖突。所以他研究了很久,在調度之上增加了進程和線程的抽象,是對BSD層的進程和線程的更高層次抽象。BSD層的進程和線程比核心層包含更多的信息,支持更多的特性,核心層的進程和線程并不能滿足操作系統的高級需求,通過BSD層提供了更為豐富且標準化的API。
當然,托瓦茲只負責定義接口和標準,其他API的豐富都交給了團隊成員。
開發到文件系統驅動環節時,由于感覺太費勁,托瓦茲差點放棄。但每當他看到伊芙娜那絕美的容顏,不知道為何他又斗志昂揚起來。
為了寫操作系統,他放棄了那可有可無的派對,放棄了社交,甚至有時候寫到興頭上,連上課也放棄了。
1988年11月,當地球那一邊傳來老喬治當選米國總統的消息時,托瓦茲和整個團隊已經完成了新操作系統的全部開發和測試。歷時10個月,核心代碼1MB,整個操作系統有20MB大小。完全兼容POSIX1.0標準,意味著可以通過模擬器運行DOS、Windows程序,支持多用戶多任務,同時具備字符界面和圖形界面。這是歷史上第一多用戶多任務、分頁磁盤緩存的操作系統。由于當時的電腦內存有限,如果運行的程序大于內存,很容易導致電腦崩潰,分頁到磁盤的功能,可以很好地解決了這個問題。
更重要的是,由于這個新操作系統支持多種平臺,可以安裝在各種計算機硬件設備中,比如未來的手機、平板電腦、路由器、視頻游戲控制臺、臺式計算機、大型機和超級計算機。在跨平臺適應性上,甩了威阮的Win好幾條街,這也為未來袁明的移動操作系統崛起奠定了基礎。
當袁明知道這個消息后,很快飛來了芬蘭,托瓦茲為袁明演示了操作系統的各項功能,甚至還演示了自己寫的一個簡單圖形界面。袁明對此贊不絕口,他已經在米國為圖形界面申請專利了,當然要繞過萍果公司的專利,他申請的是十多年后的那種多任務多窗口的圖形界面,所以他不擔心以后萍果公司會告他侵權,相反的,未來只要威阮和萍果公司想要發展,就繞不過他的那些專利!
托瓦茲讓袁明給操作系統起一個名字,袁明想都沒想就說:“就叫它MinOS吧!”因為這個操作系統參考的是Minix操作系統,所以袁明保留的Min,但日后袁明希望這個操作系統可以是橫跨PC和移動端的強大操作系統,所以直接命名它OS!另一方面,袁明的明,在鷹文中可以成為min,這也代表這他的一點小小的私心。
最終,袁明告訴托瓦茲,這個操作系統將分成兩個版本,一個是私有版,用于商業用途,一些公司的私秘功能將在這個版本上開發;另一個是社區版,在刪除公司機密之后,這個操作系統將開源到GNU社區,作為GNU可用的開源操作系統。這一下,可把托瓦茲高興壞了,他對金錢其實沒多大興趣,只是裝X的事情樂此不疲,這樣一個長臉的事情,他當然愿意了。所以他當即就把社區版的維護工作給包攬下來了,還為社區版起了一個好聽的名字叫“Linux”!