Plan 9 on Xen 3 This is an initial port of Plan 9 to Xen 3. It has been tested with the stable 3.0.2, 3.0.3 and 3.0.4 releases of Xen, and has been seen to boot on Xen 3.2.1 and XenServer 5.5. It should work with other Xen 3 versions, if recompiled with the corresponding xen/public include files (see below). Kernel source is in 9/xen3 - to build a new kernel, copy or bind into /sys/src/9/xen3, copy or bind the xen/include/public directory from the Xen source distribution (or the /usr/include/xen directory from the Xen binary distribution) into /sys/src/9/xen3/xen-public, and mk. There are also optional updates to two files in /sys/src/9/port, which will reduce the number of alarming error messages if your Xen host system is built with 'debug=y'. There are some pre-built kernels here. 9xeninst.gz can be used to install from a standard Plan 9 ISO image; for instructions see see http://plan9.bell-labs.com/wiki/plan9/installing_in_xen_3.0 9xenpcf.gz or 9xenpccpuf.gz can then be used to boot a Plan 9 terminal or cpu server respectively using the installed file system. They should also work with the pre-built fossil filesystem image which was made for Xen 2.0 -- see /n/sources/xen/xen2/plan9root.fossil.bz2 Disks (or pseudo-disk files) must be exported from the Xen host as hd[a-d] or sd[a-h], with the obvious mapping into Plan 9 names sd[CD][01] or sd0[0-7] respectively. Any number (within reason) of virtual network interfaces may be exported. To configure the network when Plan 9 boots, you need to add an ip/ipconfig command to the beginning of the /bin/termrc or /bin/cpurc script. If your Xen hypervisor runs in PAE mode, you will need a PAE version of the Plan 9 kernel. Just add 'PAE=yes' to the mk command, or use the pre-built versions named *-pae.gz.