Brussels / 2 & 3 February 2013


The Anykernel and Rump Kernels

This talk will introduce the concepts of the anykernel and rump kernels, motivate their existence, and show a few cool tricks that are unique benefits. We will not go deep into technical detail -- basic knowledge of operating systems is enough to follow the talk.

The anykernel is a new way of looking at kernel architecture. Conventional models such as the monolithic kernel, microkernel and exokernel dictate the execution model for kernel drivers. In contrast, the anykernel states that any of these should be possible as a runtime choice.

A rump kernel is a lightweight virtualized driver execution environment. Typically, OS virtualization means that the application execution environment is virtualized. In contrast, the rump kernel is designed for ultralightweight kernel driver virtualization. Benefits of using rump kernels include millisecond bootstrap times and a small memory footprint.

A production quality implementation of the concepts is available in NetBSD 6. The implementation lends itself to various use cases, such as isolating kernel drivers into separate servers on an on-demand basis and reusing kernel drivers in a library fashion such as for accessing file system images.

In addition to providing a basic overview of the concepts and benefits, the talk will introduce recent developments. An example of such is a script for building rump kernels for non-NetBSD platforms which allows NetBSD kernel drivers such as the TCP/IP stack to be leveraged on platforms beyond NetBSD.

As a demonstration, the NetBSD kernel FFS driver will be run in a browser. This is accomplished by compiling the driver with a C-to-javascript compiler and running a rump kernel on top of a hypervisor provided by the javascript environment.


Antti Kantee