tcsh GPG_TTY note
[ikiwiki.git] / docs / newhandbook / vkernel / index.mdwn
index 69c8a5d..532fac3 100644 (file)
@@ -1,20 +1,12 @@
-
-
-
-
 # The DragonFly virtual kernels 
-
-
+[[!toc  levels=3]]
 
 ***Obtained from [vkernel(7)](http://leaf.dragonflybsd.org/cgi/web-man?command=vkernel&section=7) written by Sascha Wildner, added by Matthias Schmidt***
 
-
 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.
 
 The vkernel architecture allows for running DragonFly kernels in userland.
 
-
-
 ## Supported devices 
 
 A number of virtual device drivers exist to supplement the virtual kernel.
@@ -35,15 +27,8 @@ The vke driver supports up to 16 virtual network interfaces which are
 
 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.
 
-
-
-
-
-
 ## Setup a virtual kernel environment 
 
-
-
 A couple of steps are necessary in order to prepare the system to build and run a virtual kernel.
 
 ### Setting up the filesystem 
@@ -73,7 +58,6 @@ Assuming that you build your world before, you can populate the image now.  If y
     # cd etc
     # make distribution DESTDIR=/mnt
 
-
 Create a fstab file to let the vkernel find your image file.
 
     
@@ -81,19 +65,15 @@ Create a fstab file to let the vkernel find your image file.
     # echo '/dev/vkd0s0a      /       ufs     rw      1  1' >/mnt/etc/fstab
     # echo 'proc              /proc   procfs  rw      0  0' >>/mnt/etc/fstab
 
-
 Edit `/mnt/etc/ttys` and replace the console entry with the following line and turn off all other gettys.
 
     # console "/usr/libexec/getty Pc"         cons25  on  secure
 
-
 Then, unmount the disk.
 
     # umount /mnt
     # vnconfig -u vn0
 
-
-
 ### Compiling the virtual kernel 
 
 In order to compile a virtual kernel use the VKERNEL kernel configuration file residing in `/usr/src/sys/config` (or a configuration file derived thereof):
@@ -103,24 +83,16 @@ In order to compile a virtual kernel use the VKERNEL kernel configuration file r
     # make -DNO_MODULES buildkernel KERNCONF=VKERNEL
     # make -DNO_MODULES installkernel KERNCONF=VKERNEL DESTDIR=/var/vkernel
 
-
-
 ### Enabling virtual kernel operation 
 
 A special sysctl(8), `vm.vkernel_enable`, must be set to enable vkernel operation:
 
     # sysctl vm.vkernel_enable=1
 
-
 To make this change permanent, edit `/etc/sysctl.conf`
 
-
-
-
 ## Setup networking 
 
-
-
 ### Configuring the network on the host system 
 
 In order to access a network interface of the host system from the vkernel, you must add the interface to a [bridge(4)](http://leaf.dragonflybsd.org/cgi/web-man?command=bridge&section=4) device which will then be passed to the `-I` option:
@@ -133,8 +105,6 @@ In order to access a network interface of the host system from the vkernel, you
     # ifconfig bridge0 addm re0       # assuming re0 is the host's interface
     # ifconfig bridge0 up
 
-
-
  **Note** : You have to change `re0` to the interface of your host machine.
 
  
@@ -142,15 +112,10 @@ In order to access a network interface of the host system from the vkernel, you
  
 ## Run a virtual kernel 
 
-
-
 Finally, the virtual kernel can be run:
 
     # cd /var/vkernel
-    # ./boot/kernel -m 64m -r /var/vkernel/rootimg.01 -I auto:bridge0
+    # ./boot/kernel/kernel -m 64m -r /var/vkernel/rootimg.01 -I auto:bridge0
 
 You can issue the reboot(8), halt(8), or shutdown(8) commands from inside a virtual kernel.  After doing a clean shutdown the reboot(8) command will re-exec the virtual kernel binary while the other two will cause the virtual kernel to exit.
 
-
-
-