【问题标题】:PowerPC 970 Based Macs, Why Is Hypervisor Mode Unavailable?基于 PowerPC 970 的 Mac,为什么 Hypervisor 模式不可用?
【发布时间】:2015-03-08 12:16:49
【问题描述】:

我最近购买了一台 Apple G5 计算机 (PPC 970),并有兴趣进一步了解 PowerPC 架构(我的大部分系统编程知识来自 x86 和我自己的爱好内核)。

在使用计算机一段时间并习惯了 PowerPC 组装 (RISC) 之后,我注意到在基于 PowerPC 970 的 Mac 上无法实现低级 CPU 虚拟化。文档中的 CPU (PowerPC 64) 似乎支持虚拟机管理程序模式,但已经注意到由于 Open Firmware,这是不可能的。

是否所有从 PowerPC 970 系列 Mac 上的 Open Firmware 加载的操作系统都以虚拟机管理程序模式加载,从而使“嵌套”虚拟化变得不可能?如果这是真的,为什么 Open Firmware 会在管理程序模式下加载所有操作系统?这是为了为操作系统和开放固件之间的通信提供一个安全层(在启动期间对除 ACPI 和内存发现之外的所有内容使用固件,这需要转换到“实模式”,在 x86 中是不安全的?)。

此外,如果操作系统使用超级调用来促进安全过渡到基于固件的例程,这不会像系统调用那样造成很大的损失吗?

【问题讨论】:

    标签: virtualization powerpc


    【解决方案1】:

    我不了解 Apple 的硬件设计,但我听说 G5 机器中使用的 CPU 通过硬件禁用了 HV 模式(即机器状态寄存器中的 HV=1)。

    如果是这种情况,那么启用/禁用 HV 模式不取决于系统固件 - 它根本不可用。

    在这些机器可用时,其他 Power 硬件设计有少量固件在 HV=1 模式下运行,并且仅将 HV=0 暴露给内核。但是,G5 不是其中之一。

    【讨论】:

    • 你知道为什么 HV 机器寄存器被禁用了吗? MMU 和核心是否不支持管理程序模式,还是出于某种“安全”原因,这是出于良心的硬件决定?
    • 我认为这只是为了降低开发和测试成本 - 如果该功能在硬件中被禁用,则有一整套功能不需要验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    相关资源
    最近更新 更多