目錄
- ? 全虛擬化
全虛擬化
在計算機科學中,虛擬化是 20 世紀 90 年代后期發展起來的一項現代技術,不同于模擬和仿真。 虛擬化采用用于創建環境實例的技術,而不是對環境建模的模擬; 或仿真,它復制目標環境,例如某些類型的虛擬機環境。 全虛擬化要求硬件的每一個顯著特征都反映到幾個虛擬機中的一個——包括完整的指令集、輸入/輸出操作、中斷、內存訪問,以及在裸機上運行的軟件使用的任何其他元素 機,并且旨在在虛擬機中運行。 在這樣的環境中,任何能夠在原始硬件上執行的軟件都可以在虛擬機中運行,尤其是在任何操作系統中。 完全虛擬化的明顯測試是用于獨立使用的操作系統是否可以在虛擬機內成功運行。
全虛擬化或 1 類虛擬化的基石是運行在比操作系統更高特權級別的管理程序或超級操作系統。 此管理程序或超級操作系統需要兩個關鍵功能來配置和保護虛擬化環境。 這兩個特點是:
- 獨立于操作系統的存儲管理可為所有受支持的虛擬環境(例如 Linux、Microsoft Windows 或嵌入式環境)配置資源,并保護這些環境免受未經授權的訪問,并且,
- 切換虛擬化環境以將物理計算資源分配給虛擬環境。
有關管理程序、操作系統和用戶模式、VMCS、VM-Exit 和 VM-Entry 的特權級別的詳細描述,請參閱 Intel VT-x 或 AMD-V。 不要將這種虛擬化與 60 年代末和 70 年代初的 IBM 虛擬機實現相混淆,因為 IBM 系統架構僅支持主管和程序兩種模式,不提供安全性或虛擬機分離。
其他形式的平臺虛擬化只允許某些或修改后的軟件在虛擬機中運行。 完全虛擬化的概念在文獻中得到了很好的確立,但并不總是用這個特定術語來指代; 有關術語,請參閱平臺虛擬化。
虛擬機的一個重要示例,不要與通過仿真實現的虛擬化相混淆,它是由 IBM 的 CP/CMS 操作系統的控制程序提供的。 它于 1967 年首次使用 IBM 的 CP-40 研究系統進行演示,然后于 1967 年至 1972 年通過開源在 CP/CMS 中分發,并從 1972 年至今在 IBM 的 VM 系列中重新實現。 每個 CP/CMS 用戶都獲得了一臺模擬的獨立計算機。 每個這樣的虛擬機都具有底層機器的完整功能,并且(對于它的用戶)虛擬機與私有系統沒有區別。 該模擬是全面的,并且基于硬件操作手冊的原理。 因此,它包括指令集、主存儲器、中斷、異常和設備訪問等元素。 結果是一臺機器可以在許多用戶之間進行多路復用。
全虛擬化只有在硬件和軟件元素正確組合的情況下才有可能。 例如,除了 IBM System/360-67 之外,大多數 IBM 的 System/360 系列是不可能的; IBM 的早期 System/370 系統也不可能。 IBM 在 1972 年向 System/370 系列添加了虛擬內存硬件,這與 Intel VT-x Rings 不同,它為 Hypervisor 提供了更高的權限級別,以正確控制需要完全訪問主管和程序或用戶模式的虛擬機。
同樣,在 2005-2006 年添加 AMD-V 和 Intel VT-x 擴展之前,x86 平臺也不太可能實現完全虛擬化(請參閱 x86 虛擬化)。 許多 x86 平臺的平臺管理程序非常接近,甚至在 AMD-V 和 Intel VT-x 添加之前就聲稱完全虛擬化。
全虛擬化的一個關鍵挑戰是攔截和模擬特權操作,例如 I/O 指令。 在給定虛擬機中執行的每個操作的效果必須保留在該虛擬機中——不允許虛擬操作改變任何其他虛擬機、控制程序或硬件的狀態。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/195770/