(no commit message)
[ikiwiki.git] / docs / user / vKernelOverview.mdwn
1 ## The DragonFly virtual kernels 
2
3
4
5 ***Obtained from [vkernel(7)](http://leaf.dragonflybsd.org/cgi/web-man?command=vkernel&section=7) written by Sascha Wildner, added by Matthias Schmidt***
6
7
8 The idea behind the development of the vkernel architecture was to find an elegant solution to debugging of the kernel and its components. It eases debugging, as it allows for a virtual kernel being loaded in userland and hence debug it without affecting the real kernel itself. By being able to load it on a running system it also removes the need for reboots between kernel compiles.
9
10 The vkernel architecture allows for running DragonFly kernels in userland.
11
12
13
14 ### Supported devices 
15
16 A number of virtual device drivers exist to supplement the virtual kernel.
17
18
19
20 #### Disk device 
21
22 The vkd driver allows for up to 16 [vn(4)](http://leaf.dragonflybsd.org/cgi/web-man?command=vn&section=4) based disk devices.  The root device will be `vkd0`.
23
24 #### CD-ROM device 
25
26 The vcd driver allows for up to 16 virtual CD-ROM devices.  Basically this is a read only `vkd` device with a block size of 2048.
27
28 #### Network interface 
29
30 The vke driver supports up to 16 virtual network interfaces which are
31
32 associated with [tap(4)](http://leaf.dragonflybsd.org/cgi/web-man?command=tap&section=4) devices on the host.  For each `vke` device, the per-interface read only [sysctl(3)](http://leaf.dragonflybsd.org/cgi/web-man?command=sysctl&section=3) variable `hw.vkeX.tap_unit` holds the unit number of the associated [tap(4)](http://leaf.dragonflybsd.org/cgi/web-man?command=tap&section=4) device.
33
34