xref: /dflybsd-src/share/man/man7/vkernel.7 (revision 62aea38e85151bd05f4b34183d267bdcd197570a)
14af18995SSascha Wildner.\"
298b2ba80SSascha Wildner.\" Copyright (c) 2006, 2007
34af18995SSascha Wildner.\"	The DragonFly Project.  All rights reserved.
44af18995SSascha Wildner.\"
54af18995SSascha Wildner.\" Redistribution and use in source and binary forms, with or without
64af18995SSascha Wildner.\" modification, are permitted provided that the following conditions
74af18995SSascha Wildner.\" are met:
84af18995SSascha Wildner.\"
94af18995SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright
104af18995SSascha Wildner.\"    notice, this list of conditions and the following disclaimer.
114af18995SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright
124af18995SSascha Wildner.\"    notice, this list of conditions and the following disclaimer in
134af18995SSascha Wildner.\"    the documentation and/or other materials provided with the
144af18995SSascha Wildner.\"    distribution.
154af18995SSascha Wildner.\" 3. Neither the name of The DragonFly Project nor the names of its
164af18995SSascha Wildner.\"    contributors may be used to endorse or promote products derived
174af18995SSascha Wildner.\"    from this software without specific, prior written permission.
184af18995SSascha Wildner.\"
194af18995SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
204af18995SSascha Wildner.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
214af18995SSascha Wildner.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
224af18995SSascha Wildner.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
234af18995SSascha Wildner.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
244af18995SSascha Wildner.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
254af18995SSascha Wildner.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
264af18995SSascha Wildner.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
274af18995SSascha Wildner.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
284af18995SSascha Wildner.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
294af18995SSascha Wildner.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
304af18995SSascha Wildner.\" SUCH DAMAGE.
314af18995SSascha Wildner.\"
32c009fcfaSThomas Nikolajsen.\" $DragonFly: src/share/man/man7/vkernel.7,v 1.43 2008/09/02 22:41:19 thomas Exp $
334af18995SSascha Wildner.\"
34eed435ddSStathis Kamperis.Dd March 27, 2009
354af18995SSascha Wildner.Dt VKERNEL 7
364af18995SSascha Wildner.Os
374af18995SSascha Wildner.Sh NAME
380592e24dSSascha Wildner.Nm vkernel ,
3998b2ba80SSascha Wildner.Nm vcd ,
400592e24dSSascha Wildner.Nm vkd ,
410592e24dSSascha Wildner.Nm vke
424af18995SSascha Wildner.Nd virtual kernel architecture
434af18995SSascha Wildner.Sh SYNOPSIS
4465d7306bSSascha Wildner.Cd "platform vkernel"
4598b2ba80SSascha Wildner.Cd "device vcd"
46c8e7d028SSascha Wildner.Cd "device vkd"
47c8e7d028SSascha Wildner.Cd "device vke"
48c8e7d028SSascha Wildner.Pp
49c009fcfaSThomas Nikolajsen.Pa /var/vkernel/boot/kernel
5003071031SSascha Wildner.Op Fl sUv
51a72d8a9fSMatthew Dillon.Op Fl c Ar file
5209b03fffSSascha Wildner.Op Fl e Ar name Ns = Ns Li value : Ns Ar name Ns = Ns Li value : Ns ...
53dd54cb3aSSascha Wildner.Op Fl i Ar file
5409b03fffSSascha Wildner.Op Fl I Ar interface Ns Op Ar :address1 Ns Oo Ar :address2 Oc Ns Oo Ar /netmask Oc
55702acf06SJoe Talbott.Op Fl l Ar cpulock
564af18995SSascha Wildner.Op Fl m Ar size
57c5b0b0baSMatthew Dillon.Op Fl n Ar numcpus
58b02b4170SMatthew Dillon.Op Fl p Ar file
594af18995SSascha Wildner.Op Fl r Ar file
604af18995SSascha Wildner.Sh DESCRIPTION
614af18995SSascha WildnerThe
624af18995SSascha Wildner.Nm
634af18995SSascha Wildnerarchitecture allows for running
644af18995SSascha Wildner.Dx
654af18995SSascha Wildnerkernels in userland.
664af18995SSascha Wildner.Pp
674af18995SSascha WildnerThe following options are available:
684af18995SSascha Wildner.Bl -tag -width ".Fl m Ar size"
69a72d8a9fSMatthew Dillon.It Fl c Ar file
707834fbccSSascha WildnerSpecify a readonly CD-ROM image
71a72d8a9fSMatthew Dillon.Ar file
72a72d8a9fSMatthew Dillonto be used by the kernel, with the first
73a72d8a9fSMatthew Dillon.Fl c
74a72d8a9fSMatthew Dillonoption defining
75a72d8a9fSMatthew Dillon.Li vcd0 ,
76a72d8a9fSMatthew Dillonthe second one
77a72d8a9fSMatthew Dillon.Li vcd1 ,
78*62aea38eSSascha Wildnerand so on.
79*62aea38eSSascha WildnerThe first
80a72d8a9fSMatthew Dillon.Fl r
81a72d8a9fSMatthew Dillonor
82a72d8a9fSMatthew Dillon.Fl c
83a72d8a9fSMatthew Dillonoption specified on the command line will be the boot disk.
847834fbccSSascha WildnerThe CD9660 filesystem is assumed when booting from this media.
8509b03fffSSascha Wildner.It Fl e Ar name Ns = Ns Li value : Ns Ar name Ns = Ns Li value : Ns ...
8609b03fffSSascha WildnerSpecify an environment to be used by the kernel.
87dd54cb3aSSascha Wildner.It Fl i Ar file
88dd54cb3aSSascha WildnerSpecify a memory image
89dd54cb3aSSascha Wildner.Ar file
90dd54cb3aSSascha Wildnerto be used by the virtual kernel.
91dd54cb3aSSascha WildnerIf no
92dd54cb3aSSascha Wildner.Fl i
93dd54cb3aSSascha Wildneroption is given, the kernel will generate a name of the form
94dd54cb3aSSascha Wildner.Pa /var/vkernel/memimg.XXXXXX ,
95dd54cb3aSSascha Wildnerwith the trailing
96dd54cb3aSSascha Wildner.Ql X Ns s
97dd54cb3aSSascha Wildnerbeing replaced by a sequential number, e.g.\&
98dd54cb3aSSascha Wildner.Pa memimg.000001 .
9909b03fffSSascha Wildner.It Fl I Ar interface Ns Op Ar :address1 Ns Oo Ar :address2 Oc Ns Oo Ar /netmask Oc
10009b03fffSSascha WildnerCreate a virtual network device, with the first
10109b03fffSSascha Wildner.Fl I
10209b03fffSSascha Wildneroption defining
1030592e24dSSascha Wildner.Li vke0 ,
10409b03fffSSascha Wildnerthe second one
1050592e24dSSascha Wildner.Li vke1 ,
10609b03fffSSascha Wildnerand so on.
10709b03fffSSascha Wildner.Pp
10809b03fffSSascha WildnerThe
10909b03fffSSascha Wildner.Ar interface
11009b03fffSSascha Wildnerargument is the name of a
11109b03fffSSascha Wildner.Xr tap 4
11209b03fffSSascha Wildnerdevice node.
11309b03fffSSascha WildnerThe
11409b03fffSSascha Wildner.Pa /dev/
11509b03fffSSascha Wildnerpath prefix does not have to be specified and will be automatically prepended.
11609b03fffSSascha WildnerSpecifying
11709b03fffSSascha Wildner.Cm auto
11809b03fffSSascha Wildnerwill pick the first unused
11909b03fffSSascha Wildner.Xr tap 4
12009b03fffSSascha Wildnerdevice.
12109b03fffSSascha Wildner.Pp
12209b03fffSSascha WildnerThe
12309b03fffSSascha Wildner.Ar address1
12409b03fffSSascha Wildnerand
12509b03fffSSascha Wildner.Ar address2
12609b03fffSSascha Wildnerarguments are the IP addresses of the
12709b03fffSSascha Wildner.Xr tap 4
12809b03fffSSascha Wildnerand
1290592e24dSSascha Wildner.Nm vke
13009b03fffSSascha Wildnerinterfaces.
13109b03fffSSascha WildnerOptionally,
13209b03fffSSascha Wildner.Ar address1
13309b03fffSSascha Wildnermay be of the form
13409b03fffSSascha Wildner.Li bridge Ns Em X
13509b03fffSSascha Wildnerin which case the
13609b03fffSSascha Wildner.Xr tap 4
13709b03fffSSascha Wildnerinterface is added to the specified
13809b03fffSSascha Wildner.Xr bridge 4
13909b03fffSSascha Wildnerinterface.
140a8cc122dSSascha WildnerThe
141a8cc122dSSascha Wildner.Nm vke
142a8cc122dSSascha Wildneraddress is not assigned until the interface is brought up in the guest.
14309b03fffSSascha Wildner.Pp
14409b03fffSSascha WildnerThe
14509b03fffSSascha Wildner.Ar netmask
14609b03fffSSascha Wildnerargument applies to all interfaces for which an address is specified.
147702acf06SJoe Talbott.It Fl l Ar cpulock
148702acf06SJoe TalbottSpecify which, if any, real CPUs to lock virtual CPUs to.
149702acf06SJoe Talbott.Ar cpulock
150702acf06SJoe Talbottis one of
151702acf06SJoe Talbott.Cm any ,
15226ea2793SSascha Wildner.Cm map Ns Op Ns , Ns Ar startCPU ,
15326ea2793SSascha Wildneror
15426ea2793SSascha Wildner.Ar CPU .
155702acf06SJoe Talbott.Pp
156702acf06SJoe Talbott.Cm any
15726ea2793SSascha Wildnerdoes not map virtual CPUs to real CPUs.
15826ea2793SSascha WildnerThis is the default.
159702acf06SJoe Talbott.Pp
160702acf06SJoe Talbott.Cm map Ns Op Ns , Ns Ar startCPU
161702acf06SJoe Talbottmaps each virtual CPU to a real CPU starting with real CPU 0 or
162702acf06SJoe Talbott.Ar startCPU
163702acf06SJoe Talbottif specified.
164702acf06SJoe Talbott.Pp
165702acf06SJoe Talbott.Ar CPU
16626ea2793SSascha Wildnerlocks all virtual CPUs to the real CPU specified by
16726ea2793SSascha Wildner.Ar CPU .
1684af18995SSascha Wildner.It Fl m Ar size
1694af18995SSascha WildnerSpecify the amount of memory to be used by the kernel in bytes,
1704af18995SSascha Wildner.Cm K
1713cea05a4SSascha Wildner.Pq kilobytes ,
1724af18995SSascha Wildner.Cm M
1733cea05a4SSascha Wildner.Pq megabytes
1743cea05a4SSascha Wildneror
1754af18995SSascha Wildner.Cm G
1763cea05a4SSascha Wildner.Pq gigabytes .
17709b03fffSSascha WildnerLowercase versions of
1784af18995SSascha Wildner.Cm K , M ,
1794af18995SSascha Wildnerand
1804af18995SSascha Wildner.Cm G
1814af18995SSascha Wildnerare allowed.
182c5b0b0baSMatthew Dillon.It Fl n Ar numcpus
1838cf87c92SSascha WildnerSpecify the number of CPUs you wish to emulate.
18443cfb771SSascha WildnerUp to 16 CPUs are supported.
1858cf87c92SSascha WildnerThe virtual kernel must be built with
1868cf87c92SSascha Wildner.Cd options SMP
1878cf87c92SSascha Wildnerto use this option and will default to 2 CPUs unless otherwise specified.
188b02b4170SMatthew Dillon.It Fl p Ar file
189b02b4170SMatthew DillonSpecify a file in which to store the process ID.
190b02b4170SMatthew DillonA warning is issued if this file cannot be opened for writing.
1914af18995SSascha Wildner.It Fl r Ar file
192a72d8a9fSMatthew DillonSpecify a R/W disk image
1934af18995SSascha Wildner.Ar file
194ec1a8a4dSSascha Wildnerto be used by the kernel, with the first
195ec1a8a4dSSascha Wildner.Fl r
196ec1a8a4dSSascha Wildneroption defining
1970592e24dSSascha Wildner.Li vkd0 ,
198ec1a8a4dSSascha Wildnerthe second one
1990592e24dSSascha Wildner.Li vkd1 ,
200*62aea38eSSascha Wildnerand so on.
201*62aea38eSSascha WildnerThe first
202a72d8a9fSMatthew Dillon.Fl r
203a72d8a9fSMatthew Dillonor
204a72d8a9fSMatthew Dillon.Fl c
205a72d8a9fSMatthew Dillonoption specified on the command line will be the boot disk.
206c8e7d028SSascha Wildner.It Fl s
207c8e7d028SSascha WildnerBoot into single-user mode.
20803071031SSascha Wildner.It Fl U
20903071031SSascha WildnerEnable writing to kernel memory and module loading.
21003071031SSascha WildnerBy default, those are disabled for security reasons.
2114af18995SSascha Wildner.It Fl v
2124af18995SSascha WildnerTurn on verbose booting.
2134af18995SSascha Wildner.El
2140592e24dSSascha Wildner.Sh DEVICES
2150592e24dSSascha WildnerA number of virtual device drivers exist to supplement the virtual kernel.
2160592e24dSSascha Wildner.Ss Disk device
2170592e24dSSascha WildnerThe
2180592e24dSSascha Wildner.Nm vkd
2190592e24dSSascha Wildnerdriver allows for up to 16
2200592e24dSSascha Wildner.Xr vn 4
2210592e24dSSascha Wildnerbased disk devices.
2220592e24dSSascha WildnerThe root device will be
2230592e24dSSascha Wildner.Li vkd0
2240592e24dSSascha Wildner(see
2250592e24dSSascha Wildner.Sx EXAMPLES
2260592e24dSSascha Wildnerfor further information on how to prepare a root image).
22798b2ba80SSascha Wildner.Ss CD-ROM device
22898b2ba80SSascha WildnerThe
22998b2ba80SSascha Wildner.Nm vcd
23098b2ba80SSascha Wildnerdriver allows for up to 16 virtual CD-ROM devices.
23198b2ba80SSascha WildnerBasically this is a read only
23298b2ba80SSascha Wildner.Nm vkd
23398b2ba80SSascha Wildnerdevice with a block size of 2048.
2340592e24dSSascha Wildner.Ss Network interface
2350592e24dSSascha WildnerThe
2360592e24dSSascha Wildner.Nm vke
2370592e24dSSascha Wildnerdriver supports up to 16 virtual network interfaces which are associated with
2380592e24dSSascha Wildner.Xr tap 4
2390592e24dSSascha Wildnerdevices on the host.
2400592e24dSSascha WildnerFor each
2410592e24dSSascha Wildner.Nm vke
2420592e24dSSascha Wildnerdevice, the per-interface read only
2430592e24dSSascha Wildner.Xr sysctl 3
2440592e24dSSascha Wildnervariable
2450592e24dSSascha Wildner.Va hw.vke Ns Em X Ns Va .tap_unit
2460592e24dSSascha Wildnerholds the unit number of the associated
2470592e24dSSascha Wildner.Xr tap 4
2480592e24dSSascha Wildnerdevice.
2491e4d9fd9SSascha Wildner.Sh SIGNALS
250bb195a01SMatthew DillonThe virtual kernel only enables
251bb195a01SMatthew Dillon.Dv SIGQUIT
252bb195a01SMatthew Dillonand
253bb195a01SMatthew Dillon.Dv SIGTERM
254bb195a01SMatthew Dillonwhile operating in regular console mode.
255bb195a01SMatthew DillonSending
2561e4d9fd9SSascha Wildner.Ql \&^\e
2571e4d9fd9SSascha Wildner.Pq Dv SIGQUIT
258bb195a01SMatthew Dillonto the virtual kernel causes the virtual kernel to enter its internal
2591e4d9fd9SSascha Wildner.Xr ddb 4
260bb195a01SMatthew Dillondebugger and re-enable all other terminal signals.
261bb195a01SMatthew DillonSending
262bb195a01SMatthew Dillon.Dv SIGTERM
263bb195a01SMatthew Dillonto the virtual kernel triggers a clean shutdown by passing a
264bb195a01SMatthew Dillon.Dv SIGUSR2
265bb195a01SMatthew Dillonto the virtual kernel's
266bb195a01SMatthew Dillon.Xr init 8
267bb195a01SMatthew Dillonprocess.
268974b26bfSSascha Wildner.Sh DEBUGGING
269974b26bfSSascha WildnerIt is possible to directly gdb the virtual kernel's process.
270974b26bfSSascha WildnerIt is recommended that you do a
271974b26bfSSascha Wildner.Ql handle SIGSEGV noprint
2724010bf94SNicolas Theryto ignore page faults processed by the virtual kernel itself and
273e7c2f376SNicolas Thery.Ql handle SIGUSR1 noprint
2744010bf94SNicolas Theryto ignore signals used for simulating inter-processor interrupts (SMP build
2754010bf94SNicolas Theryonly).
276a154d422SThomas Nikolajsen.Sh FILES
277a154d422SThomas Nikolajsen.Bl -tag -width ".It Pa /sys/config/VKERNEL" -compact
278a154d422SThomas Nikolajsen.It Pa /sys/config/VKERNEL
279a154d422SThomas Nikolajsendefault
280a154d422SThomas Nikolajsen.Nm
281a154d422SThomas Nikolajsenconfiguration file, for
282a154d422SThomas Nikolajsen.Xr config 8 .
283a154d422SThomas Nikolajsen.El
284c8e7d028SSascha Wildner.Sh EXAMPLES
2854af18995SSascha WildnerA couple of steps are necessary in order to prepare the system to build and
2864af18995SSascha Wildnerrun a virtual kernel.
2874af18995SSascha Wildner.Ss Setting up the filesystem
2884af18995SSascha WildnerThe
2894af18995SSascha Wildner.Nm
2904af18995SSascha Wildnerarchitecture needs a number of files which reside in
2914af18995SSascha Wildner.Pa /var/vkernel .
2924af18995SSascha WildnerSince these files tend to get rather big and the
2934af18995SSascha Wildner.Pa /var
2944af18995SSascha Wildnerpartition is usually of limited size, we recommend the directory to be
2954af18995SSascha Wildnercreated in the
2964af18995SSascha Wildner.Pa /home
2974af18995SSascha Wildnerpartition with a link to it in
2984af18995SSascha Wildner.Pa /var :
299c8e7d028SSascha Wildner.Bd -literal
300c009fcfaSThomas Nikolajsenmkdir -p /home/var.vkernel/boot
3014af18995SSascha Wildnerln -s /home/var.vkernel /var/vkernel
3024af18995SSascha Wildner.Ed
3034af18995SSascha Wildner.Pp
3044af18995SSascha WildnerNext, a filesystem image to be used by the virtual kernel has to be
305*62aea38eSSascha Wildnercreated and populated (assuming world has been built previously).
306*62aea38eSSascha WildnerIf the image is created on a UFS filesystem you might want to pre-zero it.
30749802d4eSMatthew DillonOn a HAMMER filesystem you should just truncate-extend to the image size
30849802d4eSMatthew Dillonas HAMMER does not re-use data blocks already present in the file.
309c8e7d028SSascha Wildner.Bd -literal
31049802d4eSMatthew Dillonvnconfig -c -s labels -S 2g -T vn0 /var/vkernel/rootimg.01
31158c55700SSascha Wildnerdisklabel -r -w vn0s0 auto
312c009fcfaSThomas Nikolajsendisklabel -e vn0s0	# add `a' partition with fstype `4.2BSD'
31358c55700SSascha Wildnernewfs /dev/vn0s0a
31458c55700SSascha Wildnermount /dev/vn0s0a /mnt
315c8e7d028SSascha Wildnercd /usr/src
316c8e7d028SSascha Wildnermake installworld DESTDIR=/mnt
317c8e7d028SSascha Wildnercd etc
318c8e7d028SSascha Wildnermake distribution DESTDIR=/mnt
3197a3238b8SMatthew Dillonecho '/dev/vkd0s0a	/	ufs	rw	1  1' >/mnt/etc/fstab
3207a3238b8SMatthew Dillonecho 'proc		/proc	procfs	rw	0  0' >>/mnt/etc/fstab
3217834fbccSSascha Wildner.Ed
3227834fbccSSascha Wildner.Pp
3237834fbccSSascha WildnerEdit
3247834fbccSSascha Wildner.Pa /mnt/etc/ttys
3257834fbccSSascha Wildnerand replace the
3267834fbccSSascha Wildner.Li console
3277834fbccSSascha Wildnerentry with the following line and turn off all other gettys.
3287834fbccSSascha Wildner.Bd -literal
3297834fbccSSascha Wildnerconsole	"/usr/libexec/getty Pc"		cons25	on  secure
3307834fbccSSascha Wildner.Ed
3317834fbccSSascha Wildner.Pp
332eed435ddSStathis KamperisReplace
333eed435ddSStathis Kamperis.Li \&Pc
334eed435ddSStathis Kamperiswith
335eed435ddSStathis Kamperis.Li al.Pc
336eed435ddSStathis Kamperisif you would like to automatically log in as root.
337eed435ddSStathis Kamperis.Pp
3387834fbccSSascha WildnerThen, unmount the disk.
3397834fbccSSascha Wildner.Bd -literal
3404af18995SSascha Wildnerumount /mnt
3414af18995SSascha Wildnervnconfig -u vn0
3424af18995SSascha Wildner.Ed
3434af18995SSascha Wildner.Ss Compiling the virtual kernel
3444af18995SSascha WildnerIn order to compile a virtual kernel use the
3454af18995SSascha Wildner.Li VKERNEL
3464af18995SSascha Wildnerkernel configuration file residing in
347a154d422SThomas Nikolajsen.Pa /sys/config
3484af18995SSascha Wildner(or a configuration file derived thereof):
349c8e7d028SSascha Wildner.Bd -literal
3504af18995SSascha Wildnercd /usr/src
35109b03fffSSascha Wildnermake -DNO_MODULES buildkernel KERNCONF=VKERNEL
35279b58aaeSMatthew Dillonmake -DNO_MODULES installkernel KERNCONF=VKERNEL DESTDIR=/var/vkernel
3534af18995SSascha Wildner.Ed
3544af18995SSascha Wildner.Ss Enabling virtual kernel operation
3554af18995SSascha WildnerA special
3564af18995SSascha Wildner.Xr sysctl 8 ,
3574af18995SSascha Wildner.Va vm.vkernel_enable ,
3584af18995SSascha Wildnermust be set to enable
3594af18995SSascha Wildner.Nm
3604af18995SSascha Wildneroperation:
361c8e7d028SSascha Wildner.Bd -literal
3624af18995SSascha Wildnersysctl vm.vkernel_enable=1
3634af18995SSascha Wildner.Ed
36409b03fffSSascha Wildner.Ss Configuring the network on the host system
36509b03fffSSascha WildnerIn order to access a network interface of the host system from the
36609b03fffSSascha Wildner.Nm ,
36709b03fffSSascha Wildneryou must add the interface to a
36809b03fffSSascha Wildner.Xr bridge 4
36909b03fffSSascha Wildnerdevice which will then be passed to the
37009b03fffSSascha Wildner.Fl I
37109b03fffSSascha Wildneroption:
37209b03fffSSascha Wildner.Bd -literal
37309b03fffSSascha Wildnerkldload if_bridge.ko
37409b03fffSSascha Wildnerkldload if_tap.ko
37509b03fffSSascha Wildnerifconfig bridge0 create
37609b03fffSSascha Wildnerifconfig bridge0 addm re0	# assuming re0 is the host's interface
37709b03fffSSascha Wildnerifconfig bridge0 up
37809b03fffSSascha Wildner.Ed
3794af18995SSascha Wildner.Ss Running the kernel
3804af18995SSascha WildnerFinally, the virtual kernel can be run:
381c8e7d028SSascha Wildner.Bd -literal
38279b58aaeSMatthew Dilloncd /var/vkernel
383c009fcfaSThomas Nikolajsen\&./boot/kernel -m 64m -r rootimg.01 -I auto:bridge0
3844af18995SSascha Wildner.Ed
385c8e7d028SSascha Wildner.Pp
38679b58aaeSMatthew DillonYou can issue the
38779b58aaeSMatthew Dillon.Xr reboot 8 ,
38879b58aaeSMatthew Dillon.Xr halt 8 ,
38979b58aaeSMatthew Dillonor
39079b58aaeSMatthew Dillon.Xr shutdown 8
39179b58aaeSMatthew Dilloncommands from inside a virtual kernel.
39279b58aaeSMatthew DillonAfter doing a clean shutdown the
393c8e7d028SSascha Wildner.Xr reboot 8
39479b58aaeSMatthew Dilloncommand will re-exec the virtual kernel binary while the other two will
39579b58aaeSMatthew Dilloncause the virtual kernel to exit.
39634caba04SMatthew Dillon.Sh BUILDING THE WORLD UNDER A VKERNEL
39734caba04SMatthew DillonThe virtual kernel platform does not have all the header files expected
39834caba04SMatthew Dillonby a world build, so the easiest thing to do right now is to specify a
39934caba04SMatthew Dillonpc32 target when building the world under a virtual kernel, like this:
40034caba04SMatthew Dillon.Bd -literal
40134caba04SMatthew Dillonvkernel# make MACHINE_PLATFORM=pc32 buildworld
40234caba04SMatthew Dillonvkernel# make MACHINE_PLATFORM=pc32 installworld
40334caba04SMatthew Dillon.Ed
40479b58aaeSMatthew Dillon.Sh CONFIGURATION FILES
40563568417SSascha WildnerYour virtual kernel is a complete
40663568417SSascha Wildner.Dx
40763568417SSascha Wildnersystem, but you might not want to run all the services a normal kernel runs.
40879b58aaeSMatthew DillonHere is what a typical virtual kernel's
40979b58aaeSMatthew Dillon.Pa /etc/rc.conf
41079b58aaeSMatthew Dillonfile looks like, with some additional possibilities commented out.
41179b58aaeSMatthew Dillon.Bd -literal
41279b58aaeSMatthew Dillonhostname="vkernel"
41379b58aaeSMatthew Dillonnetwork_interfaces="lo0 vke0"
41479b58aaeSMatthew Dillonifconfig_vke0="DHCP"
41579b58aaeSMatthew Dillonsendmail_enable="NO"
41679b58aaeSMatthew Dillon#syslog_enable="NO"
41766931b32SSascha Wildnerblanktime="NO"
41879b58aaeSMatthew Dillon.Ed
4194af18995SSascha Wildner.Sh SEE ALSO
42009b03fffSSascha Wildner.Xr bridge 4 ,
42109b03fffSSascha Wildner.Xr tap 4 ,
422c8e7d028SSascha Wildner.Xr vn 4 ,
423a154d422SThomas Nikolajsen.Xr sysctl.conf 5 ,
424c8e7d028SSascha Wildner.Xr build 7 ,
425c8e7d028SSascha Wildner.Xr disklabel 8 ,
42609b03fffSSascha Wildner.Xr ifconfig 8 ,
427dbfd168bSMatthew Dillon.Xr vknetd 8 ,
428cf4f0088SMatthew Dillon.Xr vknet 1 ,
429c8e7d028SSascha Wildner.Xr vnconfig 8
430c203b6f9SSascha Wildner.Rs
431c203b6f9SSascha Wildner.%A Aggelos Economopoulos
432c203b6f9SSascha Wildner.%D March 2007
433c203b6f9SSascha Wildner.%T "A Peek at the DragonFly Virtual Kernel"
434c203b6f9SSascha Wildner.Re
4354af18995SSascha Wildner.Sh HISTORY
4364af18995SSascha WildnerVirtual kernels were introduced in
4374af18995SSascha Wildner.Dx 1.7 .
4384af18995SSascha Wildner.Sh AUTHORS
4394af18995SSascha Wildner.An -nosplit
4404af18995SSascha Wildner.An Matt Dillon
4414af18995SSascha Wildnerthought up and implemented the
4424af18995SSascha Wildner.Nm
4430592e24dSSascha Wildnerarchitecture and wrote the
4440592e24dSSascha Wildner.Nm vkd
4450592e24dSSascha Wildnerdevice driver.
4460592e24dSSascha Wildner.An Sepherosa Ziehau
4470592e24dSSascha Wildnerwrote the
4480592e24dSSascha Wildner.Nm vke
4490592e24dSSascha Wildnerdevice driver.
4504af18995SSascha WildnerThis manual page was written by
4514af18995SSascha Wildner.An Sascha Wildner .
452