0450名称未設定
2020/05/20(水) 13:24:42.28ID:+QOS1Bqe0ParallelsはCPUの仮想化機能を利用しているので基本的にそのままの速度で動作する
x86_64の場合、通常のプログラムがRing3、OSがring0で動いているんだけど、Intel CPUの
VT-xやAMD CPUのAMD-Vが提供するRing-1でハイパーバイザと呼ばれる仮想化OSを
動かすことで複数のOSを同時に動かすことができる
さらにメモリやデバイスをCPU等が提供するVT-dやIOMMU、SR-IOVなどで仮想化をする
ことでより性能を落とさず複数のOSを同時に動かすことができる
この仮想化支援機能を利用したソフトの1つがParallelsで、ほかにもVMWareやVirtualBox、
Xen、KVM、Hyper-V、xhyveなどがある
ARMの場合通常のプログラムがEL0、OSがEL1だが、ハイパーバイザやセキュリティモニタ
(OS等を監視するプログラム)をEL2やEL3で動かすことで同様にXenのような仮想化OSを
提供でき、ARM版WindowsをARM版macOS上で動かすことができる
64bit ARM(AARCH64)の仮想化支援機能はこの辺を参照
ttps://developer.arm.com/docs/100942/latest/hypervisor-software
ttps://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions