GSoC/GCI Archive
Google Summer of Code 2015


License: GNU General Public License version 2.0 (GPLv2)

Web Page:

Mailing List:

The QEMU Project includes the QEMU open source machine emulator and virtualizer and also acts as an umbrella organization for libvirt and the KVM Linux kernel module. When used as a machine emulator, QEMU can run operating systems 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, ARM, server and embedded PowerPC, and S390 guests.


  • Admin interface APIs [libvirt] Hello, my name is Erik Skultety and I am a student at Brno University of Technology, currently pursuing my master's degree. I'd like to participate on GSoC project to try something different from school projects, something more practical in real life. This is a huge opportunity to bring my skills and knowledge to a whole another level.
  • Enhancing libvirt-designer Enhancing libvirt-designer to generate domain XML in an intelligent fashion.
  • Implementing Mac OS 9 support QEMU currently fails to boot Mac OS 9 on an emulated PowerPC processor. I propose to add support for OS 9 to QEMU by fixing any existing issues with OpenBIOS and then modifying QEMU/KVM as necessary to support the Mac NewWorld architecture.
  • Integrate IDE ATAPI and SCSI CD-ROM emulation Currently the IDE ATAPI and SCSI CD-ROM emulated devices are two distinct implementations, and have different bugs/features. This leads to the situation that things which work when using the IDE emulation don't work when using the SCSI emulation and vice versa. So this project is for implementing a virtual ATA-to-SCSI bridge in QEMU, use this for emulating an IDE ATAPI drive, and merging the missing features from the IDE implementation into the SCSI one.
  • Object rename APIs Currently, object names in libvirt (e.g. domain, network, nwfilter, etc.) are immutable. So are UUIDs. The aim of this project is to introduce set of APIs to allow renaming of the objects. Within libvirt code, many things are derived from object name, e.g. paths to domain monitor, to domain log file. These have to be taken special care about.
  • QEMU audio backend Rework QEMU audio backend configuration to use command line switches instead of environment variables. This will allow multiple audio backend instances, linking them with sound cards. The mixing of different sound card streams will be optional. Also backends and (at least one) emulated sound card will be updated to support surround audio.
  • Running docker containers using virt-sandbox In this proposal, I am going to describe an implementation of how a docker image can be run in sandbox environment. Docker is a container based virtualization technology which has gained significant popularity past 2 years. Docker has huge repository of ready-made templates which leverage users to install and use application containers easily. By running docker images in virt-sandbox environment will let anyone to access huge number of already-built containers without delving into configuration.