We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

The Anykernel and Rump Kernels

Formal Metadata

Title
The Anykernel and Rump Kernels
Title of Series
Number of Parts
90
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
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.