Daniel Castro's GSoC project: Add Xen PV block device support to SeaBIOS

This is a guest blog post by Daniel Castro, one of our Google Summer of Code students. We will aim to publish a GSoC student introduction every Monday. Later in the year, we will publish project updates.
My Name is Daniel Castro, from Bogota Colombia. I have been accepted into Pohang University of Science and Technology for a PhD in Computer Science, as part of the Korean Government Scholarship Program for International Students. My research interests are virtualization and networks. I love cats and motorbikes, and also enjoy reading CS textbooks and Sci-fi.
This is my first time in Google Summer of Code and my first time contributing to an open source project. I hope I will keep contributing to Xen Hypervisor for many years to come. I worked with Citrix XenServer for several years, but never worked with the open source version, and I have big expectations for Xen.
The GSoC Project
Currently Xen is using a BIOS called ROMBIOS for HVM Virtual machines. Xen is going to introduce SeaBIOS and work on upstreaming necessary changes to Qemu. SeaBIOS runs natively in Qemu, has Qemu upstream support and is also the BIOS of choice for  KVM.
The project requires modifications to the SeaBIOS hard drive abstraction layer to allow usage of  the Xen PV Drivers instead of the emulated device used in qemu-dm. Once SeaBIOS abstraction layer is in place I will work on the following tasks:

  • Provide PV frontend drivers for SeaBIOS in order to discourage the use of the emulated device.
  • Remove the emulated device to remove the subtle confusion that can arise from booting from one device (emulated) but (apparently) running from another (PV frontend).
  • Around July present the community with patches that enable to test the new functionality.
  • Test for each kind of VM (a compatibility matrix will be presented as part of the documentation).
  • All activities and reports will be published on the SeaBIOS wiki

I am also very interested in HVM Guests of Xen and all the knowledge I gather will be posted on the hvmloader wiki page.

Read more