x86虚拟化指令集(VT-x,AMD-V)是否有其他用途?

11

硬件辅助虚拟化为在虚拟机监控程序上高效安全地运行客户操作系统提供了良好的途径。

那些指令集(例如Intel的VT-x、AMD的AMD-V和扩展页表扩展)是否可以用于除整体运行客户操作系统之外的场景,例如隔离进程或防止内核模式代码执行不应该做的事情?

2个回答

9
通过查阅英特尔关于"硬件辅助虚拟化"的页面,他们提到了一些有趣的应用:
1. 工业系统:虚拟化使得系统能够同时运行实时操作系统和通用操作系统,每个操作系统在英特尔®多核处理器的专用处理器核上运行。
这与运行客户操作系统不同。在这里,VT-x功能可用于并行运行两个不同的操作系统,以便我们可以结合两者的优点来实现我们的目标。例如,需要非常高精度的实时数据监视和非常高速的处理的情况:在这种情况下,数据采集可以完全委托给运行在一个核心上的RTOS,而另一个核心则运行GPOS来处理数据。 2. 医疗设备:对于医疗诊断设备,保护应用程序和患者数据至关重要。需要更高级别安全的应用程序可以使用英特尔VT进行隔离,该技术可在硬件上保护其内存空间并帮助防止来自恶意软件的攻击。因此,在安全分区中运行的软件只能访问自己的代码和数据区域,无法越过其内存边界进行分页,因为硬件会防止未经授权的访问。

正如他们所提到的,VT实现的内存空间保护使得软件只能运行自己的代码,并且只能访问自己的内存空间。这在电子安全方面具有很大的潜力。


这些应用程序是在同一处理器上运行多个操作系统的特例。 - Gilles 'SO- stop being evil'
不,这些是在同一处理器上的不同核心上运行应用程序的示例...尤其是在第一个场景中。 - Stark07
是的,它们是在同一处理器上运行多个操作系统的特殊情况(例如,在示例1中是RTOS和GPOS,在示例2中是用于高安全应用程序的操作系统和用于低安全应用程序的操作系统)。每个操作系统当然都运行自己的应用程序。 - Gilles 'SO- stop being evil'
能否请点踩的用户告诉我,我回答中有哪些问题? - Stark07
你的最后一个用例基于什么?什么是“稍微更有特权”?为什么在更高特权级别下运行的游戏会有更好的性能? - Nikopol
@Nikopol - 那只是猜测,已经移除了。 - Stark07

5
这些指令集(如Intel的VT-x,AMD的AMD-V和扩展页表扩展)是否除了批量运行客户操作系统之外,还提供其他价值?另一个虚拟化扩展的用例是运行裸机虚拟机监视器(也称为1型虚拟机监视器)。除了能够在其上运行多个操作系统之外,您还可以直接在虚拟机监视器上方运行裸机应用程序(而不是在客户操作系统实例中),并与常规虚拟化操作系统一起运行。虚拟机监视器可以保证安全性,以便这些应用程序可以运行像医疗设备这样的关键系统。如果客户操作系统崩溃,虚拟机监视器将确保裸机应用程序不受影响。例如,它们可以用于沙箱进程吗?它们可以用于沙箱进程,但这也是常规操作系统所做的事情。或者防止内核模式代码执行不应该执行的操作?
这实际上是虚拟化的客户操作系统试图执行敏感指令时发生的情况,这些指令可以更改在架构的非特权模式下运行的机器的执行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接