Ⅰ 什麼是cpu的虛擬化技術,有什麼優勢
CPU的虛擬化技術是指將單台電腦軟體環境分割為多個獨立分區,每個分區均可以按照需要模擬電腦的一項技術。它的技術實質是通過中間層次實現計算資源的管理和再分配,使資源利用實現最大化。
CPU的虛擬化技術的優勢為雖然虛擬化可以通過軟體實現,但是CPU硬體支持的話,執行效率會大大提升,也可以支持64位操作系統。
(1)為什麼會出現虛擬技術擴展閱讀:
虛擬化技術的原理
虛擬機對真實計算環境進行抽象和模擬,VMM 需要為每個虛擬機分配一套數據結構來管理它們狀態,包括虛擬處理器的全套寄存器,物理內存的使運飢用情況,虛擬設備的狀態等等。
VMM 調度虛擬機時,將其部分狀態恢復到主機系統中。並非所有的狀態都需要恢復,例如主機 CR3 寄存器中存放的是 VMM 設置的頁表物理地址,而不是 Guest OS 設置的值。
主機處理器直接運行 Guest OS 的機器指令,由於 Guest OS運芹氏行在低特權級別,當訪問主機系統的特權狀態(如寫 GDT寄存器)時,許可權不足導致主機處理器產生異常,將運行權自動交還給 VMM。此外,外旁首返部中斷的到來也會導致 VMM 的運行。
Ⅱ 虛擬化技術介紹
虛擬化(Virtualization)技術最早出現在20世紀60年代的IBM大型機系統,在70年代的System 370系列中逐漸流行起來。這些機器通過一種叫虛擬機監控器(Virtual Machine Monitor,VMM)的程序在物理硬體之上生成許多可以運行獨立操作系統軟體的虛擬機(Virtual Machine)實例。
隨著近年計算機技術的進步,無論是伺服器市場、桌面市場,還是嵌入式市場,處理器的頻率和核心數目都出現了巨大的進步,從而帶來了處理能力的迅速增長,使得虛擬化技術再次迅速發展起來,並從最初的的 裸機虛擬化 技術開始,演化出 主機虛擬化 、 混合虛擬化 等更復雜的虛擬化模型,並在此基礎山發展出了當下最熱門的 雲虛擬化 技術,極大地降低了IT成本,增強了系統的安全性,可靠性和擴展性。
在計算機領域,虛擬化是一個廣義的概念。簡而言之,虛擬化是指對計算機資源的抽象。虛擬機最初被Popek和Goldberg定義為物理機器的一個或多個隔離的有效復制[16]。J.E. Smith和RaviNair給出了一個更具體化的定義:虛擬機是通過在物理平台上添加的軟體給出的一個或多個不同的平台。一個虛擬機可以有一個操作系統和指令集,或者兩者都有,可以不同於底下的真實的硬體。
虛擬化技術的本質在於對計算機系統軟硬體資源的劃分和抽象。計算機系統的高度復雜性是通過各種層次的抽象來控制,每一層都通過層與層之間的介面對底層進行抽象,隱藏底層具體實現而向上層提供較簡單的介面。
計算機系統包括五個抽象層:硬體抽象層,指令集架構層,操作系統層,庫函數層和應用程序層。相應地,虛擬化可以在每個抽象層來實現。無論是在哪個抽象層實現,其本質都是一樣的,那就是它使用某些手段來管理分配底層資源,並將底層資源反映給上層。操作系統上傳統的進程模型就利用了虛擬化的思想,操作系統通過對物理內存的劃分和抽象,給每個進程呈現出遠超出物理內存空間的4G空間,並且使得每個進程實現了有效的隔離,從而一個進程的崩潰不會影響到其它進程的正常運行。
虛擬化平台是操作系統層虛擬化的實現。在系統虛擬化中,虛擬機(VM)是在一個硬體平台上模擬一個或者多個獨立的和實際底層硬體相同的執行環境。每個虛擬的執行環境裡面可以運行不同的操作系統,即客戶機操作系統(Guest OS)。Guest OS通過虛擬機監控器提供的抽象層來實現對物理資源的訪問和操作。目前存在各種各樣的虛擬機,但基本上所有虛擬機都基於"計算機硬體 + 虛擬機監視器(VMM)+ 客戶機操作系統(Guest OS)"的模型。
虛擬機監控器是計算機硬體和Guest OS之間的一個抽象層,它運行在最高特權級,負責將底層硬體資源加以抽象,提供給上層運行的多個虛擬機使用,並且為上層的虛擬機提供多個隔離的執行環境,使得每個虛擬機都以為自己在獨占整個計算機資源。虛擬機監控器可以將運行在不同物理機器上的操作系統和應用程序合並到同一台物理機器上運行,減少了管理成本和能源損耗,並且便於系統的遷移。
根據虛擬機監視器在虛擬化平台中的位置,可以將其分為以下3種模型:
虛擬機監視器採用的虛擬化技術分為以下4種:
嵌入式系統是虛擬化技術的新方向和重要分支。
嵌入式處理器的迅速發展使得嵌入式系統在更多方面得到了廣泛的應用。而嵌入式設備應用的普及導致其對軟硬體的需求也越來越高。硬體體現在不斷增強的計算能力和多種多樣的外部設備,軟體體現在愈加復雜的新功能特性。這些問題導致嵌入式開發變得復雜和軟體維護成本的增加。原來的SMP和AMP等多核操作系統方案無法滿足安全隔離、硬體資源分配和復用等日益復雜的要求。因此,伺服器和桌面系統上的虛擬化技術被引入了嵌入式操作系統領域,並藉助於硬體輔助虛擬化技術,解決了虛擬化技術帶來的便利性與嵌入式系統得實時性要求之間的矛盾,使得以Linux KVM、Xen等嵌入式虛擬化平台得到了迅速發展。
虛擬化平台在硬體和操作系統之間引入了一個新的抽象層次,稱為虛擬機監控器(Virtual Machine Monitor,簡稱VMM),由它接管所有的硬體,並管理運行其上的所有虛擬機(Virtual Machine,簡稱VM),而每個虛擬機中可以運行各自的操作系統。
虛擬化的優點在於實現了資源的重用,使得一個物理平台上面可以同時運行多個不同的操作系統。通過利用系統虛擬化技術,可以在嵌入式設備中同時運行實時操作系統和通用操作系統,分別發揮各自的優勢——實時操作系統處理實時任務,通用操作系統提供豐富的應用程序,它們彼此分工協作,發揮各自的優勢,同時滿足各種不同的需求。
但與此同時,虛擬化平台技術也引入了新問題。不少嵌入式系統對實時性能都有比較高的要求,而虛擬機與虛擬機監控器間的切換導致處理器操作模式的切換和上下文的切換,會增加系統的響應時間,從而增加實時系統的時間不確定性,影響了實時系統的性能。虛擬機對運行於其上的應用程序的隔離又增加了虛擬機監控器的精確調度的難度,目前的虛擬機監控器也只能基於虛擬機的優先順序或者時間片分配而進行粗粒度的調度。此外,現存的虛擬化平台技術主要基於X86等通用計算機平台,對ARM、MIPS等嵌入式處理器支持不夠,在功能性和穩定性上都有所缺失。
綜上所述,虛擬化可以解決嵌入式系統目前面臨的不少問題,帶來很多方便,但由於現存虛擬化解決方案(如KVM和XEN)在設計之初並沒有考慮嵌入式系統的特殊需求,從導致功能性、實時性、穩定性都有所缺失。