- 1 全虚拟化
全虚拟化
编辑在计算机科学中,虚拟化是 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 指令。 在给定虚拟机中执行的每个操作的效果必须保留在该虚拟机中——不允许虚拟操作改变任何其他虚拟机、控制程序或硬件的状态。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/195770/