說(shuō)完了虛擬界的四大天王,再來(lái)說(shuō)說(shuō)四小天鵝。

第一天鵝是Sun公司。

好像把這么大的公司算做小天鵝有點(diǎn)那個(gè),不過(guò)在虛擬界Sun的影響確實(shí)不如前面那幾位大嘛。沒(méi)辦法,暫時(shí)委屈一下嘍。

Sun以前就有個(gè)很類(lèi)似Virtuozzo的軟件,叫Solaris Container。從名字就能看出來(lái),這咚咚也是個(gè)應(yīng)用容器。最近Sun在虛擬技術(shù)方面的熱情很高,新推出了一個(gè)叫做Logical Domain的咚咚,簡(jiǎn)寫(xiě)的模樣很怪異??LDoms。

第二天鵝是Parallels公司。

這家公司跟前面提到的SWsoft其實(shí)是姊妹公司,幕后投資人就是SWsoft的大老板。所以你在SWsoft的主頁(yè)上還能找到Parallels的鏈接呢。

Parallels主攻的方向是桌面虛擬,在Windows、Linux和Mac OS上都有產(chǎn)品。以Parallels掌握的技術(shù),完全可以實(shí)現(xiàn),在Windows上運(yùn)行Mac OS程序,在Mac OS上運(yùn)行Windows程序。但是目前的產(chǎn)品只支持后者,因?yàn)樘O(píng)果公司的授權(quán)條約限制了前者的合法性。

蘋(píng)果真是夠“獨(dú)”,居然禁止別的平臺(tái)運(yùn)行自己的程序!

第三天鵝是InnoTek公司。

這家公司非常識(shí)時(shí)務(wù),發(fā)現(xiàn)自己無(wú)論如何也打不過(guò)VMware等對(duì)手,就干脆把自己的VirtualBox做成開(kāi)源項(xiàng)目?,F(xiàn)在大家可以在網(wǎng)上任意下載VirtualBox來(lái)玩。

這一招還真管用,剛開(kāi)源沒(méi)多久的時(shí)間,VirtualBox的用戶,當(dāng)然主要是玩家型的用戶啦,就迅速增加。看來(lái)還是免費(fèi)的午餐更好吃?。?br />

第四天鵝是Thinstall公司。

這家公司其實(shí)不屬于傳統(tǒng)虛擬主機(jī)這個(gè)圈子,從名字就能猜出來(lái),它更多的是和一些所謂“瘦終端”廠商勾搭。但是它的產(chǎn)品卻從名字到功能,都不折不扣的屬于虛擬范疇。

它的產(chǎn)品叫Thinstall Virtual Suite,運(yùn)行起來(lái)的效果跟Virtuozzo差不多,也是蒙騙應(yīng)用程序,不讓?xiě)?yīng)用改動(dòng)系統(tǒng)環(huán)境。

虛擬技術(shù)世界里,除了這四大天王和四小天鵝,還有很多配套工作。比如前面提到的Intel和AMD的新技術(shù),就是配合這些虛擬軟件滴。

Intel的虛擬技術(shù)叫Intel-VT,其中VT是Vanderpool Technology的縮寫(xiě)。嘿嘿,不好意思,我剛開(kāi)始看到的時(shí)候還以為是Virtual Technology的縮寫(xiě)呢。這個(gè)技術(shù)的效果就是把一個(gè)CPU分成若干分區(qū),然后把指令的執(zhí)行范圍限定在分區(qū)內(nèi)。簡(jiǎn)單點(diǎn)說(shuō),就是在硬件上,把一個(gè)CPU虛擬成幾個(gè)CPU。

按照Intel的設(shè)想,將來(lái)都不需要什么虛擬軟件了,它自己的CPU直接就能同時(shí)運(yùn)行多個(gè)操作系統(tǒng)。不過(guò)現(xiàn)階段這只是個(gè)夢(mèng),Intel-VT技術(shù)還是要搭配VMware或者XEN才能起作用。當(dāng)然啦,VMware和XEN都是很給面子的,Intel-VT剛剛發(fā)布沒(méi)幾天,這兩個(gè)天王就都紛紛支持了。至于Virtuozzo這樣的“應(yīng)用容器”,由于主要是跟操作系統(tǒng)和應(yīng)用打交道,暫時(shí)還不用搭理CPU里面的這些技術(shù)。

