summaryrefslogtreecommitdiff
path: root/static/freebsd/man4/xen.4 3.html
blob: 9c05924ec08d69a7882e7424d66cb4dc3ec1e48e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<table class="head">
  <tr>
    <td class="head-ltitle">XEN(4)</td>
    <td class="head-vol">Device Drivers Manual</td>
    <td class="head-rtitle">XEN(4)</td>
  </tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">xen</code> &#x2014; <span class="Nd">Xen
    Hypervisor Support</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp">FreeBSD supports running both as a Xen guest and host on amd64
    hardware. Guest support is limited to HVM and PVH modes, while host support
    is limited to PVH mode only.</p>
<p class="Pp">Xen support is built by default in the i386 and amd64 GENERIC
    kernels; note however that host mode is only available on amd64.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The Xen Hypervisor allows multiple virtual machines to be run on a
    single computer system. When first released, Xen required that i386 kernels
    be compiled &quot;para-virtualized&quot; as the x86 instruction set was not
    fully virtualizable. Primarily, para-virtualization modifies the virtual
    memory system to use hypervisor calls (hypercalls) rather than direct
    hardware instructions to modify the TLB, although para-virtualized device
    drivers were also required to access resources such as virtual network
    interfaces and disk devices.</p>
<p class="Pp">With later instruction set extensions from AMD and Intel to
    support fully virtualizable instructions, unmodified virtual memory systems
    can also be supported; this is referred to as hardware-assisted
    virtualization (HVM and PVH). HVM configurations may either rely on
    transparently emulated hardware peripherals, or para-virtualized drivers,
    which are aware of virtualization, and hence able to optimize certain
    behaviors to improve performance or semantics. PVH configurations rely on
    para-virtualized drivers exclusively for IO.</p>
<p class="Pp"><span class="Ux">FreeBSD</span> Para-virtualized device drivers
    are required in order to support certain functionality, such as processing
    management requests, returning idle physical memory pages to the hypervisor,
    etc.</p>
<section class="Ss">
<h2 class="Ss" id="Xen_device_drivers"><a class="permalink" href="#Xen_device_drivers">Xen
  device drivers</a></h2>
<p class="Pp">These para-virtualized drivers are supported:</p>
<dl class="Bl-hang Bd-indent">
  <dt><code class="Nm">balloon</code></dt>
  <dd>Allow physical memory pages to be returned to the hypervisor as a result
      of manual tuning or automatic policy.</dd>
  <dt><code class="Nm">blkback</code></dt>
  <dd>Exports local block devices or files to other Xen domains where they can
      then be imported via <code class="Nm">blkfront</code>.</dd>
  <dt><code class="Nm">blkfront</code></dt>
  <dd>Import block devices from other Xen domains as local block devices, to be
      used for file systems, swap, etc.</dd>
  <dt><code class="Nm">console</code></dt>
  <dd>Export the low-level system console via the Xen console service.</dd>
  <dt><code class="Nm">control</code></dt>
  <dd>Process management operations from Domain 0, including power off, reboot,
      suspend, crash, and halt requests.</dd>
  <dt><code class="Nm">evtchn</code></dt>
  <dd>Expose Xen events via the <span class="Pa">/dev/xen/evtchn</span> special
      device.</dd>
  <dt><code class="Nm">gntdev</code></dt>
  <dd>Allow access to the grant table interface via the
      <span class="Pa">/dev/xen/gntdev</span> special device.</dd>
  <dt><code class="Nm">netback</code></dt>
  <dd>Export local network interfaces to other Xen domains where they can be
      imported via <code class="Nm">netfront</code>.</dd>
  <dt><code class="Nm">netfront</code></dt>
  <dd>Import network interfaces from other Xen domains as local network
      interfaces, which may be used for IPv4, IPv6, etc.</dd>
  <dt><code class="Nm">privcmd</code></dt>
  <dd>Allow issuing hypercalls via the <span class="Pa">/dev/xen/privcmd</span>
      special device.</dd>
  <dt><code class="Nm">timer</code></dt>
  <dd>Implementation of a one-shot high resolution per-CPU timer using the
      hypercall interface.</dd>
  <dt><code class="Nm">acpi cpu</code></dt>
  <dd>When running as a host forwards power management related information from
      ACPI to the hypervisor for better performance management.</dd>
  <dt><code class="Nm">xenpci</code></dt>
  <dd>Represents the Xen PCI device, an emulated PCI device that is exposed to
      HVM domains. This device allows detection of the Xen hypervisor, and
      provides interrupt and shared memory services required to interact with
      the hypervisor.</dd>
  <dt><code class="Nm">xenstore</code></dt>
  <dd>Information storage space shared between domains.</dd>
</dl>
</section>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp">Support for <code class="Nm">xen</code> first appeared in
    <span class="Ux">FreeBSD 8.1</span>. Support for host mode was added in 11.0
    .</p>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp"><span class="Ux">FreeBSD</span> support for Xen was first added by
    <span class="An">Kip Macy</span>
    &lt;<a class="Mt" href="mailto:kmacy@FreeBSD.org">kmacy@FreeBSD.org</a>&gt;
    and <span class="An">Doug Rabson</span>
    &lt;<a class="Mt" href="mailto:dfr@FreeBSD.org">dfr@FreeBSD.org</a>&gt;.
    Further refinements were made by <span class="An">Justin Gibbs</span>
    &lt;<a class="Mt" href="mailto:gibbs@FreeBSD.org">gibbs@FreeBSD.org</a>&gt;,
    <span class="An">Adrian Chadd</span>
    &lt;<a class="Mt" href="mailto:adrian@FreeBSD.org">adrian@FreeBSD.org</a>&gt;,
    <span class="An">Colin Percival</span>
    &lt;<a class="Mt" href="mailto:cperciva@FreeBSD.org">cperciva@FreeBSD.org</a>&gt;,
    and <span class="An">Roger Pau Monn&#x00E9;</span>
    &lt;<a class="Mt" href="mailto:royger@FreeBSD.org">royger@FreeBSD.org</a>&gt;.
    This manual page was written by <span class="An">Robert Watson</span>
    &lt;<a class="Mt" href="mailto:rwatson@FreeBSD.org">rwatson@FreeBSD.org</a>&gt;,
    and <span class="An">Roger Pau Monn&#x00E9;</span>
    &lt;<a class="Mt" href="mailto:royger@FreeBSD.org">royger@FreeBSD.org</a>&gt;.</p>
</section>
</div>
<table class="foot">
  <tr>
    <td class="foot-date">January 8, 2024</td>
    <td class="foot-os">FreeBSD 15.0</td>
  </tr>
</table>