A virtual kernel architecture (vkernel) is an operating system virtualisation paradigm where kernel code can be compiled to run in the user space, for example, to ease debugging of various kernel-level components,[3][4][5] in addition to general-purpose virtualisation and compartmentalisation of system resources.
[1][7][8][9] The long-term goal, in addition to easing kernel development, is to make it easier to support internet-connected computer clusters without compromising local security.
[3][4] Similar concepts exist in other operating systems as well; in Linux, a similar virtualisation concept is known as user-mode Linux;[10][7] whereas in NetBSD since the summer of 2007, it has been the initial focus of the rump kernel infrastructure.
However, both vkernels and unikernels can be used for similar tasks as well, for example, to self-contain software to a virtualised environment with low overhead.
DragonFly's vkernel is supported by the host kernel through new system calls that help manage virtual memory address space (vmspace) — vmspace_create() et al.,[3][9][13] as well as extensions to several existing system calls like mmap's madvise — mcontrol.