本頁使用了標題或全文手工轉換

虛擬化

維基百科,自由的百科全書
前往: 導覽搜尋
VirtualBox,一種x86虛擬機器套件

計算機技術中,虛擬化(技術)虛擬技術英語:Virtualization)是一種資源管理技術,是將電腦的各種實體資源CPU記憶體磁碟空間網路適配器等),予以抽象、轉換後呈現出來並可供分割、組合為一個或多個電腦組態環境。由此,打破實體結構間的不可切割的障礙,使用戶可以比原本的組態更好的方式來應用這些電腦硬體資源。這些資源的新虛擬部份是不受現有資源的架設方式,地域或物理組態所限制。一般所指的虛擬化資源包括計算能力和資料儲存。

定義[編輯]

由於目前資訊科技領域的很多企業都曾在宣傳中將該企業的某種技術稱為虛擬化技術,這些技術涵蓋的範圍可以從Java虛擬機器技術到系統管理軟體,這就使得準確的界定虛擬技術變得困難。因此各種相關學術論文在談到虛擬技術時常常提到的便是如前面所提到的那個不嚴格的定義。

虛擬技術:電腦資源的重新分配

歷史[編輯]

虛擬化技術起源於20世紀60年代末,美國IBM公司當時開發了一套被稱作虛擬機器監視器Virtual Machine Monitor)的軟體,該軟體作為電腦硬體層上面的一層軟體抽象層,將電腦硬體虛擬分割成一個或多個虛擬機器,並提供多用戶對大型電腦的同時、互動存取。

虛擬化技術的類別[編輯]

按虛擬的對象分類[編輯]

  • 硬體虛擬化
  • 虛擬機器(Virtual machine或VM),可以像真實機器一樣執行程式的電腦的軟體實作
    • 平台虛擬化,將作業系統和硬體平台資源分割開
      • 完全虛擬化,敏感指令在作業系統和硬體之間被捕捉處理,客戶作業系統無需修改,所有軟體都能在虛擬機器中執行,例如IBM CP/CMS,VirtualBox,VMware Workstation
      • 硬體輔助虛擬化,利用硬體(主要是CPU)輔助處理敏感指令以實作完全虛擬化的功能,客戶作業系統無需修改,例如VMware Workstation,Xen,KVM
      • 部分虛擬化,針對部分應用程式進行虛擬,而不是整個作業系統
      • 準虛擬化/超虛擬化(paravirtualization),為應用程式提供與底層硬體相似但不相同的軟體介面,客戶作業系統需要進行修改。例如Xen的半虛擬化模式。
      • 作業系統級虛擬化,使作業系統內核支援多用戶空間實體,例如Parallels Virtuozzo Containers、OpenVZ、LXC以及類Unix系統上的chroot,Solaris上的Zone
    • 應用程式虛擬化,在作業系統和應用程式間建立虛擬環境
      • 可攜式應用程式,允許程式在可攜式裝置中執行而不用在作業系統中安裝
      • 跨平台虛擬化,允許針對特定CPU或者作業系統的軟體不做修改就能執行在其他平台上,例如Wine
      • 虛擬裝置,執行於虛擬化平台之上,面向應用的虛擬機器映像
      • 模擬器
  • 虛擬記憶體,將不相鄰的記憶體區,甚至硬碟空間虛擬成統一連續的記憶體位址
  • 儲存虛擬化,將實體儲存空間(如硬碟)分隔成不同的邏輯儲存空間
  • 網路虛擬化,將不同網路的硬體和軟體資源結合成一個虛擬的整體(請給出來源?)
    • 虛擬私人網路絡(VPN),在大型網路(通常是Internet)中的不同電腦(節點)通過加密連線而組成的虛擬網路,具有類似區域網路的功能
    • 記憶體虛擬化,將網路系統中的隨機存取記憶體聚合起來,形成統一的虛擬記憶體池
  • 桌面虛擬化,在本地電腦顯示和操作遠端電腦桌面,在遠端電腦執行程式和儲存資訊
  • 資料庫虛擬化
  • 軟體虛擬化
  • 服務虛擬化

按照抽象程度分類[編輯]

虛擬技術按抽象程度來分為五個層次

按照抽象程度的不同,常常把虛擬技術分為五個層次:

指令集結構層(Instruction Set Architecture Level)[編輯]

指令集結構層的虛擬技術是通過軟體方法模擬指令的執行效果。

硬體抽象層(Hardware Abstraction Level)[編輯]

硬體抽象層的虛擬技術是有硬體支援的虛擬技術,如2005年和2006年Intel公司和AMD公司推出的大部分新款x86架構處理器都帶有虛擬技術支援。兩家公司都稱新的帶有虛擬技術支援的處理器可以大大提高虛擬機器的執行效率和效能。

作業系統層(OS Level)[編輯]

應用層(Application Level)[編輯]

應用層的虛擬技術是最常見的,如Java虛擬機器、微軟.net CLI和Parrot。

庫層(Library Level)[編輯]

虛擬化技術的應用[編輯]

  • 伺服器整合
  • 沙盒(Sandboxing)
  • 多執行環境
  • 多作業系統
  • 測試和效能監視
  • 應用整合
  • 虛擬硬體
  • 軟體移植
  • 系統可管理性
  • 測試/品質保證

參考文獻[編輯]

  • Susanta Nanda, Tzi-cker Chiueh, "A Survey on Virtualization Technologies";
  • R.P.Goldberg, "Survey of Virtual Machine Research", Computer, June 1974, pp.34-45;
  • G.J.Popek, R.P.Goldberg, "Formal Requirements for Virtualizable Third Generation Architectures," Comm.ACM, Vol.17, Nr.7, July 1974, pp.412-421.

相關條目[編輯]

外部連結[編輯]