QEMU
A generic and open source machine emulator and virtualiser.
QEMU emulates entire computers, including processors of different architectures, and is widely used to run software built for one CPU on another (running x86 binaries on ARM, ARM firmware on x86 development hosts, and so on). When paired with the KVM kernel module on Linux, it also serves as a high- performance virtualiser for guests of the same architecture as the host, with near-native performance for most workloads.
QEMU is the hypervisor underneath libvirt, virt-manager, GNOME Boxes, Proxmox VE, OpenStack, and most cloud providers' Linux instances. The configuration surface is huge (hundreds of command-line flags) but the standard usage through libvirt or virt-manager hides most of that complexity behind a graphical front-end. The same QEMU codebase emulates everything from 1980s home computers to modern x86_64 servers.
Fabrice Bellard, who also wrote FFmpeg and Tiny C Compiler, started QEMU in 2003. The project is GPL-2.0 and is maintained by a large community team. QEMU TCG (the dynamic binary translation engine) makes architecture emulation practical for development and testing; it is what makes things like Android Emulator and Apple's Rosetta-style x86-on-ARM work.

Install
Debian/Ubuntu: sudo apt install qemu-system Fedora/RHEL: sudo dnf install qemu Arch: sudo pacman -S qemu-full macOS: brew install qemu
Authors
- Fabrice Bellard (creator)
- QEMU developers