對樓上家庭和樓下忠誠的仆人的生活的描述清晰地說明了軟件世界裡的重要分工。樓上的居民是應用軟件:文字處理、電子表格、數據庫、電子排版和大量其他能滿足人們需要和願望的程序。而樓下的居民則共同發揮了操作系統的功能:他們是服務的領域,有些是自動的,有些則有特殊請求的。這些服務是提供優越生活物質條件的基礎。
卡特勒對他的操作系統有三個期望:
可移植性:這可是軟件業的聖杯--創造出一個可以適合每一種硬件的操作系統。當時,每種商業操作系統都是為特定系列的芯片而量身定做的,所以只能在裝載這些芯片的電腦裡發揮作用。程序員用最接近於目標硬件的匯編語言寫了大量的編碼。將軟件和硬件聯系在一起。當硬件成本遠大於軟件成本時,沒有人介意這些。不過,後來當消費者發現在應用程序上的投資大過於購買硬件時,他們就不願意抛棄他們已安裝的但已過時的應用軟件。NT便是創造一個通用系統的機會,它將在電腦世界開創一個新紀元。
可靠性:在蘋果機上應用的是OS/2和DOS操作系統,一個應用程序的運行失敗往往會導致整個系統停止工作或崩潰,數據消失,迫使使用者重新啟動機器。如果許多應用程序在同一時間運行--NT的未來特色之一--其中一個的運行失敗會導致其他應用程序的停止運行。卡特勒想用"防彈"系統來結束這種不必要的崩潰。有了"防彈"系統,個人電腦的價值會增大,因為它們能可靠地支持在商業世界中所謂"關鍵任務"的服務,比如航空訂票或者銀行自動櫃員機。卡特勒和他的團隊知道如何來保證可靠性,他們的DEC操作系統是在電腦還是十分昂貴和稀有的時代誕生出來的,卡特勒解釋說:"如果系統死了一個小時,那就糟糕透了。首先,當時你不能像現在那樣,對一台電腦做那麼多操作,所以每一分鐘都損失慘重。"
個性化:NT應該靈活十足,它將擁有不止一種用戶界面,或"個性"。當時的個人電腦操作系統往往只有一種個性,也就是說,為DOS寫的應用程序就只能運行在DOS上。NT將會支持OS/2的表示層管理器界面,但它也會設計成可以--如果微軟選擇這麼做--支持其他諸如DOS或Windows或還沒發明出來的操作系統的個性。
在構思NT的時候,卡特勒及其部落們首先攻克可移植性的難題。
可移植性的代碼比較容易編寫但效率比較低。理論上,用高級語言寫出來的代碼在經過編譯後,可以在不同的微處理器上運行,而高等級的語言寫出來的程序相對較慢,所占空間也大。微軟的DOS、DEC的VMS和蘋果的麥金塔操作系統,用的都是匯編語言,因為它寫出來的程序小而緊湊,充分地發揮了特定硬件的作用。緊湊的編碼固然是好的,因為它節約了内存的空間。内存空間包含了很多芯片,名叫DRAM(動態隨機存取存儲器),就好比一個汽油箱。汽油箱越大,汽車就跑得越遠。操作系統越小,就有更多的油留給其他程序使用。
因為NT是可移植的,所以卡特勒知道它會很大。問題是,它將有多大?這取決於他的程序員們有多聰明,以及NT自己的設計特色和功能。卡特勒需要花很多時間才能知道NT究竟需要多大一個内存油箱。可是,他已經意識到NT會消耗很多内存--也許比現有的個人電腦操作系統所需的要多得多。
這讓比爾蓋茨感到緊張。NT最少需要一個帶有8兆内存的電腦,這是當時一台新電腦標準配置的8倍以上。蓋茨擔心消費者會不用NT,因為它意味著消費者需要為它再花幾百美元購買額外的内存。雖然内存芯片的價格可能會大幅度下降,但NT的内存要求仍然是非常不確定的。
這個任務落到了皮亞佐利頭上,他來負責設計和編寫NT中管理内存的代碼(他在卡特勒的實驗室裡曾寫過類似的内存管理程序)。内存管理要確保操作系統的每個部分和每個運行的應用程序在它們需要時都能有足夠的内存空間,所以它自己要一直保持運行狀態。這是個複雜的任務,因為,當一個應用程序需要内存而當時沒有時,就需要内存管理程序來精確地搜尋出可用的内存空間。而且"每個人都需要内存,而且想馬上得到",使這項任務顯得更加艱巨。
為了更好地理解内存管理程序的作用,我們來想象五個飯店,它們共用一個停車場,但是車位有限,假設只有100個車位。想在這五個飯店的任何一家吃飯,在這個停車場裡停車是唯一可行之路。一個孤單的車仆負責車進車出,和代泊每一輛車。飯店象徵應用程序,停車場象徵電腦的内存,車仆則代表操作系統裡的内存管理程序。早上,只有一家飯店營業,所以有足夠的閑置車位,車仆的管理工作也很輕松。午飯時間則顯得壓力重重,因為五個飯店都在營業,對車位的要求很緊張。
本文摘自《微軟創建NT和未來的奪命狂奔》
比爾蓋茨和他的微軟公司之所以能夠取得巨大的成功,最重要的原因就是他們能夠展望未來。微軟既不滿足於在應用軟件方面不錯的市場份額,也不滿足於在關鍵的操作系統業務上依靠DOS和Windows獲得的顯著優勢,他們一直在展望未來。而現在微軟的未來被稱為Windows NT。作為最先進的軟件創新,NT也許會在全世界直到下個世紀的範圍内重新定義計算的標準。NT賦予廉價的個人計算機的能力堪比龐大的大型機而且並沒有犧牲其内在的靈活性和個人計算機的優點。