QEMU - Machine Emulator and Virtualizer

  •        428

QEMU is a generic and open source machine emulator and virtualizer. When used as a machine emulator, QEMU can run OSes and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation, it achieves very good performance.

When used as a virtualizer, QEMU achieves near native performances by executing the guest code directly on the host CPU. QEMU supports virtualization when executing under the Xen hypervisor or using the KVM kernel module in Linux. When using KVM, QEMU can virtualize x86, server and embedded PowerPC, and S390 guests.

https://www.qemu.org/

Tags
Implementation
License
Platform

   




Related Projects

Xen - Open Source Virtualization

  •    c

The Xen hypervisor is a layer of software running directly on computer hardware replacing the operating system thereby allowing the computer hardware to run multiple guest operating systems concurrently. It suppors x86, x86-64, Itanium, Power PC, and ARM processors allow the Xen hypervisor to run on a wide variety of computing devices.

Libvirt - The virtualization API

  •    C

Libvirt is collection of software that provides a convenient way to manage virtual machines and other virtualization functionality, such as storage and network interface management. These software pieces include an API library, a daemon (libvirtd), and a command line utility (virsh). It provides a single way to manage multiple different virtualization providers/hypervisors like Xen, OpenVZ, VirualBox, Microsoft Hyper-V hypervisor, VMware.

VirtualBox - Cross-Platform Virtualization Application

  •    C

VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use. VirtualBox runs on Windows, Linux, Macintosh, and Solaris hosts and supports a large number of guest operating systems. So, for example, you can run Windows and Linux on your Mac. VirtualBox is a so-called hosted hypervisor. It requires an existing operating system to be installed. It can thus run alongside existing applications on that host.

XCP-ng - A turnkey open source virtualization platform

  •    C

XCP-ng is a virtualization platform based on Xen Source and Citrix® Hypervisor (formerly XenServer). XCP-ng stands for Xen Cloud Platform - New Generation and is a tribute to the old Open Source project XCP, which was abandoned when XenServer was open-sourced in 2013.

kernel virtual machine

  •    C

KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko. Using KVM, one can run multiple virtual machines running unmodified Linux or Windows images. Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc.


haxm - Intel® Hardware Accelerated Execution Manager (Intel® HAXM)

  •    C

HAXM is a hardware-assisted virtualization engine (hypervisor) that uses Intel Virtualization Technology to speed up IA (x86/ x86_64) emulation on a host machine running Windows or macOS. It started as an Android SDK component, but has recently transformed itself into a general accelerator for QEMU. HAXM can be built as either a kernel-mode driver for Windows or a kernel extension for macOS.

libvirt - PULL REQUESTS ARE IGNORED. Read-only mirror of https://libvirt.org/git/?p=libvirt.git

  •    C

Libvirt provides a portable, long term stable C API for managing the virtualization technologies provided by many operating systems. It includes support for QEMU, KVM, Xen, LXC, bhyve, Virtuozzo, VMware vCenter and ESX, VMware Desktop, Hyper-V, VirtualBox and the POWER Hypervisor. For some of these hypervisors, it provides a stateful management daemon which runs on the virtualization host allowing access to the API both by non-privileged local users and remote users.

pyrebox - Python scriptable Reverse Engineering Sandbox, a Virtual Machine instrumentation and inspection framework based on QEMU

  •    C

PyREBox is a Python scriptable Reverse Engineering sandbox. It is based on QEMU, and its goal is to aid reverse engineering by providing dynamic analysis and debugging capabilities from a different perspective. PyREBox allows to inspect a running QEMU VM, modify its memory or registers, and to instrument its execution, by creating simple scripts in python to automate any kind of analysis. QEMU (when working as a whole-system-emulator) emulates a complete system (CPU, memory, devices...). By using VMI techniques, it does not require to perform any modification into the guest operating system, as it transparently retrieves information from its memory at run-time. Several academic projects such as DECAF, PANDA, S2E, or AVATAR, have previously leveraged QEMU based instrumentation to overcome reverse engineering tasks. These projects allow to write plugins in C/C++, and implement several advanced features such as dynamic taint analysis, symbolic execution, or even record and replay of execution traces. With PyREBox, we aim to apply this technology focusing on keeping the design simple, and on the usability of the system for threat analysts.

