虛擬機器

虛擬機器

虛擬機器(virtual machine),在計算機科學中的體系結構里,是指一種特殊的軟體,他可以在計算機平台和終端用戶之間建立一種環境,而終端用戶則是基於這個軟體所建立的環境來操作軟體。在計算機科學中,虛擬機是指可以像真實機器一樣運行程式的計算機的軟體實現。

(圖)VirtualBoxVirtualBox


定義

虛擬機最初由波佩克與戈德堡定義為 有效的、孤立的真實機器的副本 。當前包括跟任何真實機器無關的虛擬機。

例子: 用Java編寫的程式可以通過對Java運行環境(JRE)軟體發命令獲得服務,取得期望的結果。透過提供這種服務,Java軟體起到了虛擬機的作用。程式不必為特定的作業系統或硬體編寫。

虛擬機根據它們的運用和與直接機器的相關性分為兩大類。系統虛擬機提供一個可以運行完整作業系統的完整的系統平台。相反,程式虛擬機為運行單個電腦程式設計,這意味它支持單個進程。虛擬機的一個本質特點是運行在虛擬機上的軟體被局限在虛擬機提供的資源里——它不能超出虛擬世界。

系統虛擬機

程式虛擬機
例如:JVM

技術

硬體的仿真
基於這種虛擬機,用戶可以運行任何作業系統,比如可以在他們“個人的”虛擬電腦上運行兩個不同的作業系統(也被稱為“訪客(guests)”)。這樣的話,新版的實驗性作業系統就可以與舊版的較穩定版本一同在單獨的虛擬機上運行。這個過程甚至可以重複(recursive);IBM就在運行於舊版的虛擬機上的虛擬機上調試它新版的虛擬機作業系統,VM。

這個概念的一個早期使用者就是IBM的VM/CMS time-sharing產品,該產品使用的互動式計算單用戶作業系統,CMS,相對來說比較簡單,運行於VM上。通過這種方式,CMS編寫起來就比較簡單,就好像只有它一個在運行一樣,VM作業系統就在幕後提供多任務以及資源管理服務。

當然,不是每個VM用戶都必須運行CMS;有些用戶選擇在一個或者多個虛擬機上運行某種OS/360(或者MVS),來提供傳統上的批處理服務。今天,IBM大型機還在使用VM,許多虛擬機上運行的是Linux作業系統。

VMware、twoOStwo以及SVISTA軟體包在現代PC上都在處理類似截獲硬體訪問,模擬除了處理器以外的任何主機板上的器件的事情。

plex86屬於另外一種情況,它使用特定的打過補丁的核心,只能運行於Linux下,而且只能在其之上運行Linux。因此,它不是仿真處理器,它利用bochs來仿真主機板設備。

現代PC使用的x86處理器架構其實並不能滿足Popek和Goldberg虛擬化要求。很明顯,這種架構缺少所有特權機器指令都會產生異常的模式,而這種模式可以做到單指令的虛擬化。這導致VMware或類似的x86虛擬軟體必須動態地重新編譯特權模式代碼。這種虛擬技術和運行於如IBM System/370、Motorola MC68020的原生態可虛擬架構上的VM相比,就會多出一些性能上的開銷。IntelAMD都聲稱計畫給未來的x86處理器加入x86虛擬化能力。

非原生系統的模擬

虛擬機器列表

虛擬軟體的更多描述
下列的軟體產品可以用來虛擬硬體,故可用於各種作業系統之上。

Adeos 是一種硬體抽象層。
KVM 是一種 Linux kernel模組,可以修正 QEMU program 使之可使用硬體虛擬實境 (hardware virtualization).

相關搜尋

熱門詞條

聯絡我們