web-dev-qa-db-ja.com

仮想マシン内でマシンエミュレータ(Bochs)を実行できますか?

たとえば、LinuxゲストでWindows 7上でVirtualBoxを実行し、そのLinuxマシン内でBochsを実行することは可能ですか?

その理由は、私はOSの開発に着手することに興味を持っており、* nixマシンではすべてのチュートリアルや内容がずっと簡単に従うことがわかったからです。 Cygwinを使用してみましたが、複雑さが増しています。必ずしも作業が簡単になるわけではありません。

82
Javier

短い話:はい

各仮想マシンは技術的には互いに独立しており、 VirtualBox を使用すると、WindowsとLinuxホストの両方のオペレーティングシステム(エミュレートされているかどうかにかかわらず)でサポートされるため、簡単に実行できます。あなたは単にあなたの "ベースホスト" OSとしてWindowsを使い、VMでLinuxを走らせ、そしてBochsのための新しいベースホストとしてthatオペレーティングシステムを使うことができます。

ここでの唯一の制限はあなたのハードウェアであることに注意してください。開発の要件に応じて、より多くのメモリ、または64ビットの "ベースホスト"オペレーティングシステムへのアップグレードが必要になる場合があります。そうは言っても、Linuxディストリビューションを賢く選択すれば、現代のシステムであればこのように任意のネストが可能になるはずです。

お使いのコンピュータで x86仮想化 supportを有効にすると(パフォーマンスが向上します)(マザーボードとCPUがサポートしている場合)、残念ながら、この機能を複数のネスト仮想マシンにパススルーすることができます。 n仮想マシンが互いに入れ子になっている場合、これは1がサポートされている限りサポートされます。st n-1番目 ネストされたゲストOSはx86仮想化をサポートしています(ベースホストもサポートしている必要があります)。これを行う場合には注意すべき いくつかのセキュリティ問題 がまだあることに注意してください。適切な予防措置を取ってください。

63
Breakthrough

自己学習やテストの目的で、VMware Workstation内で仮想のCiscoルーターやスイッチ、EMC Celerra仮想化ストレージアプライアンスと共にVMware vSphere仮想インフラストラクチャ全体を実行することがあります。

私はそれを「インセプション・コンピューティング」と呼んでいますが、それはかなり混乱を招く可能性があります。しかしそれは本物のギアを使用するよりもいくらか安いです。

40
paradroid

この質問を読む人には、受け入れられた答えを見て、これがVirtualBoxにも当てはまると思います、元の質問について @superbatfishからのコメント を参照してください。彼は仮想化とエミュレーションの違いについて良い点を挙げています。

具体的には、「ハードウェア支援VM」は「トップレベル」ゲストOSでは使用できません(つまり、これを書いている時点では VirtualBoxはゲストOSにハードウェアVMを提供していません ) 。 VirtualBoxでは、最上位のゲストが64ビットで、実際のホストにハードウェアVMがある場合でも、32ビットの「ネストされたゲスト」OSしか作成できません。

あなたにとっては不愉快ではないかもしれませんが、注目に値します。 Chef Cookbookテストのために、Windows内のUbuntuゲスト上でVagrantを実行するためにこれが必要でした。

31
Toby J

Linux-KVMは入れ子になった仮想マシンをある程度サポートしています。私はKVM IRCチャンネルを尋ねたところ、次のような情報を得ました(でも私のWordは使わないでください、自分で試してみてください)。

  • AMDのCPUはうまく動くはずです、XenとHyper-Vのゲストは動くことが知られています、
  • Intel CPUは最新のKVM Gitソースコードを必要とし、KVM workを持つゲストのみ

私はまだ自分で試していません。 "KVM nested"を検索すると、自分で試すのに十分な情報が得られます。

編集:KVMはLinuxホスト上でのみ動作します。適切にネストされたVMサポートに関して、Windows仮想化ソフトウェアに関する信頼できる情報は得られていません。 「適切」とは、ハイパーバイザーが仮想化拡張機能をゲストに公開することを意味します。純粋なソフトウェアハイパーバイザー(動的翻訳など)を使用していつでも入れ子になったVMを実行できますが、それは著しく遅くなります。

編集:あなたが言及したBochsはソフトウェアだけのハイパーバイザーです。つまり、ホスト上のハイパーバイザーがゲストに仮想化拡張機能を公開しても(KVMのように)、それは常に遅くなります。ただし、他のほとんどの仮想化ソフトウェア(KVM、VirtualBox、VMWare)はこれらの拡張機能を利用することができ、利用可能であればはるかに優れたパフォーマンスを発揮します。

11
Ambroz Bizjak

それは可能ですが、特に開発のためには、あまり実現可能ではありません。あなたはおそらくあなたのネイティブOSとしてLinuxを実行するか、VMをホストするための2番目のボックスを入手することを検討すべきです。

3
peelman

このプロセスの詳細な説明はこのページにあります: https://wiki.openstack.org/wiki/XenServer/VirtualBox

VirtualBoxマシンのネットワークカードでは、すべてを無差別モードやその他のいくつかのオプションで許可するように設定する必要があります。 VM内のXenserver VirtualBox。

1
42n4

はい、仮想マシンを仮想マシンで実行できます。私がしたのは、Windows 7 Ultimate x 64コンピュータを入手し、仮想マシン上で同じOSを実行してから、第3層で32ビットバージョン(第3層で64ビットを処理できない)を実行することでした。それはかなり遅れていました、しかし私はそれを使ってInternet Explorerでニューヨーク時間にたどり着くことができました。あなたが強力なコンピュータを持っていないなら、これは難しいかもしれません、しかし、あなたが軽量のオペレーティングシステムであるLinuxとBochsを走らせているので、それは可能であるべきです。

1