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 daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
virtualisation 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. Kerne ...
, 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 fil ...
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 comp ...
s without compromising local
security" \n\n\nsecurity.txt is a proposed standard for websites' security information that is meant to allow security researchers to easily report security vulnerabilities. The standard prescribes a text file called \"security.txt\" in the well known locat ...
. 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 (kno ...
; 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 device driver, 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 ...
infrastructure. The ''virtual kernel'' concept is nearly the exact opposite of the '' unikernel'' 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 device driver, 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 ...
, 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, the ...
, comparable to i386 or amd64, and, according to Matthew Dillon 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 n ...
'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 (kno ...
*
rump kernel The NetBSD rump kernel is the first implementation of the "anykernel" concept where device driver, 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 ...


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