IncludeOS is a unikernel operating system developed at University of Oslo and OsloMet. In IncludeOS, the operating system 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.
We have several topics available in this area and you may also propose your own ideas.
Potential topics this year:
- Add support for ML acceleration
- Share Unix sockets between the unikernel VM and the host (vsock support)
- Implement support for a new runtime (e.g. rust)
- Support 10GB/s networks
- Prototype support for secure enclaves
Some earlier topics (not currently available):
- Create an efficient memory allocator
- Implement virtiofs (file system sharing) support
- Port to ARM
- Power efficiency of unikernels
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
- have completed IN3000 or a similar course
- are interested in and have some knowledge of C/C++ programming and low level systems programming