tinyvisor (1.8) | 2016-11-13 20:03 |
TynyVisorは、PCに内蔵されているCPU、メモリ、I/OをVMに割り当て、OSから使用可能にします。
CPU、メモリ、I/Oを割り当てる単位は次の通りです。
要素 | 割り当て単位 | 備考 |
CPU | 論理プロセッサ単位(Hyper-ThreadingのThread単位) | BSPは必ずVM0に割り当てられる。Intel VT-xまたはAMD SVMを使用して仮想化している。 |
メモリ | ページ単位(4KB単位) | Intel VT-xのEPTまたはShadow Pagingを使用して仮想化している。 |
I/O | PCIe Root Port単位(PCIeスロット単位) | MSIまたはMSI-Xに対応していないI/OデバイスをVM0以外のVMに割り当てると、割り込みを使えない。Intel VT-d(IOMMU)を使用して仮想化している。AMD IOMMUには未対応。 |
CPU、メモリ、I/Oの割り当ての概念図を次に示します。
VM0のOSからは、水色のCPU、メモリ、I/Oを使用することができます。 VM1のOSからは、橙色のCPU、メモリ、I/Oを使用することができます。
LegacyI/Oは、OSの動作に必要不可欠なI/Oデバイスですが、PCに一組しかありません。そのため、二組あるかのようにVMMがエミュレートして、OSから使用可能にします。
VM0では、VMM起動前から動作していたHost BIOSまたはUEFIがそのまま動作し、OSをロードします。
VM1では、Host BIOSを動作させることができないため、代わりにGuest BIOSを動作させてOSをロードします。 Guest BIOSがUEFIに未対応のため、BIOS環境のOSのみVM1で起動可能です。
BIOS環境では、VM0のOSを再起動すると、VM0のOSだけが再起動します VM1のOSを再起動すると、VM1のOSだけが再起動します。
UEFI環境では、VM0のOSを再起動して、VM1のOSをシャットダウンすると、マシン全体が再起動します。 VM1のOSを再起動すると、VM1のOSだけが再起動します。
VM0のOSと、VM1のOSの両方を停止すると、PCの電源がOFFになります。