rumpuser is the hypervisor interface for
rump(3) style kernel virtualization. A virtual rump kernel can make calls to the host operating system libraries and kernel (system calls) using
rumpuser interfaces. Any "slow" hypervisor calls such as file I/O, sychronization wait, or sleep will cause rump to unschedule the calling kernel thread from the virtual CPU and free it for other consumers. When the hypervisor call returns to the kernel, a new scheduling operation takes place.
For example, rump implements kernel threads directly as hypervisor calls to host
pthread(3). This avoids the common virtualization drawback of multiple overlapping and possibly conflicting implementations of same functionality in the software stack.
The
rumpuser interface is still under development and interface documentation is available only in source form from
src/lib/librumpuser.