2014-01-30 36 views
46

我正在經歷虛擬化這個話題,提出這個問題似乎有點無聊,但我完全理解了這個基本概念,維基百科確實提供了一些相關信息,但對我來說理解基礎知識還不夠概念。這個概念將是2到3線,但我無法在網上或書上找到它們。Full,Para和硬件輔助虛擬化有什麼區別?

如果有人給我這三種類型的基本概念,我會很高興。我清楚地知道虛擬化,理解得很好,但上述三種...

回答

106
  • Paravirtualization是虛擬化技術在客戶操作系統(在一個被虛擬)知道,這是一個客人,因此具有的驅動程序不是發佈硬件命令,而是直接向主機操作系統發出命令。這也包括內存和線程管理,這通常需要處理器中不可用的特權指令。

  • Full Virtualization是虛擬化技術在來賓操作系統並不知道它是在虛擬環境中,因此,硬件由主機操作系統虛擬化,以便客人可以發出命令,它認爲是實際的硬件,但實際上只是模擬主機創建的硬件設備。

  • Hardware Assisted Virtualization是一種完全虛擬化,其中微處理器架構具有特殊指令來幫助硬件虛擬化。這些指令可能允許設置虛擬環境,以便來賓可以直接在處理器上執行特權指令,而不會影響主機。這種功能集通常稱爲管理程序。如果所述指令不存在,則完全虛擬化仍然是可能的,然而它必須通過諸如動態重新編譯之類的軟件技術來完成,其中主機重新編譯客戶機中的特權指令以便能夠以非特權方式運行在主機上。

  • 還有帕拉虛擬化的結合,完全虛擬稱爲混合虛擬化在來賓操作系統使用的半虛擬化的某些硬件驅動程序的一部分,並且主機使用的其他功能完全虛擬化。這通常在客戶端上產生出色的性能,而不需要客戶端完全半虛擬化。例如:訪客在內核中使用完全虛擬化來獲取特權指令,但使用guest虛擬機中的特殊驅動程序進行IO請求的半虛擬化。這樣,客戶操作系統不需要完全半虛擬化,因爲這有時不可用,但通過爲客人實施特殊驅動程序,仍然可以享受一些準虛擬化功能。

+1

在半虛擬化中,正如您所提到的,guest虛擬機知道並向主機OS發出命令,而不是向硬件命令發佈虛擬硬件設備由虛擬機管理程序在全虛擬化情況下創建。我很疑惑在沒有主機操作系統的第一類虛擬機管理程序的情況下如何發生半虛擬化。客人向誰發出硬件命令? –

+0

@gauravparashar它將直接向虛擬機管理程序發出命令,就像它是主機操作系統一樣。虛擬機管理程序必須至少有一個基本的半虛擬化API,從這個意義上說,它是一個非常基本的主機操作系統。 – Dougvj

+0

@Dougvj,完全虛擬化是否意味着硬件輔助虛擬化?他們是否攜手並進? – Pacerier

0

在硬件輔助虛擬化的情況下,虛擬化被設計成英寸指令集提供分區主機的指令。以Intel的VT-x技術爲例。因此,管理程序直接與硬件一起工作,而不使用任何操作系統來訪問它並提供完整的虛擬化。

相關問題