RUMPKERNEL(7)       NetBSD Miscellaneous Information Manual      RUMPKERNEL(7)

     rump kernel -- The Anykernel and Rump Kernels

     Rump kernels provide portable, componentized, kernel quality drivers such
     as file systems, POSIX system call handlers, PCI device drivers, a SCSI
     protocol stack, virtio and a TCP/IP stack.  The fundamental enabling
     technology is the anykernel architecture of NetBSD, which enables the use
     of unmodified NetBSD kernel drivers.  The minimalistic rumpuser(3) inter-
     face integrates a rump kernel to the host platform.  Suitable and readily
     supported platforms include for example POSIX userspace (such as NetBSD),
     hypervisors (such as Xen and KVM), and bare metal hardware.

     Rump kernels are component-oriented, which means that they consist of
     libraries which are linked together to form runtime images.  If the plat-
     form supports it, dynamic linking may be used to load components at run-
     time, allowing the creation of services where the runtime component con-
     figuration is specified when the service is run (see rump_server(1) for
     an example).

     A rump kernel provides its own set of namespaces, such as a file system
     hierarchy and TCP ports, that are independent of the ones on the host and
     of any other rump kernel instances.  It should be noted that the presence
     of the provided namespaces depends on the components that the rump kernel
     was constructed with.  For example, networking and file systems are com-
     ponents, and it is possible to construct a rump kernel which supports

     A rump kernel accepts the following bootstrap parameters.  The exact way
     of specifying the parameters depends on the host platform; for example in
     POSIX userspace the parameters are environment variables.

     RUMP_NCPU        If set, the value indicates the number of virtual cores
                      configured into a rump kernel, i.e. the number of
                      threads which can be concurrently executing code inside
                      the rump kernel.

                      The special value "host" can be used to specify the num-
                      ber of of host cores available (note: not available on
                      all platforms).  If this parameter is unset, two cores
                      will be configured.

     RUMP_VERBOSE     If set to non-zero, causes bootstrap messages to be dis-
                      played on the console.

     RUMP_MEMLIMIT    If set, indicates the maximum amount of memory that a
                      rump kernel will attempt to allocate from the host.  If
                      this parameter is unset, the rump kernel attempt to
                      allocate host memory until allocation fails.  When the
                      rump kernel is close to the allocation limit, or when
                      host allocation fails, the rump kernel will attempt to
                      make more memory available by invoking its internal
                      pagedaemon to flush caches.


     Antti Kantee and Justin Cormack, "Rump Kernels: No OS? No Problem!",
     USENIX, ;login:, No. 5, Vol. 39, October 2014.

     Antti Kantee, "Flexible Operating System Internals: The Design and
     Implementation of the Anykernel and Rump Kernels", Aalto University
     Doctoral Dissertations, 2012.

     Antti Kantee, "Rump Device Drivers: Shine On You Kernel Diamond",
     Proceedings of AsiaBSDCon 2010, pp. 75-84, March 2010.

     Arnaud Ysmal and Antti Kantee, "Fs-utils: File Systems Access Tools for
     Userland", EuroBSDCon 2009, September 2009.

     Antti Kantee, "Rump File Systems: Kernel Code Reborn", Proceedings of the
     2009 USENIX Annual Technical Conference, pp. 201-214, June 2009.

     Antti Kantee, "Kernel Development in Userspace - The Rump Approach",
     BSDCan 2009, May 2009.

     Antti Kantee, "Environmental Independence: BSD Kernel TCP/IP in
     Userspace", Proceedings of AsiaBSDCon 2009, pp. 71-80, March 2009.

     An experimental concept for the anykernel and rump kernels was first seen
     during the NetBSD 5.0 development cycle.  A stable concept was ready for
     NetBSD 6.0.

NetBSD 7.0                     December 1, 2014                     NetBSD 7.0

You can also request any man page by name and (optionally) by section:


Use the DEFAULT collection to view manual pages for third-party software.

©1994 Man-cgi 1.15, Panagiotis Christias <>
©1996-2017 Modified for NetBSD by Kimmo Suominen