version 1.1, 2014/01/05 14:53:58
|
version 1.2, 2014/01/24 13:28:42
|
Line 34 high-level operations such as "run this
|
Line 34 high-level operations such as "run this
|
Currently, three implementations of the rump kernel hypercall interface |
Currently, three implementations of the rump kernel hypercall interface |
exist. |
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 |
rump kernels to run as userspace processes on most operating systems |
such as NetBSD, Linux and Solaris. |
such as NetBSD, Linux and Solaris. |
- The Xen implementation allows running rump kernels directly as Xen |
- The Xen implementation allows running rump kernels directly as Xen |
Line 55 lightweight. The bootstrap time for rump
|
Line 55 lightweight. The bootstrap time for rump
|
measured in milliseconds and memory footprint in 100kB's. This means |
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 |
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 |
line tool for virtually no cost or user impact. Rump kernels also |
mandate very little from the hypercall implementation meaning that rump |
mandate very little from the hypercall implementation meaning that |
kernels, and by extension NetBSD kernel drivers, can be hosted in |
rump kernels, and by extension NetBSD kernel drivers, can be hosted in |
virtually any environment. |
virtually any environment -- for example, rump kernels do not require |
|
a platform with an MMU. |
|
|
Use cases for rump kernels include: |
Use cases for rump kernels include: |
|
|
Line 92 Use cases for rump kernels include:
|
Line 93 Use cases for rump kernels include:
|
|
|
## Further Reading |
## Further Reading |
|
|
### Dissertation |
### Book |
|
|
The following is the definitive guide to the anykernel and rump kernels |
The following book is the definitive guide to the anykernel and rump |
and supercedes all earlier publications and terminology on the subject. |
kernels and supercedes all earlier publications and terminology on |
|
the subject. |
|
|
- [Flexible Operating System Internals: The Design and Implementation |
- [Flexible Operating System Internals: The Design and Implementation |
of the Anykernel and Rump |
of the Anykernel and Rump |
Kernels](http://lib.tkk.fi/Diss/2012/isbn9789526049175/isbn9789526049175.pdf) |
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 |
### Software using rump kernels |
|
|
These links are interesting for people who want to use rump kernels in |
While the NetBSD source tree hosts the base kernel drivers and hypercall |
addition to reading about them. |
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 |
- [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 |
- [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 |
- [fs-utils: File system image access |
utilities](https://github.com/stacktic/fs-utils) |
utilities](https://github.com/stacktic/fs-utils) |
- Fast userspace packet processing: TCP/IP stack for use with |
- Fast userspace packet processing: TCP/IP stack for use with |
[DPDK](https://github.com/anttikantee/dpdk-rumptcpip) or |
[DPDK](https://github.com/rumpkernel/dpdk-rumptcpip) or |
[netmap](https://github.com/anttikantee/netmap-rumptcpip) |
[netmap](https://github.com/rumpkernel/netmap-rumptcpip) |
|
|
### Articles, Tutorials & Howtos |
### Articles, Tutorials & Howtos |
|
|