你未必知道 虛擬機是如何來到世界上的 |
發(fā)布時間: 2012/9/12 16:44:49 |
在今天的計算機世界中,虛擬機的概念已經(jīng)被用來解決許多問題。從機器的分割(IBM模型),到“半平臺無關”的程序設計語言(Java模型),到開發(fā)操作系統(tǒng)(UNIX模型和OSI模型),虛擬機的概念在構成現(xiàn)代計算機的過程中已經(jīng)被證明是一個強大的工具。然而,這個概念對每個人來說并非總是清晰,并且直到20世紀60年代中期,它才被用于實踐。
1965年前后,IBM的研究人員試圖去測量一些計算機科學領域新概念的實際效果。為了能夠測量到這些新特性開啟和關閉后機器的兩種性能,研究人員需要一種方式來關閉這些新的特性。這些人是IBM約克鎮(zhèn)(美國弗吉尼亞州東南部城鎮(zhèn))研究中心的研究人員。他們設計了一種方案,需要把機器分割成“更小的部件”。這些部件要求能夠管理他們自己的資源,以使得研究人員能夠在同一時間在系統(tǒng)中測試測試許多不同的條件,而不用改變系統(tǒng)的其他“部件”。他們相信,對于這個實驗來講,一個虛擬機的實現(xiàn)會工作的非常好。 在這次實驗之后,IBM繼續(xù)他們的工作,并最終開發(fā)出了一個虛擬機概念的實現(xiàn)。他們把它當作一個多用戶環(huán)境的操作系統(tǒng)來賣。許多企業(yè)和大學都使用這個操作系統(tǒng),因為它允許他們共享主機的計算能力和資源。每個用戶在他們自己的虛擬機中工作,從而可以和其他人共享資源而不影響其他人的工作。這臺虛擬機現(xiàn)在被稱做IBM370系統(tǒng)(S/370)和IBM390系統(tǒng)(S/390)。這些機器利用IBM VM/ESA操作系統(tǒng),并且都被歸為IBM虛擬機派系。 這個虛擬機的實現(xiàn)被證明非常的強大,因為至今它都還在銷售。虛擬機的概念從那以后開始被用來解決許多其他的計算問題,如計算機程序的可移植問題和操作系統(tǒng)的設計問題。 UNIX操作系統(tǒng)是最早利用虛擬機概念解決這些問題的實現(xiàn)之一。 UNIX操作系統(tǒng)源自貝爾實驗室的Denise Richie和Ken Thompson在1974年發(fā)表的一篇論文。他們關于UNIX的這一思想很快被用在了PDP-11計算機上。PDP-11是一種大學使用的機器。通過大學畢業(yè)生,這一思想又很快被應用于商業(yè)計算機領域。從1980年到1985年,IEEE標準化委員會實施POSIX(Portable Operating System 可移植操作系統(tǒng))項目來為UNIX庫函數(shù)提供一個標準。他們的想法是:任何軟件供應商都可以使用標準庫函數(shù)書寫他們的代碼,并且可以和任何UNIX系統(tǒng)對接。1990年,IEEE POSIX項目組發(fā)表了“信息技術可移植操作系統(tǒng)接口”。這為UNIX外殼和應用例程規(guī)定了一個標準,使得UNIX應用接口成為一種正式的規(guī)范,從而使UNIX進程作為一個獨立的虛擬機來工作。 創(chuàng)造一種真正可移植的計算機程序是長期困擾程序員的問題之一;蛘哒f,程序員希望能夠寫出可以在任何平臺上工作的程序。上世紀90年代中期,利用虛擬機的概念創(chuàng)造的JAVA語言使得這一想法幾乎成為現(xiàn)實。 但是,在上世紀90年代,JAVA程序語言的思想并不是一個新的想法。它實際上是上世紀70年代,一個叫Bill Joy的紳士的想法。Joy想通過創(chuàng)造一種語言來整合MESA和C最好的優(yōu)點。但是后來其他項目組(如Sun)攙和進來,并且實現(xiàn)這一想法需要很多年。到90年代早期,Joy對大型程序開始變的疲倦。在90年代后期,Joy寫了一篇叫“更進一步”的論文。(譯者按:可能作者在此處的時間問題上有點錯誤,應該是80年代后期。待查證。)在這篇論文中,他列出了對Sun工程師的建議,認為他們應該基于C++創(chuàng)造一個對象環(huán)境。也正是在這個時候,James Gosling已經(jīng)在一個叫做“Imagination”的SGML編輯器上使用C++工作幾個月了。因為Gosling在“Imagination”項目中使用C++時受到挫折,這使他創(chuàng)造了Oak編程語言。 1990年12月5日,Patrick Naughton開始了綠色項目(Green Project)。Naughton是這樣定義這個項目的:為實現(xiàn)“做的越少越好”而努力。在那年12月,他招募了Gosling和Mike Sheridan來幫忙啟動這個項目。Joy給他們看了自己“更進一步”的論文,并且用C為圖形學和用戶接口的問題工作了幾個月。 1991年4月,綠色項目組(Naughton,Gosling和Sheridan)開始以“智能家電”(smart consumer electronics)為目標市場。而Gosling開始為Oak編程語言而努力工作。Gosling用C寫了最早的編譯器,而Naughton,Gosling和Sheridan完成的運行時解釋程序也是用C完成的。1991年8月,Oak的第一個程序誕生了。 到1992年秋天,一種在PDA和遠程控制之間的交叉互通器“*7”準備好了。是年10月,他們向Sun的董事長Scott McNealy展示了這個系統(tǒng)。接著,Sun以綠色項目為主體成立了一個全資子公司,叫First Person Inc.。1993年早些時候,綠色項目組聽說時代華納(Time-Warner)需要一個關于機頂盒操作系統(tǒng)的計劃書。First Person迅速從智能家電轉向機頂盒操作系統(tǒng)市場,并且向時代華納遞交了標書。幸運的是Sun沒有中標。(譯者按:這應該是個不幸的事件。)First Person繼續(xù)研究機頂盒操作系統(tǒng)。直到1994年早些時候,他們意識到機頂盒和智能家電一樣華而不實。 1994年,因為看不到市場前景,F(xiàn)irst Person被母公司Sun兼并。也正是在那個時候,他們意識到,智能家電和機頂盒上需要的軟件(它們的特點是:短小,平臺無關,安全可靠)在新生的web上也同樣需要。綠色項目組第三次轉變他們的方向,這次是web。Patrick Naughton寫了一個叫WebRunner的瀏覽器雛形。經(jīng)過Naughton和Jonathan Payne增補,這個瀏覽器成為Hot Java。1995年,Oak更名為Java。1995年,Java第一個開發(fā)工具JDK1.0alpha版發(fā)布。從那時起,已經(jīng)有許多修訂版陸續(xù)發(fā)布,直到最近的JDK1.2。 本文出自:億恩科技【www.cmtents.com】 |