--- wikisrc/ports/xen/howto.mdwn 2020/11/15 14:37:20 1.181 +++ wikisrc/ports/xen/howto.mdwn 2020/11/15 14:47:55 1.182 @@ -8,7 +8,28 @@ systems which operate in an unprivileged from the domU systems are forwarded by the Xen hypervisor to the dom0 to be fulfilled. -Xen supports different styles of guests; see [PV on HVM](https://wiki.xen.org/wiki/PV_on_HVM) and [PVH(v2)](https://wiki.xenproject.org/wiki/PVH_(v2\)_Domu) for upstream documentation. +This HOWTO presumes a basic familiarity with the Xen system +architecture, with installing NetBSD on amd64 hardware, and with +installing software from pkgsrc. See also the [Xen +website](http://www.xenproject.org/). + +[[!toc]] + +# Overview: Versions of Xen, Styles, NetBSD + +The basic concept of Xen is that the hypervisor (xenkernel) runs on +the hardware, and runs a privileged domain ("dom0") that can access +disks/networking/etc. One then runs additonal unprivileged domains +(each a "domU"), presumably to do something useful. + +This HOWTO addresses how to run a NetBSD dom0 (and hence also build +xen itself). It also addresses how to run domUs in that environment, +and how to deal with having a domU in a Xen environment run by someone +else and/or not running NetBSD. + +## Guest Styles + +Xen supports different styles of guests. [[!table data=""" Style of guest |Supported by NetBSD @@ -21,6 +42,7 @@ PVH |current-only (domU, dom0 not yet) In Para-Virtualized (PV) mode, the guest OS does not attempt to access hardware directly, but instead makes hypercalls to the hypervisor; PV guests must be specifically coded for Xen. +See [PV](https://wiki.xen.org/wiki/Paravirtualization_(PV\)). In HVM mode, no guest modification is required; however, hardware support is required, such as VT-x on Intel CPUs and SVM on AMD CPUs. @@ -28,27 +50,33 @@ The dom0 runs qemu to emulate hardware. In PVHVM mode, the guest runs as HVM, but additionally can use PV drivers for efficiency. +See [PV on HVM](https://wiki.xen.org/wiki/PV_on_HVM). There have been two PVH modes: original PVH and PVHv2. Original PVH was based on PV mode and is no longer relevant at all. PVHv2 is basically lightweight HVM with PV drivers. A critical feature of it is that qemu is not needed; the hypervisor can do the emulation that is required. Thus, a dom0 can be PVHv2. - The source code uses PVH and config files use pvh; this refers to PVHv2. +See [PVH(v2)](https://wiki.xenproject.org/wiki/PVH_(v2\)_Domu). + -At boot, the dom0 kernel is loaded as a module with Xen as the kernel. +At system boot, the dom0 kernel is loaded as a module with Xen as the kernel. The dom0 can start one or more domUs. (Booting is explained in detail in the dom0 section.) -This HOWTO presumes a basic familiarity with the Xen system -architecture, with installing NetBSD on i386/amd64 hardware, and with -installing software from pkgsrc. See also the [Xen -website](http://www.xenproject.org/). +## CPU Architecture -[[!toc]] +Xen runs on x86_64 hardware (the NetBSD amd64 port). -# Versions and Support +There is a concept of Xen running on ARM, but there are no reports of this working with NetBSD. + +The dom0 system should be amd64. (Instructions for i386PAE dom0 have been removed from the HOWTO.) + +The domU can be i386PAE or amd64. +i386PAE at one point was considered as [faster](https://lists.xen.org/archives/html/xen-devel/2012-07/msg00085.html) than amd64. + +## Xen Versions In NetBSD, Xen is provided in pkgsrc, via matching pairs of packages xenkernel and xentools. We will refer only to the kernel versions, @@ -79,16 +107,6 @@ because the hypercall interface has rema Older Xen had a python-based management tool called xm, now replaced by xl. -## Architecture - -Xen 4.5 and later runs on x86_64 hardware (the NetBSD amd64 port). -There is a concept of Xen running on ARM, but there are no reports of this working with NetBSD. - -The dom0 system should be amd64. (Instructions for i386PAE dom0 have been removed from the HOWTO.) - -The domU can be i386PAE or amd64. -i386PAE at one point was considered as [faster](https://lists.xen.org/archives/html/xen-devel/2012-07/msg00085.html) than amd64. - # Creating a dom0 In order to install a NetBSD as a dom0, one must first install a normal