Vkernel
   HOME

TheInfoList



OR:

A virtual kernel architecture (vkernel) is an
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
virtualisation In computing, virtualization or virtualisation (sometimes abbreviated v12n, a numeronym) is the act of creating a virtual (rather than actual) version of something at the same abstraction level, including virtual computer hardware platforms, sto ...
paradigm where kernel code can be compiled to run in the
user space A modern computer operating system usually segregates virtual memory into user space and kernel space. Primarily, this separation serves to provide memory protection and hardware protection from malicious or errant software behaviour. Kernel ...
, 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 simple resource, is any physical or virtual component of limited availability within a computer system. All connected devices and internal system components are resources. Virtual system resources include fi ...
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 Ju ...
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 comp ...
s without compromising local
security Security is protection from, or resilience against, potential harm (or other unwanted coercive change) caused by others, by restraining the freedom of others to act. Beneficiaries (technically referents) of security may be of persons and social ...
. 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 an architectural port of the Linux kernel to its own system call interface, which enables multiple virtual Linux kernel-based operating systems (known as guests) to run as an application within a normal Linux system (know ...
; whereas in
NetBSD NetBSD is a free and open-source Unix operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is a ...
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 specialised, single address space machine image constructed by using library operating systems. A developer selects, from a modular stack, the minimal set of libraries which correspond to the OS constructs required for the appl ...
'' 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 In computer engineering, computer architecture is a description of the structure of a computer system made from component parts. It can sometimes be a high-level description that ignores details of the implementation. At a more detailed level, t ...
, 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 scien ...
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 (commonly abbreviated to 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, acc ...
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 no ...
's madvisemcontrol.


See also

*
user-mode Linux User-mode Linux (UML) is an architectural port of the Linux kernel to its own system call interface, which enables multiple virtual Linux kernel-based operating systems (known as guests) to run as an application within a normal Linux system (know ...
*
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

* * 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 {{Compu-stub