關於Docker你不知道的事——虛擬化歷史

shev發表於2016-03-22

(提示:對Docker感興趣的朋友可以加我的微信:ghostcloud2016,我會把您加到我們的一個Docker愛好者微信群中,在這個群中,有來自五湖四海的Docker愛好者,我們共同交流,共同學習!) 

  整個虛擬化技術的發展有超過半個世紀的歷史。虛擬化一般分為硬體級虛擬化(hardware-level-virtualization)和作業系統級虛擬化(os-level-virtualization)。硬體級虛擬化是執行在硬體之上的虛擬化技術,它的管理軟體也就是我們通常說的hypervisor或者virtual machine monitor,它需要模擬的就是一個完整的作業系統,也就是我們通常所說的基於Hyper-V的虛擬化技術,VMWare, Xen, VirtualBox,亞馬遜AWS和阿里雲都是用的這種技術。作業系統級虛擬化是執行在作業系統之上的,它模擬的是執行在作業系統上的多個不同程式,並將其封裝在一個密閉的容器裡面,也稱為容器化技術。Docker正是容器虛擬化中目前最流行的一種實現。

硬體級虛擬化的歷史

  • 19世紀60年代:美國出現了第一個虛擬化系統,它是由IBM開發的CP-40 Mainframes系統,雖然這個系統只是在實驗室使用,但卻為後來的CP-67系統奠定了基礎。在那個時代,虛擬化系統主要由通用,貝爾實驗室和IBM主導研發。
  • 1987年:一個非常牛逼的公司Insignia Solutions演示了一個稱為SoftPC的軟體模擬器,這個模擬器允許使用者在Unix Workstations上執行DOS應用。在此之前這是不可能辦到的,當時一個可以執行MS DOS的個人電腦需要1,500美金,而通過SoftPC模擬之後,可降低到500美金。可以看出,當時的需求就是在大型工作站上執行微軟的DOS。到了1989年的時候,Insignia Solutions釋出了Mac版的SoftPC,使蘋果使用者不僅能執行DOS,還能執行Windows作業系統。
  • 1997年:隨著SoftPC的一炮而紅,其他虛擬化公司如雨後春筍般的出現了。在1997年,蘋果開發了Virtual PC,後來又賣給了Connectix。
  • 1998年:真正的王者VMWare出現了,他們在1999年開始銷售VMWare workstation,也就是我們很多人使用過得桌面版的虛擬機器。
  • 2001年:VMWare又發行了ESX和GSX,也就是我們現在經常使用的ESX-i的前身。
  • 2003年:之前所說的Connectix被微軟收購,後續推出了Microsoft Virual PC,再之後就沒什麼音訊了。同年VMWare也被EMC收購,成為EMC迄今最成功的一筆收購。就在這一年,一個開源的虛擬化專案Xen啟動了,並在2007年被Citrix收購。

總結:看了這個歷史,不禁內心發出感嘆。Insignia Solutions的衰敗,Connectix的沒落,以及VMWare的半路殺出,都說明了商業和科技的競爭是不間斷的,就像是一場長跑,一開始領先的,往往並不是最後的勝利者,你不進步,就肯定會被超越。

作業系統級虛擬化的歷史

  • 1982年:你一定會很驚訝,第一個作業系統級的虛擬化技術是什麼。答案就是chroot,直到現在我們依然在使用的一個系統呼叫。這個系統呼叫會改變執行程式的工作目錄,並且只能在這個目錄裡面工作。這種操作其實就是一種檔案系統層的隔離。
  • 2000年:FreeBSD jail,真正意義上的第一個功能完整的作業系統級虛擬化技術。所以,真正的容器化技術出現到現在已經過去了16年,並不是幾年的時間。
  • 2005年:OpenVZ,這是linux平臺上的容器化技術實現,同時也是LXC,即docker最初使用的容器技術核心實現。
  • 2008年:LXC釋出,這是docker最初使用的具體核心功能實現。
  • 2013年:Docker釋出,可以看出,docker最初是使用了LXC,同時封裝了其他的一些功能。Docker的成功,與其說是技術的創新,還不如說是一次組合式的創新。

  總結:曾經聽一位老大說過,iPhone你要說有多創新,真的說不上。手機很早就有了,電腦很早就有,觸控式螢幕很早就有,但是蘋果將所有這些有機的組合到了一起,再提供極致的使用者體驗,就產生跨時代的產品。同樣Docker所使用的技術也都不是新技術,它將這一系列技術有機的組合到一起,並提供極致的使用者體驗,就產生了垮時代意義的產品。


相關文章