英语
Paravirt_ops¶
Linux 提供了对不同虚拟机管理程序虚拟化技术的支持。 历史上,需要不同的二进制内核才能支持不同的虚拟机管理程序;通过 pv_ops 删除了此限制。 Linux pv_ops 是一个虚拟化 API,可以支持不同的虚拟机管理程序。 它允许每个虚拟机管理程序覆盖关键操作,并允许单个内核二进制文件在所有受支持的执行环境(包括本机)上运行,而无需任何虚拟机管理程序。
pv_ops 提供了一组函数指针,这些指针代表与各种领域中的低级关键指令和高级功能相对应的操作。 pv_ops 允许通过在启动时对低级关键操作进行二进制修补来在运行时进行优化。
pv_ops 操作分为三类
- 简单的间接调用
这些操作对应于高级功能,其中已知间接调用的开销不是很重要。
- 允许使用二进制补丁进行优化的间接调用
通常,这些操作对应于低级关键指令。 它们被频繁调用并且对性能至关重要。 开销非常重要。
- 用于手写汇编代码的一组宏
手写汇编代码(.S 文件)也需要半虚拟化,因为它们包含敏感指令或其中的某些代码路径对性能至关重要。