一、虛擬機(jī)的概念
所謂虛擬機(jī),顧名思義,就是指一臺(tái)虛擬的計(jì)算機(jī)。它的虛擬的含義,是相對(duì)于我們?nèi)粘J褂玫奈锢碛?jì)算機(jī)來講的。物理計(jì)算機(jī)我們摸得到,看得見,CPU、硬盤、內(nèi)存等等,這些設(shè)備我們都可以實(shí)實(shí)在在地接觸到。而虛擬機(jī),則是一種被虛擬化的技術(shù),虛擬機(jī)中的CPU、內(nèi)存等硬件設(shè)備我們都看不見,但是我們可以使用它們,可以使用虛擬機(jī)中的硬盤來存儲(chǔ)數(shù)據(jù),使用虛擬機(jī)中的網(wǎng)卡來連接網(wǎng)絡(luò),其實(shí)這些功能都是由程序模擬出來的,但是我們?cè)谑褂眠^程中,并沒有感覺到和真實(shí)的計(jì)算機(jī)有什么不同,這就是神奇的虛擬機(jī)技術(shù)。
而虛擬機(jī)技術(shù)最直接的應(yīng)用,就是虛擬機(jī)軟件。其最大的作用就是在一臺(tái)普通計(jì)算機(jī)上模擬出另外一臺(tái)乃至數(shù)臺(tái)能夠單獨(dú)運(yùn)行的操作系統(tǒng),甚至還可以將這幾個(gè)操作系統(tǒng)連成一個(gè)虛擬的局域網(wǎng)絡(luò)。
二、虛擬機(jī)技術(shù)的幾種應(yīng)用
1.JAVA 虛擬機(jī)技術(shù)
眾所周知,JAVA語(yǔ)言是一種跨平臺(tái)的語(yǔ)言,JAVA語(yǔ)言編寫的程序可以在Windows、Linux、UNIX等多種平臺(tái)上運(yùn)行,號(hào)稱“一次編譯,到處運(yùn)行” 。那么是什么神奇的技術(shù)使其有這么強(qiáng)大的功能呢?其實(shí)這都是虛擬機(jī)技術(shù)的功勞,而JAVA虛擬機(jī)則叫做JVM (JAVA Virtual Machine)。JVM處于操作系統(tǒng)和JAVA語(yǔ)言之間,負(fù)責(zé)將高級(jí)語(yǔ)言JAVA轉(zhuǎn)換成操作系統(tǒng)能夠理解的語(yǔ)言,如圖1。
2.虛擬機(jī)在殺毒軟件中的應(yīng)用
虛擬機(jī)在殺毒軟件中也有著極為重要的應(yīng)用,這主要表現(xiàn)在虛擬機(jī)脫殼上。殼是一種加密手段,*程序通過加殼來改變自身特征碼,以躲避殺毒軟件的查殺。較常見的殼有“UPX”、“NsPack”、“PePack”、“PECompact”、“ASPack”等。*加殼,就好比穿上“馬甲”一樣,而脫殼技術(shù),就好比一把照妖鏡,可以將加殼*顯現(xiàn)原形。因此,殺毒軟件都需要具有脫殼能力,其脫殼能力的好壞,直接影響著殺毒效果。目前在殺毒軟件中,脫殼技術(shù)主要有兩種,一種是靠程序脫殼,即針對(duì)每一種殼,都編寫相應(yīng)的脫殼程序,殺毒時(shí)先將加殼的程序脫殼后,再進(jìn)行特征碼匹配殺毒,這種方法的優(yōu)點(diǎn)是脫殼速度很快,節(jié)省系統(tǒng)資源,但是當(dāng)遇到新殼時(shí),就無能為力了。因此又出現(xiàn)了虛擬機(jī)脫殼技術(shù)。
虛擬機(jī)脫殼技術(shù),就是在殺毒軟件內(nèi)部,虛擬出來一個(gè)環(huán)境,讓*在其中運(yùn)行,等*脫掉它的“馬甲”之后,在進(jìn)行特征碼的匹配殺毒。雖然現(xiàn)在的技術(shù)還無法在殺毒軟件中完全虛擬出來一個(gè)真實(shí)的硬件環(huán)境,但是隨著技術(shù)的進(jìn)步,相信在不遠(yuǎn)的將來,虛擬機(jī)殺毒技術(shù)將是殺毒軟件領(lǐng)域的新突破。
3. 商用虛擬機(jī)軟件
目前,最為成功的商用虛擬機(jī)軟件,無疑要數(shù)VMware 和 Virtual PC了,下面就簡(jiǎn)單介紹一下VMware這款優(yōu)秀的虛擬機(jī)軟件。 VMware可以虛擬出各種主流操作系統(tǒng),如圖2。
圖2 VMware 能虛擬出各種主流操作系統(tǒng)
還可以虛擬出各種硬件,如圖3紅色框內(nèi)的各種硬件設(shè)備。
圖3 VMware 能虛擬出各種硬件設(shè)備
有了這么強(qiáng)大的虛擬機(jī)軟件,我們可以在一臺(tái)電腦中虛擬出各種操作系統(tǒng),甚至可以將它們連接成一個(gè)局域網(wǎng),如圖4。
在Windows XP系統(tǒng)中運(yùn)行著Linux 操作系統(tǒng)