日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CPU虚拟化

發布時間:2023/12/9 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CPU虚拟化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

X86硬件虛擬化的挑戰

?

X86硬件操作系統被設計為直接在裸機硬件上運行,因此他們自然地會認為他們完全擁有計算機硬件資源。如圖1所示:X86架構提供了4類特權:Ring0,1,2,3,用于管理對計算機硬件的訪問。用戶層應用程序通常在Ring3運行,操作系統需要直接在Ring0中的執行特權來訪問內存和硬件。虛擬化X86架構需要在操作系統下放置一個虛擬層來創建和管理分配共享資源的虛擬機。

更復雜的情況是。一些敏感的指令不能完全地虛擬化,因為他們在Ring0執行前具有不同的語義。捕獲和翻譯這些敏感和特權指令是很困難的,這就使最初的X86架構虛擬化架構看起來沒有可能性。

VMware在1998年解決了這個挑戰,發展了二進制翻譯技術,允許VMM運行在Ring0層實現隔離和性能,將操作系統移動到權限高于Ring3的應用程序并且權限低于Ring0的虛擬機監視器。雖然VMware使用二進制翻譯的完全虛擬化方案基于VMware的20000個客戶群和大型合作伙伴生態系統的事實上的標準,但整個行業尚未就定義和管理虛擬化的開放標準達成一致。每一個開發虛擬化解決方案的公司都可以解釋技術挑戰,挖掘不同優劣勢的解決方案。

如下所示,現如今存在三種替代技術可以用于處理敏感和特權指令,在X86的架構上虛擬化CPU

1.使用二進制翻譯的全虛擬化

2.操作系統輔助虛擬的半虛擬化

3.硬件輔助虛擬化

技術1——使用二進制翻譯的全虛擬化

全虛擬化為客戶機提供了完整的虛擬X86平臺, 包括處理器、 內存和外設, 支持運行任何理論上可在真實物理平臺上運行的操作系統, 為虛擬機的配置提供了最大程度的靈活性。不需要對客戶機操作系統做任何修改即可正常運行任何非虛擬化環境中已存在基于X86平臺的操作系統和軟件,這也是全虛擬化無可比擬的優勢。

在全虛擬化情況下,虛擬機并不知道自己運行在虛擬化環境下,是無感知的,安裝使用時跟在物理機上沒有什么區別。但是這種完全虛擬化中間需要軟件做支撐的,需要軟件去模擬提供所有的硬件資源,至少是這個CPU的特權指令需要用軟件去模擬的,因為你要讓各Guest并不知道自己運行在虛擬環境中,那么你就必須要提供一個帶有特權指令的CPU。

在虛擬化環境中,通常虛擬跟模擬是兩個概念,VMWare的動態二進制翻譯技術(BT)是虛擬的而QEMU軟件技術是模擬的。最大的區別在于,模擬通過軟件實現時需要模擬CPU ring 0-3,也就是需要轉換CPU ring 0-3所有的指令,而虛擬只需要轉換CPU ring 0特權指令即可。

當然不管上面說到的BT技術還是QEMU還是硬件輔助虛擬化技術都屬于完全虛擬化技術,都是需要指令轉換的,都是需要復雜的步驟才能完成的,如果我們能夠精簡這其中的步驟那么虛擬機的性能一定會有提升的。那么怎么精簡呢?這就是下面說的半虛擬化技術。另外,在全虛擬化模式下:

CPU如果不支持硬件虛擬化技術:那么所有指令都是通過VMM虛擬的,通過VMM內的BT動態翻譯技術把虛擬機要運行的特權指令轉換為物理指令集,然后到CPU上運行。

CPU如果支持硬件虛擬化技術:VMM運行ring -1,而GuestOS運行在ring 0。

技術2——系統調用的Para-virtualization(半虛擬化

軟件虛擬化可以在缺乏硬件虛擬化支持的平臺上完全通過VMM軟件來實現對各個虛擬機的監控,以保證它們之間彼此獨立和隔離。 但是付出的代價是軟件復雜度的增加,和性能上的損失。減輕這種負擔的一種方法就是,改動客戶操作系統,使它知道自己運行在虛擬環境下,能夠與虛擬機監控機協同工作。這種方法就叫半虛擬化(para-virtualization)。虛擬機內核明確知道自己是運行在虛擬化之上的,對于硬件資源的使用不再需要BT而是自己向VMM申請使用,如對于內存或CPU的使用是直接向VMM申請使用,直接調用而非翻譯。就算對于I/O設備的使用它也可以通過Hyper Call(Hypervisor提供的系統調用)直接可以跟硬件打交道,減少了中間的翻譯步驟自然性能就好了,據說這種半虛擬化方式能夠讓虛擬化達到物理機90%的性能。本質上,半虛擬化弱化了對虛擬機特殊指令的被動截獲要求,將其轉化成客戶機操作系統的主動通知。但是,半虛擬化需要修改客戶機操作系統的源代碼來實現主動通知。

技術3——硬件虛擬化

?

硬件輔助虛擬化(HVM),簡而言之,就是物理平臺本身提供了對特殊指令的截獲和重定向的硬件支持,甚至,新的硬件會提供額外的資源來幫助軟件實現對關鍵硬件資源的虛擬化,從而提升性能。可以理解為CPU額外增加了一個ring -1環專門提供給虛擬機運行的。以X86平臺的虛擬化為例,支持虛擬技術的X86 CPU帶有特別優化過的指令集來控制虛擬過程,通過這些指令集,VMM會很容易將客戶機置于一種受限制的模式下運行,一旦客戶機試圖訪問物理資源,硬件會暫??蛻魴C的運行,將控制權交回給VMM處理。VMM還可以利用硬件的虛擬化增強機制,將客戶機在受限模式下對一些特定資源的訪問,完全由硬件重定向到VMM指定的虛擬資源,整個過程不需要暫??蛻魴C的運行和VMM軟件的參與。

由于虛擬化硬件可提供全新的架構,支持操作系統直接在上面運行,無需進行二進制轉換,減少了相關的性能開銷,極大簡化了VMM 設計,進而使VMM能夠按通用標準進行編寫, 性能更加強大。

需要說明的是, 硬件虛擬化技術是一套解決方案。完整的情況需要CPU、主板芯片組、BIOS和軟件的支持,例如VMM軟件或者某些操作系統本身。即使只是CPU支持虛擬化技術,在配合VMM軟件的情況下,也會比完全不支持虛擬化技術的系統有更好的性能。鑒于虛擬化的巨大需求和硬件虛擬化產品的廣闊前景,Intel一直都在努力完善和加強自己的硬件虛擬化產品線。自2005年末,Intel便開始在其處理器產品線中推廣應用Intel Virtualization Technology(IntelVT)虛擬化技術,發布了具有IntelVT虛擬化技術的一系列處理器產品,包括桌面的Pentium和Core系列,還有服務器的Xeon至強和Itanium安騰。Intel一直保持在每一代新的處理器架構中優化硬件虛擬化的性能和增加新的虛擬化技術?,F在市面上,從桌面的Core i3/5/7,到服務器端的E3/5/7/9,幾乎全部都支持Intel VT技術??梢哉f, 在不遠的將來, Intel VT很可能會成為所有Intel處理器的標準配置。當然AMD的CPU也都支持虛擬化技術。

?

總結

以上是生活随笔為你收集整理的CPU虚拟化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。