xref: /dflybsd-src/share/man/man7/vkernel.7 (revision 4af189959268204f4f5efd12b2b5b472f376eca1)
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