最近,我买了一台苹果G5电脑(PPC 970),我很想了解更多关于PowerPC体系结构的知识(我的大部分系统编程知识来自x86和我自己的业余爱好内核)。
在使用了一段时间的计算机并习惯了PowerPC程序集(RISC)之后,我注意到在基于PowerPC 970的Mac上不可能实现低级别的CPU虚拟化。文档中的CPU (PowerPC 64)似乎支持管理程序模式,但已经注意到,由于开放固件,这是不可能的。
是否所有从PowerPC 970系列Mac上的开放固件加载的操作系统都以管理程序模式加载,从而使“嵌套”虚拟化成为不可能?如果是这样的话,为什么Operating会以虚拟机管理程序模式加载所有操作系统?这是否是为了为操作系统和Operating之间的通信提供一个安全层(除了在引导过程中使用固件和内存发现(这需要转换为“真实模式”),在x86中是不安全的)。
另外,如果操作系统使用超级调用来促进安全地转换到基于固件的例程,这难道不像syscalls那样造成很大的损失吗?
发布于 2015-01-20 01:51:28
我不了解苹果的硬件设计,但我听说HV模式(即机器状态寄存器中的HV=1 )是通过硬件在G5机器上禁用的。
如果是这样的话,那么就不是由系统固件来启用/禁用HV模式了--它根本不可用。
在这些机器可用时,其他Power硬件设计都有少量以HV=1模式运行的固件,并且只将HV=0公开给内核。然而,G5并不是其中之一。
https://stackoverflow.com/questions/27873059
复制相似问题