--- wikisrc/rumpkernel.mdwn 2014/01/05 14:53:58 1.1 +++ wikisrc/rumpkernel.mdwn 2014/01/24 13:28:42 1.2 @@ -34,7 +34,7 @@ high-level operations such as "run this Currently, three implementations of the rump kernel hypercall interface exist. -- The POSIX implementation is included in the NetBSD tree and makes +- The POSIX implementation is included in the NetBSD tree and allows rump kernels to run as userspace processes on most operating systems such as NetBSD, Linux and Solaris. - The Xen implementation allows running rump kernels directly as Xen @@ -55,9 +55,10 @@ lightweight. The bootstrap time for rump measured in milliseconds and memory footprint in 100kB's. This means that a rump kernel can be bootstrapped for example as part of a command line tool for virtually no cost or user impact. Rump kernels also -mandate very little from the hypercall implementation meaning that rump -kernels, and by extension NetBSD kernel drivers, can be hosted in -virtually any environment. +mandate very little from the hypercall implementation meaning that +rump kernels, and by extension NetBSD kernel drivers, can be hosted in +virtually any environment -- for example, rump kernels do not require +a platform with an MMU. Use cases for rump kernels include: @@ -92,29 +93,42 @@ Use cases for rump kernels include: ## Further Reading -### Dissertation +### Book -The following is the definitive guide to the anykernel and rump kernels -and supercedes all earlier publications and terminology on the subject. +The following book is the definitive guide to the anykernel and rump +kernels and supercedes all earlier publications and terminology on +the subject. - [Flexible Operating System Internals: The Design and Implementation of the Anykernel and Rump Kernels](http://lib.tkk.fi/Diss/2012/isbn9789526049175/isbn9789526049175.pdf) +Note that the book was finalized in summer 2012, so while the fundamentals +are still accurate, some of the problems described in "Future Work" +have already been solved. Check out the links below. + + ### Software using rump kernels -These links are interesting for people who want to use rump kernels in -addition to reading about them. +While the NetBSD source tree hosts the base kernel drivers and hypercall +implementation, more I/O drivers, infrastructure scripts and hypercall +implementations are hosted elsewhere. Most of the code is hosted +under the [rump kernels](https://github.com/rumpkernel/) organization +on github. Some highlights include: - [Scripts for building rump kernels for POSIX - systems](https://github.com/anttikantee/buildrump.sh) + systems](https://github.com/rumpkernel/buildrump.sh) +- The [rumprun](https://github.com/rumpkernel/rumprun/) package + allows portable building and running of unmodified NetBSD userspace + applications -- extremely useful for configuring rump kernels (e.g. + network interfaces and routing tables) - [Rump kernel hypercall implementation for Xen; rump kernels as Xen - DomU's](https://github.com/anttikantee/rumpuser-xen) + DomU's](https://github.com/rumpkernel/rumpuser-xen) - [fs-utils: File system image access utilities](https://github.com/stacktic/fs-utils) - Fast userspace packet processing: TCP/IP stack for use with - [DPDK](https://github.com/anttikantee/dpdk-rumptcpip) or - [netmap](https://github.com/anttikantee/netmap-rumptcpip) + [DPDK](https://github.com/rumpkernel/dpdk-rumptcpip) or + [netmap](https://github.com/rumpkernel/netmap-rumptcpip) ### Articles, Tutorials & Howtos