The NetBSD rump kernel is the first implementation of the "anykernel" concept where drivers either can be compiled into or run in the monolithic kernel or in user space on top of a light-weight kernel.[1] [2] [3] [4] The NetBSD drivers can be used on top of the rump kernel on a wide range of POSIX operating systems, such as the Hurd,[5] Linux, NetBSD, DragonFly BSD, Solaris kernels and even Cygwin, along with the file system utilities[6] built with the rump libraries. The rump kernels can also run without POSIX directly on top of the Xen hypervisor, an L4 microkernel using the Genode OS Framework[7] or even on "OS-less" bare metal.
An anykernel is different in concept from microkernels, exokernels, partitioned kernels or hybrid kernels in that it tries to preserve the advantages of a monolithic kernel, while still enabling the faster driver development and added security in user space.[8] The "anykernel" concept refers to an architecture-agnostic approach to drivers where drivers can either be compiled into the monolithic kernel or be run as a userspace process, microkernel-style, without code changes.[9] With drivers, a wider concept is considered where not only device drivers are included but also file systems and the networking stack.
The File System Access Utilities (fs-utils) is a subproject built with the rump libraries. It aims to have a set of utilities to access and modify a file system image without having to mount it. The fs-utils does not require a superuser account to access the image or device. The advantage of fs-utils over similar projects such as mtools is supporting the usage of familiar filesystem Unix commands ([[ls]]
, [[cp (Unix)|cp]]
, [[mv (Unix)|mv]]
, [[cd (command)|cd]]
, etc.) for a large number of file systems which are supported by NetBSD.[10]