Design Safe States

Posted by Underdog Linux on October 15, 2023

原文:Design Safe States

QNX Hypervisor 支持两种设计安全状态 (DSSs)。

在运行非安全 QNX Hypervisor 变体且不遵守安全手册的情况下,无法保证hypervisor 在虚拟机或hypervisor 本身出现未定义条件后会进入其 DSSs 之一。

如果内部或外部检测机制向hypervisor 发出警报,告知其无法以任何其他方式处理的情况,则hypervisor 应执行以下操作之一:

  • VM DSS (local DSS) 如果未定义的条件仅限于虚拟机,则hypervisor将终止该 qvm 进程实例(例如,使用 SIGSEGV 信号)。 终止托管 qvm 进程实例将终止其guest。

  • Hypervisor host DSS (global DSS) 由于 QNX Hypervisor 由 QNX Neutrino 微内核和虚拟化扩展组成,因此导致 QNX 操作系统迁移到其 DSS 的相同条件会导致Hypervisor 主机迁移到其 DSS。 也就是说,如果未定义的条件不限于 VM,则hypervisor 将关闭。此 DSS 与 QNX Neutrino DSS 相同。

  • shutdown 函数在发现未定义条件的 CPU 上调用。如果 ISR(中断服务例程)中发生崩溃,则没有kernel lock,其他 CPU 可能会继续运行。
  • shutdown() 调用将触发 BSP 中定义的 reboot kernel callout。您需要确保此callout 包含将整个系统置于安全状态的措施。