AMD的虛擬技術(shù)正式名稱(chēng)叫AMD-V,但也有很多人喜歡稱(chēng)呼原來(lái)那個(gè)內(nèi)部用名,Pacifica。跟Intel-VT一樣,AMD-V技術(shù)的原理也是在CPU上劃分區(qū),同時(shí)隔離指令。

對(duì)用戶來(lái)說(shuō),讓人有點(diǎn)不爽的是Intel-VT和AMD-V互相是不兼容的。目前VMware和XEN都是要專(zhuān)門(mén)針對(duì)兩個(gè)技術(shù)分別做工作。

啥?你說(shuō)沒(méi)關(guān)系?那下次跟你談薪水的時(shí)候,咱們說(shuō)美元,發(fā)錢(qián)的時(shí)候數(shù)字不變,票子變成日元試試看。

Intel和AMD這邊虛擬得熱火朝天,IBM和Sun也怕落后,在新的PowerPC和SPARC處理器里,也弄了一堆虛擬技術(shù)。不過(guò)相比x86上的虛擬成分要“軟”很多,我的意思是說(shuō)要更多的依靠軟件,不要想歪哦!

其實(shí),虛擬技術(shù),說(shuō)到底就是一個(gè)字??騙。

Virtuozzo對(duì)應(yīng)用程序說(shuō):“來(lái)吧,來(lái)搞我吧,我就是操作系統(tǒng)?!?br />

VMware和XEN對(duì)操作系統(tǒng)說(shuō):“來(lái)吧,來(lái)弄我吧,我就是主機(jī)硬件?!?br />

Intel-VT和AMD-V對(duì)操作系統(tǒng)說(shuō):“來(lái)吧,來(lái)x我吧,我…我…我…還是x86 CPU。不過(guò)我是好幾個(gè)CPU哦,你想x哪一個(gè)?”

這些技術(shù)雖然在騙,但是騙得都不夠狠。虛擬技術(shù)里,有一類(lèi)狠角色,真是說(shuō)瞎話不眨眼。

N久以前有個(gè)名叫Bochs的騙子,他就可以在任何CPU上運(yùn)行,來(lái)模擬IA-32環(huán)境??上н@個(gè)騙子的壽命不長(zhǎng),M久以前就翹辮子了。

跟Bochs幾乎同時(shí)代的還有個(gè)PearPC開(kāi)源項(xiàng)目,他可以在任何CPU上模擬PowerPC。也就是說(shuō),你可以在家里的PC上安裝Linux,然后編譯PearPC代碼,然后運(yùn)行PearPC,然后在模擬出的環(huán)境中安裝AIX或者老版本的Mac OS!酷吧?!

可惜PearPC也壽祿不長(zhǎng),2005年底弄出模擬G4的0.4.0版之后,就再?zèng)]動(dòng)靜了。后來(lái)另外一個(gè)叫做CherryOS的開(kāi)源項(xiàng)目接過(guò)PearPC衣缽,又折騰了一年多時(shí)間,到處對(duì)人說(shuō)他可以在PC上安裝Mac OS,結(jié)果卻一再推遲發(fā)布日期。后來(lái)人民群眾不愛(ài)搭理他了,他也就如煙般散去了。

這些項(xiàng)目雖然最終不了了之,但是他們?yōu)楹髞?lái)的大騙子遺留下很多寶貴的騙術(shù)遺產(chǎn)。今天業(yè)界知名的大騙子??QEMU就還一直沿用著B(niǎo)ochs遺留下來(lái)的BIOS模擬技術(shù)。

當(dāng)然QEMU比他的前輩們出息多了,他已經(jīng)發(fā)展成一個(gè)家族。用句文言文說(shuō),QEMU家族可謂NB得不得了。

他們可以平臺(tái)無(wú)關(guān)的模擬x86、ARM、PowerPC、SPARC環(huán)境,而且速度非??臁?jù)說(shuō)效率可達(dá)80%,當(dāng)然,俺也不知道這個(gè)80%是意味著什么,反正肯定不是送過(guò)去100個(gè)指令,最后只執(zhí)行80個(gè)。

