The project is no longer available

IncludeOS: Virtual file system

IncludeOS is a unikernel operating system developed at University of Oslo and OsloMet. In IncludeOS, the operating itself is a library that you can link with your application, producing a VM that just contains the operating system components you need. For example, if you develop a network application that will run in the cloud, you may not need a full file system or the ability to run other applications. This produces a very resource efficient and small virtual machine that is only a few megabytes in size and can boot in nanoseconds.

Virtiofs is a shared file system for virtual machines. It allows the host operating system, which is running the VM, to share a part of its file system that can be accessed inside the VM. Virtiofs is not a full file system, but a driver that allows you to perform file system operations on files that are stored in a file system external to the VM (on the host).

The goal of this thesis is to learn virtiofs and implement the virtual machine driver side in IncludeOS. For evaluation, the file system should be shared from Linux via QEMU and then accessed from inside the IncludeOS VM. The driver will also be evaluated in terms of performance and resource requirements. IncludeOS already has partial support for virtioblk, and experiments with different existing file systems on top of virtual block devices like virtioblk or in memory file systems may also be considered.

Learning outcome

Experience

  • deep understanding of operating system internals and virtual machines
  • experience in operating system development
  • contribute to an open source project
  • conducting, evaluating and interpreting research results

Conditions

We expect that you:

  • have been admitted to a master's program at MatNat@UiO
  • take this as a long thesis
  • are interested in and have some knowledge of C/C++ programming and low level systems programming
Published Sep. 19, 2024 2:21 PM - Last modified Nov. 8, 2024 11:29 AM

Supervisor(s)

Scope (credits)

60