1*4af18995SSascha Wildner.\" 2*4af18995SSascha Wildner.\" Copyright (c) 2003, 2004, 2005, 2006, 2007 3*4af18995SSascha Wildner.\" The DragonFly Project. All rights reserved. 4*4af18995SSascha Wildner.\" 5*4af18995SSascha Wildner.\" Redistribution and use in source and binary forms, with or without 6*4af18995SSascha Wildner.\" modification, are permitted provided that the following conditions 7*4af18995SSascha Wildner.\" are met: 8*4af18995SSascha Wildner.\" 9*4af18995SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright 10*4af18995SSascha Wildner.\" notice, this list of conditions and the following disclaimer. 11*4af18995SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright 12*4af18995SSascha Wildner.\" notice, this list of conditions and the following disclaimer in 13*4af18995SSascha Wildner.\" the documentation and/or other materials provided with the 14*4af18995SSascha Wildner.\" distribution. 15*4af18995SSascha Wildner.\" 3. Neither the name of The DragonFly Project nor the names of its 16*4af18995SSascha Wildner.\" contributors may be used to endorse or promote products derived 17*4af18995SSascha Wildner.\" from this software without specific, prior written permission. 18*4af18995SSascha Wildner.\" 19*4af18995SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20*4af18995SSascha Wildner.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21*4af18995SSascha Wildner.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 22*4af18995SSascha Wildner.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 23*4af18995SSascha Wildner.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 24*4af18995SSascha Wildner.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, 25*4af18995SSascha Wildner.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 26*4af18995SSascha Wildner.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 27*4af18995SSascha Wildner.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28*4af18995SSascha Wildner.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 29*4af18995SSascha Wildner.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30*4af18995SSascha Wildner.\" SUCH DAMAGE. 31*4af18995SSascha Wildner.\" 32*4af18995SSascha Wildner.\" $DragonFly: src/share/man/man7/vkernel.7,v 1.1 2007/01/08 08:55:44 swildner Exp $ 33*4af18995SSascha Wildner.\" 34*4af18995SSascha Wildner.Dd January 8, 2007 35*4af18995SSascha Wildner.Dt VKERNEL 7 36*4af18995SSascha Wildner.Os 37*4af18995SSascha Wildner.Sh NAME 38*4af18995SSascha Wildner.Nm vkernel 39*4af18995SSascha Wildner.Nd virtual kernel architecture 40*4af18995SSascha Wildner.Sh SYNOPSIS 41*4af18995SSascha Wildner.Pa /usr/obj/usr/src/sys/VKERNEL/kernel.debug 42*4af18995SSascha Wildner.Op Fl e Ar environment 43*4af18995SSascha Wildner.\".Op Fl i Ar file 44*4af18995SSascha Wildner.Op Fl m Ar size 45*4af18995SSascha Wildner.Op Fl r Ar file 46*4af18995SSascha Wildner.Op Fl v 47*4af18995SSascha Wildner.Sh DESCRIPTION 48*4af18995SSascha WildnerThe 49*4af18995SSascha Wildner.Nm 50*4af18995SSascha Wildnerarchitecture allows for running 51*4af18995SSascha Wildner.Dx 52*4af18995SSascha Wildnerkernels in userland. 53*4af18995SSascha Wildner.Pp 54*4af18995SSascha WildnerThe following options are available: 55*4af18995SSascha Wildner.Bl -tag -width ".Fl m Ar size" 56*4af18995SSascha Wildner.It Fl e Ar environment 57*4af18995SSascha WildnerSpecify an to be used by the kernel. 58*4af18995SSascha WildnerThe 59*4af18995SSascha Wildner.Ar environment 60*4af18995SSascha Wildnerargument is a string of the form 61*4af18995SSascha Wildner.Li name=value:name=value:... 62*4af18995SSascha Wildner.\".It Fl i Ar file 63*4af18995SSascha Wildner.\"Specify a memory image 64*4af18995SSascha Wildner.\".Ar file 65*4af18995SSascha Wildner.\"to be used by the kernel. 66*4af18995SSascha Wildner.It Fl m Ar size 67*4af18995SSascha WildnerSpecify the amount of memory to be used by the kernel in bytes, 68*4af18995SSascha Wildner.Cm K 69*4af18995SSascha Wildner(kilobytes), 70*4af18995SSascha Wildner.Cm M 71*4af18995SSascha Wildner(megabytes) or 72*4af18995SSascha Wildner.Cm G 73*4af18995SSascha Wildner(gigabytes). 74*4af18995SSascha WildnerLowercase version of 75*4af18995SSascha Wildner.Cm K , M , 76*4af18995SSascha Wildnerand 77*4af18995SSascha Wildner.Cm G 78*4af18995SSascha Wildnerare allowed. 79*4af18995SSascha Wildner.It Fl r Ar file 80*4af18995SSascha WildnerSpecify the root image 81*4af18995SSascha Wildner.Ar file 82*4af18995SSascha Wildnerto be used by the kernel. 83*4af18995SSascha WildnerSee 84*4af18995SSascha Wildner.Sx CONFIGURING AND RUNNING VIRTUAL KERNELS 85*4af18995SSascha Wildnerfor further information on how to prepare a root image. 86*4af18995SSascha Wildner.It Fl v 87*4af18995SSascha WildnerTurn on verbose booting. 88*4af18995SSascha Wildner.El 89*4af18995SSascha Wildner.Sh CONFIGURING AND RUNNING VIRTUAL KERNELS 90*4af18995SSascha WildnerA couple of steps are necessary in order to prepare the system to build and 91*4af18995SSascha Wildnerrun a virtual kernel. 92*4af18995SSascha Wildner.Ss Setting up the filesystem 93*4af18995SSascha WildnerThe 94*4af18995SSascha Wildner.Nm 95*4af18995SSascha Wildnerarchitecture needs a number of files which reside in 96*4af18995SSascha Wildner.Pa /var/vkernel . 97*4af18995SSascha WildnerSince these files tend to get rather big and the 98*4af18995SSascha Wildner.Pa /var 99*4af18995SSascha Wildnerpartition is usually of limited size, we recommend the directory to be 100*4af18995SSascha Wildnercreated in the 101*4af18995SSascha Wildner.Pa /home 102*4af18995SSascha Wildnerpartition with a link to it in 103*4af18995SSascha Wildner.Pa /var : 104*4af18995SSascha Wildner.Bd -literal -offset indent 105*4af18995SSascha Wildnermkdir /home/var.vkernel 106*4af18995SSascha Wildnerln -s /home/var.vkernel /var/vkernel 107*4af18995SSascha Wildner.Ed 108*4af18995SSascha Wildner.Pp 109*4af18995SSascha WildnerNext, a filesystem image to be used by the virtual kernel has to be 110*4af18995SSascha Wildnercreated: 111*4af18995SSascha Wildner.Bd -literal -offset indent 112*4af18995SSascha Wildnerdd if=/dev/zero of=/var/vkernel/rootimg.01 bs=1m count=2048 113*4af18995SSascha Wildnervnconfig -c -s labels vn0 /var/vkernel/rootimg.01 114*4af18995SSascha Wildnerdisklabel -r -w vn0 auto 115*4af18995SSascha Wildner(edit the label to create a vn0a partition) 116*4af18995SSascha Wildnernewfs /dev/vn0a 117*4af18995SSascha Wildnermount /dev/vn0a /mnt 118*4af18995SSascha Wildnercpdup / /mnt 119*4af18995SSascha Wildnerumount /mnt 120*4af18995SSascha Wildnervnconfig -u vn0 121*4af18995SSascha Wildner.Ed 122*4af18995SSascha Wildner.Ss Compiling the virtual kernel 123*4af18995SSascha WildnerIn order to compile a virtual kernel use the 124*4af18995SSascha Wildner.Li VKERNEL 125*4af18995SSascha Wildnerkernel configuration file residing in 126*4af18995SSascha Wildner.Pa /usr/src/sys/config 127*4af18995SSascha Wildner(or a configuration file derived thereof): 128*4af18995SSascha Wildner.Bd -literal -offset indent 129*4af18995SSascha Wildnercd /usr/src 130*4af18995SSascha Wildnermake buildkernel KERNCONF=VKERNEL 131*4af18995SSascha Wildner.Ed 132*4af18995SSascha Wildner.Ss Enabling virtual kernel operation 133*4af18995SSascha WildnerA special 134*4af18995SSascha Wildner.Xr sysctl 8 , 135*4af18995SSascha Wildner.Va vm.vkernel_enable , 136*4af18995SSascha Wildnermust be set to enable 137*4af18995SSascha Wildner.Nm 138*4af18995SSascha Wildneroperation: 139*4af18995SSascha Wildner.Bd -literal -offset indent 140*4af18995SSascha Wildnersysctl vm.vkernel_enable=1 141*4af18995SSascha Wildner.Ed 142*4af18995SSascha Wildner.Ss Running the kernel 143*4af18995SSascha WildnerFinally, the virtual kernel can be run: 144*4af18995SSascha Wildner.Bd -literal -offset indent 145*4af18995SSascha Wildnercd /usr/obj/usr/src/sys/VKERNEL 146*4af18995SSascha Wildner\&./kernel.debug -m 64m -r /var/vkernel/rootimg.01 147*4af18995SSascha Wildner.Ed 148*4af18995SSascha Wildner.Sh SEE ALSO 149*4af18995SSascha Wildner.Xr build 7 150*4af18995SSascha Wildner.Sh HISTORY 151*4af18995SSascha WildnerVirtual kernels were introduced in 152*4af18995SSascha Wildner.Dx 1.7 . 153*4af18995SSascha Wildner.Sh AUTHORS 154*4af18995SSascha Wildner.An -nosplit 155*4af18995SSascha Wildner.An Matt Dillon 156*4af18995SSascha Wildnerthought up and implemented the 157*4af18995SSascha Wildner.Nm 158*4af18995SSascha Wildnerarchitecture. 159*4af18995SSascha WildnerThis manual page was written by 160*4af18995SSascha Wildner.An Sascha Wildner . 161*4af18995SSascha Wildner.Sh BUGS 162*4af18995SSascha WildnerVirtual kernels are not yet fully operational. 163