只要不太傻的人都知道,光有CPU是P也干不了的。還得有總線、I/O之類(lèi)的外部環(huán)境。還好今天的QEMU已經(jīng)可以完整的模擬一個(gè)主機(jī)環(huán)境,讓你可以在Linux上模擬出IBM或Sun的小機(jī)工作站,甚至能模擬一個(gè)陣列控制器。

當(dāng)然了,NB的事情總是高難度的。使用QEMU可不像使用VMware或者XEN那么容易,對(duì)各種真實(shí)硬件的支持也很不到位??梢栽徛铮思也攀?.9版,而且還是個(gè)免費(fèi)的開(kāi)源,都是靠雷鋒們?yōu)镼EMU添磚加瓦。也不容易啊!

如果你只對(duì)商業(yè)軟件感興趣,可以關(guān)注一下Transitive這家公司。他們的產(chǎn)品叫QuickTransit,可以讓Unix的程序在x86 Linux上運(yùn)行。而且據(jù)說(shuō)效率也很高。

現(xiàn)在QuickTransit可以支持的跨平臺(tái)方式有:

SPARC Solaris到x86/x86_64 Linux;

SPARC Solaris到x86 Solaris;

PowerPC或MIPS到x86 Linux

這些不同的虛擬技術(shù),雖然今天看來(lái)走得路子很接近,但是他們的祖宗并不是一個(gè)。

狀如QEMU這樣的CPU模擬器,最早源于那些寫(xiě)編譯器的高手。這些又牛又懶的高手總想省事,恨不得寫(xiě)一個(gè)編譯器就可以在各種CPU上到處用,于是就產(chǎn)生了今天跨平臺(tái)指令實(shí)時(shí)互譯的雛形。

而VMware和XEN,甚至包括Intel-VT、AMD-V的套路,主要師從于一個(gè)叫做“服務(wù)器分區(qū)”的技術(shù)。這是一門(mén)同樣古老的技術(shù),玩過(guò)Sun E10000的人一定對(duì)這種咚咚很熟悉。先在一臺(tái)E10000里插上若干CPU、若干內(nèi)存、若干板卡、若干菜刀……然后再跑到console臺(tái)上把某些CPU跟某些內(nèi)存以及某些I/O劃分成一個(gè)Domain。每個(gè)Domain就是一臺(tái)機(jī)器,最后在Domain上裝Solaris系統(tǒng)。

說(shuō)到這里,不由得想起當(dāng)年中國(guó)移動(dòng)總局規(guī)劃的一個(gè)愚蠢方案??居然采購(gòu)兩臺(tái)E10000做雙機(jī)!那個(gè)腦子進(jìn)水的技術(shù)主管顯然沒(méi)搞懂E10000咋用。

x86平臺(tái)的服務(wù)器分區(qū)技術(shù)出現(xiàn)的也非常早,UniSys公司的機(jī)器就是用一堆x86 CPU搭成的類(lèi)似E10000的模樣。不過(guò)從“分區(qū)”到“虛擬”還是有明確界限的。如果分區(qū)的時(shí)候只能操作整個(gè)的CPU,就算“分區(qū)”;如果能把一個(gè)CPU切開(kāi),分配半個(gè)甚至更小的CPU資源,就算“虛擬”了。從這個(gè)角度說(shuō),E10000、UniSys和其它大冰箱,都還是只能分區(qū)不能虛擬。這也正是大部分刀片服務(wù)器,一般都會(huì)搭配VMware的原因。

不過(guò)例外總是有的。一個(gè)叫做Egenera的公司就做了幾乎純硬件的虛擬系統(tǒng)。

此外,一些InfiniBand交換設(shè)備也能提供類(lèi)似的虛擬功能。


存儲(chǔ)在線版權(quán)所有,如需轉(zhuǎn)載,請(qǐng)與本站聯(lián)系


<待續(xù)>,持續(xù)關(guān)注,請(qǐng)點(diǎn)擊此處!

分享到

多易

相關(guān)推薦