it-swarm.com.de

Können Sie einen Maschinenemulator (Bochs) in einer virtuellen Maschine ausführen?

Ist es beispielsweise möglich, VirtualBox unter Windows 7 mit einem Linux-Gast auszuführen und auf diesem Linux-Computer Bochs auszuführen?

Der Grund dafür ist, dass ich daran interessiert bin, mit der Betriebssystementwicklung zu beginnen, und ich habe festgestellt, dass alle Tutorials und Dinge auf * nix-Computern viel einfacher zu befolgen sind. Ich habe versucht, Cygwin zu verwenden, aber ich denke, es fügt eine weitere Komplexitätsebene hinzu und macht die Dinge nicht unbedingt einfacher.

82
Javier

Lange Rede kurzer Sinn: ja .

Jede virtuelle Maschine ist technisch "unabhängig" voneinander, und mit VirtualBox können Sie dies problemlos tun, da sie sowohl auf Windows- als auch auf Linux-Host-Betriebssystemen (emuliert oder nicht) unterstützt wird. Sie könnten einfach Windows als "Basis-Host" -Betriebssystem verwenden, Linux in einer VM ausführen und dann das Betriebssystem dass als neuen Basis-Host für Bochs verwenden.

Beachten Sie, dass Ihre einzige Einschränkung hier Ihre Hardware ist. Abhängig von den Anforderungen Ihrer Entwicklung benötigen Sie möglicherweise mehr Arbeitsspeicher oder ein Upgrade auf ein 64-Bit-Basis-Host-Betriebssystem. Das heißt, wenn Sie Ihre Linux-Distributionen mit Bedacht auswählen, sollte jedes moderne System in der Lage sein, beliebige Schachtelungen wie diese durchzuführen.

Sie werden eine verbesserte Leistung feststellen, wenn Sie x86-Virtualisierung - Unterstützung auf Ihrem Computer aktivieren (sofern dies von Ihrem Motherboard und Ihrer CPU unterstützt wird) und AFAIK diese Funktion an mehrere geschachtelte virtuelle Maschinen "weiterleiten" kann. Wenn n virtuelle Maschinen ineinander verschachtelt sind, wird dies unterstützt, solange der 1st zum n-1th Das verschachtelte Gastbetriebssystem unterstützt die x86-Virtualisierung (der Basis-Host muss dies auch unterstützen). Beachten Sie, dass es noch einige Sicherheitsprobleme gibt, die Sie beachten müssen, wenn Sie dies tun, treffen Sie die entsprechenden Vorsichtsmaßnahmen.

63
Breakthrough

Manchmal verwende ich eine virtuelle VMware vSphere-Infrastruktur in VMware Workstation sowie virtuelle Cisco-Router und -Switches und die EMC Celerra Virtualized Storage Appliance für Selbstlern- und Testzwecke.

Ich nenne es "Inception Computing", und es kann ziemlich verwirrend werden. Es ist jedoch etwas billiger als die Verwendung der realen Ausrüstung.

40
paradroid

Für alle, die diese Frage lesen, die akzeptierte Antwort sehen und der Meinung sind, dass dies auch für VirtualBox gilt, lesen Sie bitte Kommentar von @superbatfish zur ursprünglichen Frage. Er macht einen guten Punkt über den Unterschied zwischen Virtualisierung und Emulation.

Insbesondere ist "Hardware-unterstützte VM" im Gastbetriebssystem der "obersten Ebene" nicht verfügbar (dh, zum Zeitpunkt dieses Schreibens stellt VirtualBox keine Hardware VM in Gastbetriebssystemen bereit ). Mit VirtualBox können Sie also nur 32-Bit-Betriebssysteme für "verschachtelte Gäste" erstellen, selbst wenn der Gast der obersten Ebene 64-Bit-Betriebssysteme ist und Ihr "echter" Host über eine Hardware-VM verfügt.

Vielleicht ist es kein Showstopper für Sie, aber es lohnt sich, darauf hinzuweisen. Ich brauchte dies, um Vagrant auf einem Ubuntu-Gast in Windows zum Testen von Kochbüchern auszuführen.

31
Toby J

Linux-KVM bietet Unterstützung für verschachtelte virtuelle Maschinen. Ich habe auf dem Kanal KVM IRC gefragt und folgende Informationen erhalten (aber nimm mein Wort nicht, versuche es selbst):

  • AMD-CPUs sollten gut funktionieren, Gäste mit Xen und Hyper-V sind dafür bekannt, dass sie funktionieren.
  • Intel-CPUs benötigen den neuesten KVM Git-Quellcode, und nur Gäste mit KVM funktionieren

Ich habe das selbst noch nicht ausprobiert. Eine Suche nach "KVM verschachtelt" sollte Ihnen genügend Informationen liefern, um es selbst zu versuchen.

BEARBEITEN: KVM wird nur auf einem Linux-Host ausgeführt. Ich habe keine zuverlässigen Informationen zur Windows-Virtualisierungssoftware bezüglich der ordnungsgemäßen Unterstützung von VM erhalten. Mit "richtig" meine ich, dass der Hypervisor Virtualisierungserweiterungen für den Gast verfügbar macht. Sie können verschachtelte VM immer mit einem reinen Software-Hypervisor ausführen (z. B. dynamische Übersetzung), dies ist jedoch merklich langsamer.

EDIT: Bochs, das Sie erwähnt haben, ist ein reiner Software-Hypervisor. Dies bedeutet, dass es immer langsam ist, und es ist unerheblich, ob der Hypervisor auf dem Host Virtualisierungserweiterungen für den Gast verfügbar macht (wie es KVM tut). Die meisten anderen Virtualisierungsprogramme (KVM, VirtualBox, VMWare) können diese Erweiterungen jedoch verwenden und erzielen eine bessere Leistung, wenn sie verfügbar sind.

11
Ambroz Bizjak

Es ist möglich, aber nicht sehr machbar, insbesondere für die Entwicklung. Sie sollten wahrscheinlich Linux als natives Betriebssystem verwenden oder eine zweite Box zum Hosten der VMs erwerben.

3
peelman

Eine ausführliche Beschreibung dieses Vorgangs finden Sie auf dieser Seite: https://wiki.openstack.org/wiki/XenServer/VirtualBox

Bei VirtualBox-Netzwerkkarten müssen Sie die Option "Alle im Promiscuous-Modus zulassen" und verschiedene andere Optionen festlegen. Sie können das Betriebssystem in vm, z. Xenserver in VM, z. VirtualBox.

1
42n4

Ja , Sie können eine virtuelle Maschine in einer virtuellen Maschine ausführen. Was ich getan habe, war, einen Windows 7 Ultimate x64-Computer zu bekommen, dasselbe Betriebssystem auf der virtuellen Maschine auszuführen und dann eine 32-Bit-Version (es konnte 64-Bit auf der 3. Schicht nicht verarbeiten) auf der 3. Schicht auszuführen. Es war ziemlich nachlässig, aber ich habe es geschafft, mit dem Internet Explorer die New York Times zu erreichen. Dies kann schwierig sein, wenn Sie keinen leistungsstarken Computer haben, aber Linux und Bochs verwenden, die leichte Betriebssysteme sind, daher sollte dies möglich sein.

1