Tiny and transparent hypervisor

  •    C

A hardware supported hypervisor originally built for malware analysis. Features: Linux VM introspection, minimal detectability, small (~150KB), simple, and well documented. Can be used for other purposes. Support for Intel-VT amp; Windows coming soon.

runv - Hypervisor-based Runtime for OCI

  •    Go

runV is a hypervisor-based runtime for OCI. runv by default uses qemu to start virtual machines and makes use of KVM if it is supported. Please make sure qemu is installed on the machine.

kqemu - KDE GUI for QEMU CPU Emulator

  •    Shell

A KDE (QT3) front-end for QEmu cpu emulator. QEMU is a FAST! processor emulator using dynamic translation to achieve good emulation speed. KQEMU makes it easier to launch QEmu directly or create scripts for easy launching of QEmu environments.

hyperd - Hypervisor-agnostic Docker Runtime

  •    Go

HyperContainer is a hypervisor-agnostic technology that allows you to run Docker images on plain hypervisor. HyperContainer combines the best from both worlds: VM and Container. It is fast as containers and isolated as VM. Hyper eliminates the need for Guest OS.

VMGL

  •    C

OpenGL apps running inside a VM use VMGL to obtain graphics hardware acceleration. VMGL supports VMware, Xen PV and HVM, qemu, and KVM VMs; X11-based OS such as Linux, FreeBSD and OpenSolaris; and ATI, Nvidia and Intel GPUs.

jailhouse - Linux-based partitioning hypervisor

  •    C

Jailhouse is a partitioning Hypervisor based on Linux. It is able to run bare-metal applications or (adapted) operating systems besides Linux. For this purpose, it configures CPU and device virtualization features of the hardware platform in a way that none of these domains, called "cells" here, can interfere with each other in an unacceptable way. Jailhouse is optimized for simplicity rather than feature richness. Unlike full-featured Linux-based hypervisors like KVM or Xen, Jailhouse does not support overcommitment of resources like CPUs, RAM or devices. It performs no scheduling and only virtualizes those resources in software, that are essential for a platform and cannot be partitioned in hardware.

Spice - Solution for interaction with Virtualized Desktop Devices

  •    C

The Spice project aims to provide a complete open source solution for interaction with virtualized desktop devices. Its main focus is to provide high-quality remote access to QEMU virtual machine. Seeking to help break down the barriers to virtualization adoption by overcoming traditional desktop virtualization challenges, emphasizing user experience. For this purpose, Red Hat introduced the SPICE remote computing protocol that is used for Spice client-server communication.

Sheepdog - Distributed Storage System for QEMU

  •    C

Sheepdog is a distributed object storage system for volume and container services and manages the disks and nodes intelligently. Sheepdog features ease of use, simplicity of code and can scale out to thousands of nodes. The block level volume abstraction can be attached to QEMU virtual machines and Linux SCSI Target and supports advanced volume management features such as snapshot, cloning, and thin provisioning.

runq - run regular Docker images in KVM/Qemu

  •    Go

runq is a hypervisor-based Docker runtime based on runc to run regular Docker images in a lightweight KVM/Qemu virtual machine. The focus is on solving real problems, not on number of features. runq requires a host kernel >= 4.8 with KVM and VHOST_VSOCK support enabled. The easiest way to build runq and to put all dependencies together is using Docker. For fast development cycles a regular build environment might be more efficient. For this refer to section Developing runq below.

Proxmox - Virtualization Platform

  •    C

Proxmox Virtual Environment is a powerful Open Source Server Virtualization Platform, based on KVM and OpenVZ. It gives you near-bare-metal performance and leading scalability for your workloads. You can virtualize even the most demanding application workloads. It supports 32 bit and 64 bit Windows and Linux servers.

Mininet - An Instant Virtual Network on your Laptop (or other PC)

  •    Python

Mininet emulates a complete network of hosts, links, and switches on a single machine. It creates a realistic virtual network, running real kernel, switch and application code, on a single machine (VM, cloud or native), in seconds, with a single command.

qemuctl

  •    C++

This is a controlling GUI for the emulator quot;qemuquot;. It is not for configuring devices or starting qemu, no it's for changing media, reset the vm, and so on at runtime. You can start it out of your favorite configuring GUI like you would do with qem