crosvm vs QEMU
crosvm
chromium.googlesource.comQEMU
qemu.orgSide by side
| Figure | crosvm | QEMU |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | Yes | Yes |
| Windows | Yes | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Android | Yes | — |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 2 |
| Spec score · Hypervisor Software | 9.0 (#1) | 8.5 (#7) |
| Documentation depth | The project book covers building, running, system requirements, devices, testing, tracing, integration, architecture, hypervisors and contribution. | Official documentation includes user, system-emulation, device, security, interoperability and developer sections, with additional wiki material. |
| Hypervisors | The project lists KVM, Gunyah, GenieZone, and Halla for Linux or Android, plus WHPX and HAXM for Windows. | QEMU can work with KVM, Xen and Hypervisor.Framework to let guests run directly on the host CPU. |
| License | crosvm is released under the BSD-3-Clause license. | QEMU and its manual are released under GNU General Public License version 2, although some components have specific licenses. |
| Public API | The crosvm_control Rust library offers programmatic control instead of the command-line interface. | QEMU Machine Protocol is a JSON protocol for applications to control QEMU at machine level. |
| Security model | Virtual devices can run in separate processes jailed with Minijail. | QEMU defines guest isolation requirements and recommends least privilege for processes and resources. |
| What it does | crosvm is a hosted, type-2 virtual machine monitor that runs guest operating systems through a host hypervisor. | QEMU is an open-source machine emulator and virtualizer. |
Plans
In their own words
crosvm
crosvm is a free, open-source virtual machine monitor written in Rust for running Linux and Android guest systems in sandboxed environments. Developed for ChromeOS, it is also used in TerminalApp on Android, Cuttlefish, and Windows. Each virtual device runs in its own Minijail sandbox by default, with syscall policies, namespaces, seccomp filters, and dropped capabilities contributing to isolation. Supported CPU architectures are x86_64, aarch64, and riscv64. The project lists KVM, Gunyah, GenieZone, and Halla for Linux or Android, and WHPX and HAXM for Windows. Virtio devices cover networking, storage, GPU, audio, filesystems, console, RNG, ballooning, vsock, TPM, and video. Block storage supports raw, qcow2, zstd, and Android sparse formats. Linux hosts need kernel 4.14 or newer with KVM support; some devices have additional host requirements. The project documents obtaining crosvm from its source repository and building it with Cargo. SCSI, video, shared host directories via virtio-pmem, and snapshotting are marked experimental or highly experimental.
QEMU
QEMU is a free, open-source machine emulator and virtualizer. System emulation models an entire machine, including its CPU, memory and devices, so it can run a guest operating system. User-mode emulation runs processes built for one CPU architecture on another. The package also includes qemu-img, a command-line utility for creating, converting and modifying disk images. QEMU can work with KVM, Xen and Hypervisor.Framework so guests can run directly on the host CPU. Supported build platforms include Linux, macOS, FreeBSD, NetBSD, OpenBSD and Windows. Windows support is limited to 64-bit, while macOS requires the newest version currently available; support for the prior version is eventually dropped. For complex networking and storage configurations, the project recommends management tools such as virt-manager. Its security guidance distinguishes virtualization with an accelerator and listed machine type from TCG non-virtualization use, which does not provide guest-isolation or security guarantees. QEMU is released under GNU GPL version 2, with some components under specific licenses.