古いシステムも動かせます
なぜ必要か
古いシステムは今も現役です。会計ソフト、機械の制御プログラム、特定の Windows バージョンでしか動かないツールなど。その多くは何年も前に VMware へ移されました。ゲストに手を加えずに keelOS で動かせるよう、keelOS は ESXi や QEMU/KVM が提供するのと同じ仮想ハードウェアを用意しています。
追加したもの
- レガシー BIOS のゲスト向けファームウェアとして、QEMU/KVM と同じく SeaBIOS:
"bootrom": "bios"。 - ハードウェアのマニュアルから書き起こした 3 つの新しいデバイス:PIIX3 IDE コントローラー(ディスクと ATAPI CD)、AMD PCnet NIC、タブレット付きの UHCI USB コントローラー(リモートコンソールでポインターがマウスに追従します)。
- VGA と VBE の表示。BIOS のテキスト画面から、インストーラーの 16 色モード、高解像度まで。
- 新しいシステムでは使われない動作の修正:カウント 0 の PIT、8259 のスプリアス割り込み、読み取り専用の PCI レジスタ、VGA の書き込みモード、タスクスイッチなど。
- APICv は標準で有効です。XP のデバイスのインストール段階は、APICv なしでは 9 分半以上、ありでは 2 分半かかりました。KVM では 2 分です。
3 つのデバイスはいずれもサスペンドと再開に対応しています。テンプレートで適切なハードウェアを設定できます:keel vm create --template windowsxp。
テストした内容
- Windows XP Professional SP2:デスクトップ、ネットワーク、再起動、シャットダウン、サスペンドと再開、RDP。
- Windows Server 2003 R2(日本語版):デスクトップ、ネットワーク、再起動、シャットダウン。
- Windows 7 SP1 x64:ポインターがマウスに追従し、不明なデバイスはなし。
- BIOS での Windows 10、Haiku、BIOS での FreeBSD と Debian も起動します。
- インストールの途中、ファイルのコピー中の XP:ホストが再起動し、VM は 35.8 秒一時停止して、そのままコピーを続けました。
制限事項
- サポートする最も古いシステムは Windows XP です。DOS、Windows 3.x、Windows 9x は対象外です。フロッピー、サウンド、高速な VGA が必要で、DOSBox や 86Box などのエミュレーターのほうが適しています。
- BIOS のゲストには起動順の設定がありません。SeaBIOS は CD より先にハードディスクから起動を試みます。
- ESXi の LSI Logic SCSI、PVSCSI、VMXNET3、E1000e はまだエミュレートしていません。次は ESXi から VM をインポートするツールです。