Getting Started in Unikernels Using the Rump Kernel

Room 1
Time Slot: 

A unikernel is a program linked in with operating system components as well as the application components to make a single executable that has both userspace and kernel functionalities together. So it will include both the TCP stack and the HTTP stack for example. This reduces the dependencies of a program making it portable to many environments, such as hypervisors or bare metal as well as userspace. In many ways unikernels can be seen as the logical extension of containers, wrapping the whole system up into one executable.

Most unikernels use a set of custom written system libraries, but this is a large amount of work to build. Instead the rump kernel reuses unmodified, well tested libraries from an existing operating system, NetBSD, and hooks them up to work as userspace libraries. This means it can support running existing unmodified Unix programs as unikernels, allowing easy experimentation.

In this session we will cover how to build, configure and deploy a unikernel with the rump kernel tools, and how to participate in the project, and where to learn more.

Justin Cormack is a consultant and developer who has been working on unikernel projects using rump kernels for the last few years. Aside from that he is interested in building better distributed systems. You can find him as justincormack on github or Twitter. He is based in London.