Vkernel
   HOME

TheInfoList



OR:

A virtual kernel architecture (vkernel) is an
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
virtualisation paradigm where kernel code can be compiled to run in the
user space A modern computer operating system usually uses virtual memory to provide separate address spaces or regions of a single address space, called user space and kernel space. This separation primarily provides memory protection and hardware prote ...
, for example, to ease debugging of various kernel-level components, in addition to general-purpose virtualisation and compartmentalisation of
system resource In computing, a system resource, or simply resource, is any physical or virtual component of limited availability that is accessible to a computer. All connected devices and internal system components are resources. Virtual system resources in ...
s. It is used by
DragonFly BSD DragonFly BSD is a free and open-source Unix-like operating system forked from FreeBSD 4.8. Matthew Dillon, an Amiga developer in the late 1980s and early 1990s and FreeBSD developer between 1994 and 2003, began working on DragonFly BSD in ...
in its vkernel implementation since DragonFly 1.7, having been first revealed in , and first released in the stable branch with DragonFly 1.8 in . The long-term goal, in addition to easing kernel development, is to make it easier to support internet-connected
computer cluster A computer cluster is a set of computers that work together so that they can be viewed as a single system. Unlike grid computers, computer clusters have each node set to perform the same task, controlled and scheduled by software. The newes ...
s without compromising local
security Security is protection from, or resilience against, potential harm (or other unwanted coercion). Beneficiaries (technically referents) of security may be persons and social groups, objects and institutions, ecosystems, or any other entity or ...
. Similar concepts exist in other operating systems as well; in Linux, a similar virtualisation concept is known as
user-mode Linux User-mode Linux (UML) is a virtualization system for the Linux operating system based on an architectural port of the Linux kernel to its own system call interface, which enables multiple virtual Linux kernel-based operating systems (known as gu ...
; whereas in
NetBSD NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was fork (software development), forked. It continues to ...
since the summer of 2007, it has been the initial focus of the
rump kernel 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. The NetBSD drivers can be used on top of the ...
infrastructure. The ''virtual kernel'' concept is nearly the exact opposite of the ''
unikernel A unikernel is a type of computer program that is static linking, statically linked with the operating system code on which it depends. Unikernels are built with a specialized compiler that identifies the operating system services that a program ...
'' concept — with ''vkernel'', kernel components get to run in userspace to ease kernel development and debugging, supported by a regular operating system kernel; whereas with a ''unikernel'', userspace-level components get to run directly in kernel space for extra performance, supported by baremetal hardware or a hardware virtualisation stack. 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. In fact, NetBSD's
rump kernel 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. The NetBSD drivers can be used on top of the ...
, originally having a focus of running kernel components in userspace, has since shifted into the unikernel space as well (going after the ''anykernel'' moniker for supporting both paradigms). The vkernel concept is different from a
FreeBSD jail The jail mechanism is an implementation of FreeBSD's OS-level virtualisation that allows system administrators to partition a FreeBSD-derived computer system into several independent mini-systems called ''jails'', all sharing the same kernel, with ...
in that a jail is only meant for resource isolation, and cannot be used to develop and test new kernel functionality in the userland, because each jail is sharing the same kernel. (DragonFly, however, still has
FreeBSD jail The jail mechanism is an implementation of FreeBSD's OS-level virtualisation that allows system administrators to partition a FreeBSD-derived computer system into several independent mini-systems called ''jails'', all sharing the same kernel, with ...
support as well.) In DragonFly, the vkernel can be thought of as a first-class computer architecture, comparable to i386 or amd64, and, according to
Matthew Dillon Matthew Dillon (born 1966) is an American software engineer known for Amiga software, contributions to FreeBSD and for starting and leading the DragonFly BSD project since 2003. Biography Dillon studied electronic engineering and computer scie ...
circa 2007, can be used as a starting point for porting DragonFly BSD to new architectures. DragonFly's vkernel is supported by the host kernel through new
system call In computing, a system call (syscall) is the programmatic way in which a computer program requests a service from the operating system on which it is executed. This may include hardware-related services (for example, accessing a hard disk drive ...
s that help manage virtual memory address space (vmspace) — vmspace_create() et al., as well as extensions to several existing system calls like
mmap In computing, mmap(2) is a POSIX-compliant Unix system call that maps files or devices into memory. It is a method of memory-mapped file I/O. It implements demand paging because file contents are not immediately read from disk and initially use n ...
's madvisemcontrol.


See also

*
user-mode Linux User-mode Linux (UML) is a virtualization system for the Linux operating system based on an architectural port of the Linux kernel to its own system call interface, which enables multiple virtual Linux kernel-based operating systems (known as gu ...
*
rump kernel 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. The NetBSD drivers can be used on top of the ...


References


External links

* * {{Virtualization software 2006 software BSD software Computer architecture Computer performance DragonFly BSD Free software programmed in C Free virtualization software Operating system kernels Operating system security Operating system technology System administration Virtual machines Virtualization software Software using the BSD license