LfD Logo

Looking for C and Linux Nerds - Test Framework for the RISC-V Hypervisor

  • Type: Master thesis
  • State: open
  • Supervisor: Stefan Huber
  • Student: No Name

Your Tasks:

  • Intense, systematic testing of a virtualised environment / hypervisor
  • Identify, analyse and fix bugs
  • Pentesting of the hypervisor
  • Integration into an automatic testing framework
  • Testing with cycle-accurate emulators (e.g., Firesim)
  • Testing and development of our own minimalist guest-operating-system "Grinch"

Depending on the type (i.e., Bachelor's thesis, Master's thesis or HSP), the scope of tasks is adjusted according to the credit points.

Your Goal:

  • Development of an automatic test framework for Jailhouse

Your Profile:

  • Good handling of the C programming language
  • Good handling of Linux and its command line
  • First touches with assembly language (optional)

We offer:

  • Work on a open source software project used in industry
  • Low-level embedded hardware hacking, Linux kernel hacking
  • Boost your own visibility via public contributions to Open Source projects (e.g., Linux, Jailhouse)
  • Work with the emerging RISC-V processor architecture
  • Be part of the team of the Laboratory for Digitalisation
  • Work from home or at the laboratory at the informatics building of OTH Regensburg
  • The possibility of further work in our team (Bachelor/Master Theses, HSPs, Research Master)
  • The opportunity for employment at the Laboratory for Digitalisation
  • Free coffee and tea

If you are interested or have further questions just write an email to stefan.huber@oth-regensburg.de

Info about Jailhouse:

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.

Once Jailhouse is activated, it runs bare-metal, i.e. it takes full control over the hardware and needs no external support. However, in contrast to other bare-metal hypervisors, it is loaded and configured by a normal Linux system. Its management interface is based on Linux infrastructure. So you boot Linux first, then you enable Jailhouse and finally you split off parts of the system's resources and assign them to additional cells.

Github: Jailhouse
Youtube: Zero-Overhead Virtualisation: It's a Trap! - Ralf Ramsauer & Stefan Huber, OTH Regensburg
Paper: Look Mum, no VM Exits! (Almost)
Paper: Static Hardware Partitioning on RISC-V -- Shortcomings, Limitations, and Prospects