Können wir sagen, dass QEMU eine virtuelle Maschine ist?

Können wir sagen, dass QEMU eine virtuelle Maschine ist?

Was ich als virtuelle Maschine betrachte, ist, dass sie einfach das Laden eines anderen Betriebssystems in seiner eigenen Sandbox-Umgebung ermöglicht.
Sie ist auf dieselbe Hardwarearchitektur wie das Host-Betriebssystem beschränkt.
Mit Intel VT (und ähnlichen) kann man die 64-Bit-Version eines Betriebssystems auf einem 32-Bit-Host ausführen.

Beispiele hierfür sind VirtualBox und VMWare.

Aber QEMU ist ein Hardware-Emulator: Es emuliert einen ganzen Computer und (kann) eine ganze Architektur emulieren, wobei jedes einzelne Teil emuliert wird.
Dies ist nicht auf dieselbe Architektur beschränkt.
Wir können die ARM-Version von Linux auf QEMU ausführen, das auf einer x64-CPU läuft.

Das Android SDK verwendet QEMU, um Tablets und Telefone zu Testzwecken zu emulieren.

Können wir unter diesen Gesichtspunkten sagen, dass QEMU eine virtuelle Maschine ist?


Dies löste im Kommentar zur Frage eine große Diskussion aus.So verhindern Sie, dass Netzwerkadministratoren auf USB-Laufwerke zugreifen" auf einer anderen Website, in der es einen „Streit“ darüber gab, dass ein Hardware-Emulator immer noch eine virtuelle Maschine sei.

Antwort1

Eine virtuelle Maschine istnichtDies setzt spezielle Hardware-Unterstützung für eine effiziente Virtualisierung und die Verwendung desselben Befehlssatzes voraus.

VMWare übersetzt Code, um den 8086-Realmodus auf einem 64-Bit-Host auszuführen. PC Emulator auf PowerPC war eine Softwareübersetzung in einen anderen Befehlssatz. Java Virtual Machine ist eine in Software implementierte Abstraktion, anscheinend eine CPU und Architektur. MAMEist eine Reihe virtueller Maschinen, bei denen es sich um klassische Arcade-Konsolen handelt, die verschiedene CPUs sowie spezielle Grafik- und Soundchips und andere neuartige Chipsatzfunktionen enthalten.

Ein Emulator ist im wissenschaftlichen Sinne eine virtuelle Maschine, daher sind die beiden Begriffe synonym. Im allgemeinen informellen Sprachgebrauch bedeutet dies, dass das emulierte Objekt „eine Maschine“ ist, ein vollständiges Gerät, das auch als Hardwareinstanz existieren kann. Aber das ist irgendwie schwammig.

verwandte Informationen