--- wikisrc/ports/xen/howto.mdwn 2014/12/27 00:15:40 1.55 +++ wikisrc/ports/xen/howto.mdwn 2014/12/27 15:46:47 1.59 @@ -2,17 +2,17 @@ Introduction ============ [![[Xen -screenshot]](http://www.netbsd.org/gallery/in-Action/hubertf-xens.png)](../../gallery/in-Action/hubertf-xen.png) +screenshot]](http://www.netbsd.org/gallery/in-Action/hubertf-xens.png)](http://www.netbsd.org/gallery/in-Action/hubertf-xen.png) -Xen is a virtual machine monitor or hypervisor for x86 hardware +Xen is a hypervisor (or virtual machine monitor) for x86 hardware (i686-class or higher), which supports running multiple guest -operating systems on a single physical machine. With Xen, one uses -the Xen kernel to control the CPU, memory and console, a dom0 -operating system which mediates access to other hardware (e.g., disks, -network, USB), and one or more domU operating systems which operate in -an unprivileged virtualized environment. IO requests from the domU -systems are forwarded by the hypervisor (Xen) to the dom0 to be -fulfilled. +operating systems on a single physical machine. Xen is a Type 1 or +bare-metal hypervisor; one uses the Xen kernel to control the CPU, +memory and console, a dom0 operating system which mediates access to +other hardware (e.g., disks, network, USB), and one or more domU +operating systems which operate in an unprivileged virtualized +environment. IO requests from the domU systems are forwarded by the +hypervisor (Xen) to the dom0 to be fulfilled. Xen supports two styles of guests. The original is Para-Virtualized (PV) which means that the guest OS does not attempt to access hardware @@ -339,8 +339,8 @@ For 4.1 (and thus xm; xl is believed not xencommons=YES xend=YES -TODO: Explain why if xm is preferred on 4.1, rc.d/xendomains has xl. -Or fix the package. +(If you are using xentools41 from before 2014-12-26, change +rc.d/xendomains to use xm rather than xl.) For 4.2 with xm, add to rc.conf @@ -531,6 +531,8 @@ anyplace, reasonable places to store dom (so they are near the dom0 kernel), in /usr/pkg/etc/xen (near the config files), or in /u0/xen (where the vdisks are). +Note that loading the domU kernel from the dom0 implies that boot +blocks, /boot, /boot.cfg, and so on are all ignored in the domU. See the VPS section near the end for discussion of alternate ways to obtain domU kernels. @@ -866,19 +868,37 @@ npf, run IPsec, or any other reason why their kernel. One approach is to have an adminstrative interface to upload a kernel, -or to select from a prepopulated list. +or to select from a prepopulated list. Other approaches are py-grub +(deprecated) and pvgrub, which are ways to have a bootloader obtain a +kernel from the domU filesystem. This is closer to a regular physical +computer, where someone who controls a machine can replace the kernel. + +py-grub +------- + +py-grub runs in the dom0 and looks into the domU filesystem. This +implies that the domU must have a kernel in a filesystem in a format +known to py-grub. As of 2014, py-grub seems to be of mostly historical interest. -Otehr approaches are pvgrub and py-grub, which are ways to start a -bootloader from the dom0 instead of the actual domU kernel, and for -that loader to then load a kernel from the domU filesystem. This is -closer to a regular physical computer, where someone who controls a -machine can replace the kernel. +pvgrub +------ + +pvgrub is a version of grub that uses PV operations instead of BIOS +calls. It is booted from the dom0 as the domU kernel, and then reads +/grub/menu.lst and loads a kernel from the domU filesystem. + +[prgmr.com](http://prgmr.com/) uses this approach to let users choose +their own operating system and kernel. See then [prgmr.com NetBSD +HOWTO](http://wiki.prgmr.com/mediawiki/index.php/NetBSD_as_a_DomU). + +Typically one has an ext2 or FAT partition for the kernel, so that +grub can understand it, which leads to /netbsd not being the actual +kernel. One must remember to update the special boot partiion. -prmgr and pvgrub ----------------- +Amazon +------ -TODO: Perhaps reference panix, prmgr, amazon as interesting examples. -Explain what prmgr does. +TODO: add link to NetBSD amazon howto. Using npf --------- @@ -886,5 +906,6 @@ Using npf In standard kernels, npf is a module, and thus cannot be loadeed in a DOMU kernel. -TODO: explain how to compile npf into a custom kernel, answering: +TODO: explain how to compile npf into a custom kernel, answering (but +note that the problem was caused by not booting the right kernel): http://mail-index.netbsd.org/netbsd-users/2014/12/26/msg015576.html