Emulator Comparison

From OSDev Wiki
Jump to navigation Jump to search

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.

This page is under construction! This page or section is a work in progress and may thus be incomplete. Its content may be changed in the near future.


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.