Back to Programs

Infrastructure and cloud

QEMU

Open source machine emulator and virtualizer

clinuxpythonrust

Participation history

10 GSoC years

2026

4 projects

Official year page

Fast Snapshot Load for QEMU

QEMU's current snapshot load blocks until all guest RAM is loaded before starting execution. This project implements on-demand snapshot loading using...

Observability Support for COCONUT-SVSM

A guest operating system (OS), running inside a Confidential Virtual Machine (CVM), does not know the state information, such as log data or memory...

Support X86 Process Context Identifiers (PCID) in COCONUT-SVSM

COCONUT-SVSM is a Secure Virtual Machine Service Module running at a privileged level inside Confidential VMs to provide trusted services (e.g.,...

USB Device Redirection for qemu-rdp

Implement MS-RDPEUSB protocol (client & server) in IronRDP with libusb backend and qemu-rdp integration. The goal of this project is to add USB...

2025

5 projects

Official year page

Fuse-over-io_uring exports

This project extends QEMU FUSE export with support for FUSE-over-io_uring, a modern Linux interface that enables asynchronous, high-performance...

Asynchronous request handling for virtiofsd

Virtio-fs is a shared file system that lets virtual machines access a directory tree on the host. Virtiofsd is the user-level host daemon that...

Adding Kani proofs for Virtqueues in Rust-vmm

This project aims to formally verify that the Rust vmm (a Rust implementation of the VirtIO specification used in virtualization platforms like QEMU)...

Implementing LASI Network Card and NCR 710 SCSI Controller Device Models

This project aims to enhance QEMU's HP PA-RISC emulation by implementing LASI Network Card and NCR 710 SCSI Controller device models. LASI Network...

vhost-user devices in Rust on macOS and *BSD

Extend rust-vmm crates (vhost, vhost-user-backend) to enable vhost-user device support on non-Linux POSIX systems (macOS/*BSD). The goal of this...

2023

6 projects

Official year page

A sandboxing tool for virtiofsd

Virtiofs is a shared file system that lets virtual machines access a directory tree on the host. Unlike existing approaches, it is designed to offer...

Add virtio-net Control Virtqueue state restore support

Virtio-net device uses Control Virtqueue(CVQ) for changing device parameters. For some devices, such as vDPA, its CVQ is passed from Guest’s driver...

Improving FreeBSD User Emulation of the Armv7 Architecture

The proposal is about improving the QEMU emulator for the armv7 architecture on FreeBSD OS, it's goal is to get a simple C++ hello-world program to...

Out-of-process RDP server for QEMU

QEMU is able to export its display over D-Bus. We can create a server that uses the provided API to export the display over the network. There is...

Rust bindings for libnbd

Network Block Device (NBD) is a protocol for exporting block devices, either between processes or across the network. Libnbd is a client library for...

Sibling VM communication in vhost-user-vsock

The vhost-user-vsock Rust application emulates a virtio-vsock device in an external process and provides the hybrid VSOCK interface over AF_UNIX...

2022

4 projects

Official year page

NVMe Emulation Performance Optimization

QEMU-NVMe is an important tool for developers to experiment with new features in the NVMe stack. However, its emulation performance has failed to...

Extend aarch64 support in rust-vmm/vmm-reference

This project aims to extend the support for aarch64 on rust-vmm/vmm-reference. rust-vmm enables the community to build custom VMM solutions. It...

Snapshot/restore for fuzzing with QEMU

Add a new virtual device to QEMU to interface with a custom snapshot/restore functionality. Modified memory is kept track of by instrumenting the TCG...

VIRTIO_F_IN_ORDER support for virtio devices

VIRTIO_F_IN_ORDER is a new feature presented in VIRTIO 1.1. As mentioned on the project description page, VIRTIO_F_IN_ORDER is a feature that devices...

2021

6 projects

Official year page

vhost-user-scsi device in Rust

QEMU supports exposing block devices to the guest OS over the virtio-scsi protocol. Currently, this is implemented using C code running in the main...

Interactive, asynchronous QEMU Machine Protocol (QMP) text user interface (TUI)

The aim of the project is to build a Text User Interface(TUI) for issuing and receiving QEMU Monitor Protocol (QMP) commands from a running QEMU...

Development of a vhost-user-vsock application and its integration with kata contianers

This project aims to realize a vhost-user-vsock application that will leverage the vhost-user protocol to emulate a virtio-vsock device in an...

TCG Plugin: Cache Modelling

Since cache performance is one of the essential metrics that may bottle-neck the overall performance of the system, monitoring it and identifying...

Mocking framework for virtio queues

This project revolves around designing a reusable framework for mocking the driver side of a VirtQueue operation. It would allow rust-vmm crates and...

Complete AMD virtualization emulation

QEMU already includes a basic implementation of the virtualization extensions that are found in AMD processors. This implementation, however, is not...

2020

3 projects

Official year page

Extend linux-user syscalls and ioctls

Very often, the QEMU emulator is used to emulate user level processes that are compiled for a different architecture set than the "host" machine on...

TCG Continuous Benchmarking

QEMU's emulator allows running operating systems and binaries compiled against one architecture (e.g. Linux ARM) on a host with a different...

Virtual FIDO/U2F security key on Qemu

U2F is an open authentication standard used worldwide. It enables relying parties exposed to the internet to offer a strong second factor option for...

2019

3 projects

Official year page

Fuzzing QEMU's implementation of VirtIO devices

Integrate QEMU with the OSS-Fuzz continuous fuzzing service. Implement functionality to fuzz QEMU’s devices adhering to the VirtIO standard. Fuzzing...

Improving Measurement of Tiny Code Generation Quality

One of the most important steps in tuning an emulator performance is to identify which are the hot regions and to measure their translation quality....

Support for AVX within TCG

QEMU's TCG just-in-time compiler translates target CPU instructions into host CPU instructions so that programs written for other CPU architectures...

2018

4 projects

Official year page

micro:bit machine type and cortex-m0 support

The micro:bit is a small computer for educational use that is also suitable for embedded and Internet of Things (IoT) projects. The micro:bit...

Qtest Driver Framework

Testing is very important in software development, it allows developers to find bugs and evaluate software quality. For instance, regression testing...

Vulkan-ize VirGL

VirGL provides an OpenGL path well supported on Linux guests. On the host, QEMU offers several console back-ends, from EGL to SDL. Adding a Vulkan...

Patchew REST API improvements.

Patchew is an open source CI project to automate testing of patches submitted as emails on mailing lists. Currently Patchew has a simple API, but it...

2017

4 projects

Official year page

Hypervisor.framework Support for QEMU

The idea of the project is to add support for macOS’s native hypervisor through the Hypervisor.framework API. This API exposes to user applications...

Implementing I/O throttling and write notifiers into filter Block Drivers

I/O throttling is currently hard-coded in QEMU. A request is checked for throttling directly in block-backend.c instead of having a filter driver...

Generic PCIE-PCI bridge

Nowadays QEMU doesn't have any PCIE-PCI bridge except DMI-PCI i82801b11 bridge, but as DMI is a proprietary Intel bus, it can be used only on x86...

Virgl Windows driver

3D acceleration is non-existent on Windows guests. The goal for this project is to bring a support for OpenGL. For the host part, we will use Virgl,...

2016

6 projects

Official year page

qemu-img fuzzing and subcommand "dd"

This proposal aims primarily to fuzz test qemu-img from QEMU project in order to discover the potential security bugs and write bug fixes for them....

AMD IOMMU interrupt remapping and other improvements

This project aims to get the current AMD IOMMU patches merged into Qemu as well as introduce interrupt remapping support to the current AMD IOMMU...

Postcopy migration: Recovery from a broken network connection

Live Migration is a process of moving a running virtual machine from one physical system to another. There are usually two ways, precopy and...

AF_VSOCK packet capture in Linux and Wireshark

Zero-configuration communication between the QEMU hypervisor and its guests can be achieved using the virtio-serial device. Virtio-serial has several...

MTTCG Memory Consistency

QEMU uses a single-threaded tiny code generator (TCG) which translates instructions of the guest ISA to instructions of the host ISA. These...

Implementing one more absolute coordinates device for QEMU – a serial tablet with behaviour like usb-tablet we use to get mouse integration

The implementing serial tablet would allow to have mouse integration for vintage operating systems. This feature is absent in other virtualisation...