xhyve.xyz
About
The xhyve hypervisor is a port of bhyve to macOS. It is built on top of Hypervisor.framework in OS X 10.10 Yosemite and higher, runs entirely in userspace, and has no other dependencies. It can run FreeBSD, some Linux distributions, and Windows 10 and may gain support for other guest operating systems in the future.
License: BSD-2-Clause
Introduction: http://www.pagetable.com/?p=831
Requirements
- OS X 10.10.3 Yosemite or later
- a 2010 or later Mac (i.e. a CPU that supports EPT:
sysctl kern.hv_support
= 1)
Installation
If you have homebrew, then simply:
$ brew update
$ brew install --HEAD xhyve
The --HEAD
in the brew command ensures that you always get the latest changes, even if the homebrew database is not yet updated. If for any reason you don't want that simply do brew install xhyve
.
If you have MacPorts, then simply:
$ sudo port selfupdate
$ sudo port install xhyve
MacPorts is up to date with the GitHub ref listed in the port info
$ port info xhyve
xhyve @20170117 (emulators)
...
Otherwise:
Building
$ git clone https://github.com/machyve/xhyve.git
$ cd xhyve
$ xcodebuild
The resulting binary will be in build/Release/xhyve
Usage
$ xhyve -h
See below for steps to boot various OSs
What is bhyve?
bhyve is the FreeBSD hypervisor, roughly analogous to KVM + QEMU on Linux. It has a focus on simplicity.
It exposes the following peripherals to virtual machines:
- Local x(2)APIC
- IO-APIC
- 8259A PIC
- 8253/8254 PIT
- HPET
- PM Timer
- RTC
- PS/2 Keyboard and Mouse (via VNC)
- PCI
- host bridge
- passthrough
- UART
- AHCI (i.e. HDD and CD)
- VirtIO block device
- VirtIO networking
- VirtIO RNG
- Intel e1000 (aka e82545)
- VGA/Framebuffer (exposed with a minimal VNC server)
- XHCI USB support with one device defined - a tablet for Windows guest support
bhyve architecture
Linux
I/O VM control FreeBSD NetBSD
OpenBSD