仮想マシンの中でマシンエミュレータ(Bochs)を動かすことはできますか?
例えば、Windows7上でLinuxのゲストでVirtualBoxを動かし、そのLinuxマシンの中でBochsを動かすことは可能でしょうか?
理由は、OS開発を始めてみたいと思っているのと、チュートリアルなどは全てLinuxマシンの方が簡単だと思ったからです。Cygwinも使ってみたんだけど、複雑さが増すだけで、必ずしも楽になるとは限らないと思うんだよね。
例えば、Windows7上でLinuxのゲストでVirtualBoxを動かし、そのLinuxマシンの中でBochsを動かすことは可能でしょうか?
理由は、OS開発を始めてみたいと思っているのと、チュートリアルなどは全てLinuxマシンの方が簡単だと思ったからです。Cygwinも使ってみたんだけど、複雑さが増すだけで、必ずしも楽になるとは限らないと思うんだよね。
長い話を短くすると はい。
各仮想マシンは技術的には互いに「独立」していますが、 VirtualBox では、WindowsとLinuxの両方のホストOS(エミュレートされているかどうかに関わらず)でサポートされているので、簡単にこれができます。Windowsを “ベースホスト "OSとして使用し、LinuxをVMで実行し、そのOSをBochsの新しいベースホストとして使用することができます。
ここでの唯一の制限はハードウェアであることに注意してください。開発の要件によっては、より多くのメモリが必要になるかもしれませんし、64ビットの "ベースホスト "オペレーティングシステムへのアップグレードが必要になるかもしれません。つまり、Linuxディストロを賢く選べば、最新のシステムであれば、このような任意のネストが可能になるはずです。
コンピュータで x86仮想化 サポートを有効にすれば(マザーボードと CPU がサポートしていれば)、パフォーマンスが向上します。n
の仮想マシンが互いにネストしている場合、ネストした1
番目のゲストOSのn-1
stから0x6&番目のゲストOSがx86仮想化をサポートしている限りサポートされています(ベースホストもサポートしている必要があります)。これを行う場合には いくつかのセキュリティ問題 があることに注意してください。
この質問を読んで、受け入れられた回答を見て、これがVirtualBoxにも適用されると考えている人は、元の質問の コメント from @superbatfish を参照してください。彼は仮想化とエミュレーションの違いについて良い指摘をしています。
具体的には、「最上位」のゲストOSでは「ハードウェアアシストVM」が利用できなくなる(つまり、この記事を書いている時点では、 VirtualBoxはゲストOSではハードウェアVMを提供していない )。VirtualBoxでは、最上位のゲストが64ビットで、「実際の」ホストがハードウェアVMを持っていても、32ビットの「入れ子になった」ゲストOSしか作成できないことを意味します。
あなたにとっては目立たないかもしれませんが、注目に値します。私はChefのクックブックのテストのために、Windows内のUbuntuゲストでVagrantを実行するためにこれが必要でした。
はい 、あなたのコンピュータがそれを処理するのに十分なパワーを持っていれば可能です。
私のマシン(i7 4770S, 16GB RAM)では、なんとかVM-ception-nessレベル4.5を得ることができました(最後のものは半分の時間でクラッシュします)。
VMware Player 12を使ったのは、VirtualBoxがVM-xをエミュレートするのを嫌っていて、かなり遅かったからです。今、XPでW2Kを動作させようとしているのですが、VMwareがインストールできず、VirtualBoxがBSODを出すので、QEMUを使ってみています。
このスクリーンショット(今まで見た中で最も美しいスクリーンショットの一つ)を見てください: