Emulator Comparison: Difference between revisions
[unchecked revision] | [unchecked revision] |
mNo edit summary |
|||
(17 intermediate revisions by 9 users not shown) | |||
Line 14: | Line 14: | ||
|- |
|- |
||
! [[Bochs]] |
! [[Bochs]] |
||
| Free |
| Free / LGPL |
||
| Full emulation (slow) |
| Full emulation (slow) |
||
| {{Yes}}, built-in |
| {{Yes}}, built-in |
||
Line 20: | Line 20: | ||
|- |
|- |
||
! [[QEMU]] |
! [[QEMU]] |
||
| Free |
| Free / GPL |
||
| Emulation/dynamic translation |
| Emulation/dynamic translation |
||
| {{Yes}}, via [[GDB]] stub |
| {{Yes}}, via [[GDB]] stub |
||
| Command line |
| Command line (optional GUI) |
||
|- |
|- |
||
! [[ |
! [[VirtualBox]] |
||
| Free |
| Free / mixed |
||
| Virtualization |
| Virtualization |
||
| {{ |
| {{Yes}}, built-in |
||
| GUI, command line (optional) |
| GUI, command line (optional) |
||
|- |
|- |
||
! [[Microsoft Virtual PC]] |
! [[Microsoft Virtual PC]] |
||
| Free |
| Free |
||
| Virtualization (on PC), Emulation (on Mac) |
| Virtualization (on PC), Emulation (on Mac) |
||
| {{No}} |
| {{No}} |
||
Line 38: | Line 38: | ||
|- |
|- |
||
! [[VMWare Virtual Server 2]] |
! [[VMWare Virtual Server 2]] |
||
| Free |
| Free |
||
| Virtualization |
| Virtualization |
||
| {{Yes}}, via [[GDB]] stub |
| {{Yes}}, via [[GDB]] stub |
||
| Web interface, non-free Windows client (VI3) |
| Web interface, non-free Windows client (VI3) |
||
|- |
|||
! [[Microsoft Hyper-V]] |
|||
| Free |
|||
| Virtualization, Emulation on legacy devices |
|||
⚫ | |||
| GUI, command line (PowerShell) |
|||
|} |
|} |
||
Overall, |
Overall, VirtualBox offers the richest set of features, along with very fast performance. Bochs is by far the slowest, but that is because of its full emulation, which gives it the highest accuracy. |
||
None of them are necessarily "better" than the others. This comparison is just to point out their differences. It can't hurt to use more than one emulator (or several), in order to test your OS on a variety of platforms without using real hardware. |
None of them are necessarily "better" than the others. This comparison is just to point out their differences. It can't hurt to use more than one emulator (or several), in order to test your OS on a variety of platforms without using real hardware. |
||
Line 70: | Line 76: | ||
| PowerPC and others (by source code) |
| PowerPC and others (by source code) |
||
|- |
|- |
||
! [[ |
! [[VirtualBox]] |
||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
Line 81: | Line 87: | ||
| {{Maybe}} <small>(yes for PowerPCs, no for Intel Macs)</small> |
| {{Maybe}} <small>(yes for PowerPCs, no for Intel Macs)</small> |
||
| <small>* requires AMD-VT or Intel VM support</small> |
| <small>* requires AMD-VT or Intel VM support</small> |
||
|- |
|||
! [[VMWare Virtual Server 2]] |
|||
⚫ | |||
⚫ | |||
⚫ | |||
| {{No}} |
|||
|- |
|||
! [[Microsoft Hyper-V]] |
|||
| {{Yes}} |
|||
| {{No}} |
|||
| {{No}} |
|||
| {{No}} |
|||
|} |
|} |
||
Line 101: | Line 119: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}}: ARM, SPARC, MIPS, MIPS64, m68k |
| {{Yes}}: ARM, SPARC, MIPS, MIPS64, m68k, PowerPC |
||
|- |
|- |
||
! [[ |
! [[VirtualBox]] |
||
| {{Yes}} |
| {{Yes}} |
||
| {{Yes}} |
| {{Yes}} |
||
Line 111: | Line 129: | ||
| {{Yes}} |
| {{Yes}} |
||
| {{No}} |
| {{No}} |
||
| {{No}} |
|||
|- |
|||
! [[VMWare Virtual Server 2]] |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{No}} |
|||
|- |
|||
! [[Microsoft Hyper-V]] |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{No}} |
| {{No}} |
||
|} |
|} |
||
== Supported Hardware == |
== Supported Hardware == |
||
Line 119: | Line 146: | ||
! |
! |
||
! [[SMP]] |
! [[SMP]] |
||
! Graphics support |
|||
! VBE |
|||
! Other Graphics |
|||
! Sound |
! Sound |
||
! Network |
! Network |
||
Line 127: | Line 153: | ||
! [[Bochs]] |
! [[Bochs]] |
||
| {{Yes}} (up to 8) |
| {{Yes}} (up to 8) |
||
| [[Getting_VBE_Mode_Info|VBE]], [[VGA Hardware|VGA]] (partial), [[BGA]], Cirrus Logic GD54xx |
|||
⚫ | |||
| Cirrus SVGA |
|||
| SB-16 |
| SB-16 |
||
| NE2000 |
| NE2000 |
||
| {{ |
| {{Yes}} |
||
|- |
|- |
||
! [[QEMU]] |
! [[QEMU]] |
||
| {{Yes}} |
| {{Yes}} |
||
| [[Getting_VBE_Mode_Info|VBE]], [[VGA Hardware|VGA]] (partial), Cirrus Logic GD54xx, (BGA?) |
|||
⚫ | |||
| Cirrus SVGA |
|||
| SB-16, ES1370 |
| SB-16, ES1370 |
||
| RealTek 8139C |
| RealTek 8139C |
||
| {{Yes}} |
| {{Yes}} |
||
|- |
|- |
||
! [[ |
! [[VirtualBox]] |
||
⚫ | |||
| {{Yes}} |
| {{Yes}} |
||
| OpenGL virtualization |
| [[Getting_VBE_Mode_Info|VBE]], OpenGL virtualization, [[VGA Hardware|VGA]] (decent), BGA, VBoxVideo |
||
| SB-16 and AC'97 |
| SB-16 and AC'97 |
||
| Several different NICs |
| Several different NICs |
||
Line 151: | Line 174: | ||
! [[Microsoft Virtual PC]] |
! [[Microsoft Virtual PC]] |
||
| {{No}} <small>?</small> |
| {{No}} <small>?</small> |
||
| [[Getting_VBE_Mode_Info|VBE]], [[VGA Hardware|VGA]] (very good), [[User:Combuster/Trio64 Hardware|S3 Trio64V2]] |
|||
⚫ | |||
| S3 Trio PCI |
|||
| SB-16 |
| SB-16 |
||
| DEC 21140 |
| DEC 21140 |
||
| {{Yes}} |
| {{Yes}} |
||
|- |
|||
! [[VMWare Virtual Server 2]] |
|||
| {{Yes}} |
|||
| [[Getting_VBE_Mode_Info|VBE]], VMWare Guest Tools video driver |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
|- |
|||
! [[Microsoft Hyper-V]] |
|||
| {{Yes}} |
|||
| [[Getting_VBE_Mode_Info|VBE]], ??? |
|||
| {{Yes}} |
|||
| {{Yes}} |
|||
| {{No}} |
|||
|} |
|} |
||
Line 177: | Line 213: | ||
| {{Yes}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} |
| {{Yes}} || {{No}} || {{Yes}} || {{No}} || {{No}} || {{Yes}} |
||
|- |
|- |
||
! [[ |
! [[VirtualBox]] |
||
| {{Yes}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} |
| {{Yes}} || {{No}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} |
||
|- |
|- |
Latest revision as of 02:50, 8 September 2020
This is a comparison of the various emulators that you can use to test your operating system without having to reboot your computer or risk your hardware.
General
Cost/License | Method | Debugging | Configuration | |
---|---|---|---|---|
Bochs | Free / LGPL | Full emulation (slow) | Yes, built-in | Command line, script file, interactive menus |
QEMU | Free / GPL | Emulation/dynamic translation | Yes, via GDB stub | Command line (optional GUI) |
VirtualBox | Free / mixed | Virtualization | Yes, built-in | GUI, command line (optional) |
Microsoft Virtual PC | Free | Virtualization (on PC), Emulation (on Mac) | No | GUI, command line (optional) |
VMWare Virtual Server 2 | Free | Virtualization | Yes, via GDB stub | Web interface, non-free Windows client (VI3) |
Microsoft Hyper-V | Free | Virtualization, Emulation on legacy devices | Yes, via WinDBG | GUI, command line (PowerShell) |
Overall, VirtualBox offers the richest set of features, along with very fast performance. Bochs is by far the slowest, but that is because of its full emulation, which gives it the highest accuracy.
None of them are necessarily "better" than the others. This comparison is just to point out their differences. It can't hurt to use more than one emulator (or several), in order to test your OS on a variety of platforms without using real hardware.
Supported Host Platforms
Windows | Linux (x86) | Mac OS X | Others | |
---|---|---|---|---|
Bochs | Yes (binaries) | Yes (binaries) | Yes (must compile source code) | Others (by source code) |
QEMU | Yes | Yes | Yes | PowerPC and others (by source code) |
VirtualBox | Yes | Yes | Yes | Solaris |
Microsoft Virtual PC | Yes* | No | Maybe (yes for PowerPCs, no for Intel Macs) | * requires AMD-VT or Intel VM support |
VMWare Virtual Server 2 | Yes | Yes | No | No |
Microsoft Hyper-V | Yes | No | No | No |
Supported Guest Systems
x86-32 | x86-64 | Others | |
---|---|---|---|
Bochs | Yes | Yes | No |
QEMU | Yes | Yes | Yes: ARM, SPARC, MIPS, MIPS64, m68k, PowerPC |
VirtualBox | Yes | Yes | No |
Microsoft Virtual PC | Yes | No | No |
VMWare Virtual Server 2 | Yes | Yes | No |
Microsoft Hyper-V | Yes | Yes | No |
Supported Hardware
SMP | Graphics support | Sound | Network | USB | |
---|---|---|---|---|---|
Bochs | Yes (up to 8) | VBE, VGA (partial), BGA, Cirrus Logic GD54xx | SB-16 | NE2000 | Yes |
QEMU | Yes | VBE, VGA (partial), Cirrus Logic GD54xx, (BGA?) | SB-16, ES1370 | RealTek 8139C | Yes |
VirtualBox | Yes | VBE, OpenGL virtualization, VGA (decent), BGA, VBoxVideo | SB-16 and AC'97 | Several different NICs | Yes |
Microsoft Virtual PC | No ? | VBE, VGA (very good), S3 Trio64V2 | SB-16 | DEC 21140 | Yes |
VMWare Virtual Server 2 | Yes | VBE, VMWare Guest Tools video driver | Yes | Yes | Yes |
Microsoft Hyper-V | Yes | VBE, ??? | Yes | Yes | No |
Supported Disk Image Formats
This chart shows the file formats for an emulated hard disk. The emulators usually support only a flat image for a floppy and an ISO image file for CD-ROMs.
Flat | Concatenated | Sparse/Stackable | Journaling | Growing | VMWare format | |
---|---|---|---|---|---|---|
Bochs | Yes | Yes | Yes | Yes | Yes | Yes |
QEMU | Yes | No | Yes | No | No | Yes |
VirtualBox | Yes | No | No | No | Yes | Yes |
Microsoft Virtual PC | Yes | No | Yes | No | Yes | No |
- A flat image offers no special features and takes up the full amount of disk space that it emulates.
- The concatenated format allows several separate files to emulate one combined hard disk; useful for partitions.
- A sparse image does not store blank space, so you could emulate a 1 GB hard disk, but it would only take up 200 MB of space if it had 800 MB free space.
- Stackable images allow a "base" read-only image. Any changes are stored in a new image that is layered on top. Useful if you want to remove any changes to a "good" disk.
- Journaling images keep track of changes made by each session, and they can be undone/redone in order.
- Growing images are similar to sparse images. They start small when the emulated disk is empty and expand as more data is written.
- Apparently, the VMWare format for disks is popular because several emulators support it.