Bhyve

Last updated

Bhyve
Developer(s) The FreeBSD Project
Initial release2014;11 years ago (2014)
Repository github.com/freebsd/freebsd-src/tree/main/usr.sbin/bhyve
Written in C
Operating system FreeBSD, illumos
Type Hypervisor
License FreeBSD License
Website bhyve.org   OOjs UI icon edit-ltr-progressive.svg

bhyve (pronounced "bee hive", formerly written as BHyVe for "BSD hypervisor") is a type-2 (hosted) hypervisor initially written for FreeBSD. [1] [2] [3] It can also be used on a number of illumos based distributions including SmartOS, [4] OpenIndiana, and OmniOS. [5] A port of bhyve to macOS called xhyve is also available. [6]

Contents

Features

bhyve supports the virtualization of several guest operating systems, including FreeBSD 9+, OpenBSD, NetBSD, Linux, illumos, DragonFly and Windows NT [7] (Windows Vista and later, Windows Server 2008 and later). bhyve also supports UEFI installations and VirtIO emulated interfaces. Windows virtual machines require VirtIO drivers for a stable operation.[ citation needed ] Current development efforts aim at widening support for other operating systems for the x86-64 architecture.

Support for peripherals relies on basic and VirtIO drivers and supports: eXtensible Host Controller Interface (xHCI) USB controllers, NVM Express (NVMe) controllers, High Definition Audio Controllers, raw framebuffer device attached to VNC server (Video Output), and AHCI/PCI Passthrough. [8]

Since the support for peripherals is incomplete, hardware-accelerated graphics is only available using PCI passthrough. But, Intel GVT (and other vGPUs with driver support) should allow sharing the device with the host. [9]

bhyve performs about the same as its competitors with lack of memory ballooning and accelerated graphics interface, but bhyve has a more modern codebase and uses fewer resources. In the case of FreeBSD the resource management is more efficient. FreeBSD is also known for its exemplary I/O speeds; running bhyve from FreeBSD has a lot of advantages for time-critical virtual appliances by reducing I/O time, especially on disk and network related loads.

Applications

Docker on macOS uses a bhyve derivative called HyperKit. It is derived from xhyve, a port of bhyve to macOS's Hypervisor framework. [10]

iohyve on FreeBSD is a command-line utility to create, store, manage, and launch bhyve guests using built in FreeBSD features. [11]

vm-bhyve on FreeBSD is a shell-based, bhyve manager with minimal dependencies. [12]

BVCP on FreeBSD is a lightweight, native, full featured web interface for managing virtual machines. [13]

FreeNAS, based on FreeBSD, uses bhyve alongside its file sharing services to provide hosting for VMs. [14]

Other distributions

ClonOS, a FreeBSD-based distribution for virtual hosting platform and appliance, primarily uses bhyve and has a web-based management interface. [15]

MyBee, a FreeBSD-based distribution for managing cloud VMs (bhyve) through a simplified API. [16]

SmartOS, an Illumos-based distribution for managing cloud VMs (bhyve, Solaris zones) through a simplified API.

MidnightBSD, a desktop operating system, includes bhyve. [17]

Related Research Articles

<span class="mw-page-title-main">UEFI</span> Technical specification for firmware architecture

Unified Extensible Firmware Interface is a specification for the firmware architecture of a computing platform. When a computer is powered on, the UEFI-implementation is typically the first that runs, before starting the operating system. Examples include AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O.

A hypervisor, also known as a virtual machine monitor (VMM) or virtualizer, is a type of computer software, firmware or hardware that creates and runs virtual machines. A computer on which a hypervisor runs one or more virtual machines is called a host machine, and each virtual machine is called a guest machine. The hypervisor presents the guest operating systems with a virtual operating platform and manages the execution of the guest operating systems. Unlike an emulator, the guest executes most instructions on the native hardware. Multiple instances of a variety of operating systems may share the virtualized hardware resources: for example, Linux, Windows, and macOS instances can all run on a single physical x86 machine. This contrasts with operating-system–level virtualization, where all instances must share a single kernel, though the guest operating systems can differ in user space, such as different Linux distributions with the same kernel.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

The Quick Emulator (QEMU) is a free and open-source emulator that uses dynamic binary translation to emulate a computer's processor; that is, it translates the emulated binary codes to an equivalent binary format which is executed by the machine. It provides a variety of hardware and device models for the virtual machine, enabling it to run different guest operating systems. QEMU can be used with a Kernel-based Virtual Machine (KVM) to emulate hardware at near-native speeds. Additionally, it supports user-level processes, allowing applications compiled for one processor architecture to run on another.

Platform virtualization software, specifically emulators and hypervisors, are software packages that emulate the whole physical computer machine, often providing multiple virtual machines on one physical platform. The table below compares basic information about platform virtualization hypervisors.

OS-level virtualization is an operating system (OS) virtualization paradigm in which the kernel allows the existence of multiple isolated user space instances, including containers, zones, virtual private servers (OpenVZ), partitions, virtual environments (VEs), virtual kernels, and jails. Such instances may look like real computers from the point of view of programs running in them. A computer program running on an ordinary operating system can see all resources of that computer. Programs running inside a container can only see the container's contents and devices assigned to the container.

virt-manager Virtualisation software

virt-manager is a desktop virtual machine monitor primarily developed by Red Hat.

<span class="mw-page-title-main">FreeBSD</span> Free and open-source Unix-like operating system

FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD—the first fully functional and free Unix clone—and has since continuously been the most commonly used BSD-derived operating system.

<span class="mw-page-title-main">Kernel-based Virtual Machine</span> Virtualization module in the Linux kernel

Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007. KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V. KVM has also been ported to other operating systems such as FreeBSD and illumos in the form of loadable kernel modules.

nouveau (software) Open source software driver for Nvidia GPU

nouveau is a free and open-source graphics device driver for Nvidia video cards and the Tegra family of SoCs written by independent software engineers, with minor help from Nvidia employees.

oVirt Free, open-source virtualization management platform

oVirt is a free, open-source virtualization management platform. It was founded by Red Hat as a community project on which Red Hat Virtualization is based. It allows centralized management of virtual machines, compute, storage and networking resources, from an easy-to-use web-based front-end with platform independent access. KVM on x86-64, PowerPC64 and s390x architecture are the only hypervisors supported, but there is an ongoing effort to support ARM architecture in a future releases.

libvirt Management tool

libvirt is an open-source API, daemon and management tool for managing platform virtualization. It can be used to manage KVM, Xen, VMware ESXi, QEMU and other virtualization technologies. These APIs are widely used in the orchestration layer of hypervisors in the development of a cloud-based solution.

libguestfs is a C library and a set of tools for accessing and modifying virtual disk images used in platform virtualization. The tools can be used for viewing and editing virtual machines (VMs) managed by libvirt and files inside VMs, scripting changes to VMs, creating VMs, and much else besides. It was created because of security issues, when virtual disk images are mounted directly on the host system.

<span class="mw-page-title-main">SeaBIOS</span> Open-source implementation of x86 BIOS

SeaBIOS is an open-source implementation of an x86 BIOS, serving as a freely available firmware for x86 systems. Aiming for compatibility, it supports standard BIOS features and calling interfaces that are implemented by a typical proprietary x86 BIOS. SeaBIOS can either run on bare hardware as a coreboot payload, or can be used directly in emulators such as QEMU and Bochs.

<span class="mw-page-title-main">OpenNebula</span> Cloud-computing platform for managing heterogeneous distributed infrastructure

OpenNebula is an open source cloud computing platform for managing heterogeneous data center, public cloud and edge computing infrastructure resources. OpenNebula manages on-premises and remote virtual infrastructure to build private, public, or hybrid implementations of infrastructure as a service (IaaS) and multi-tenant Kubernetes deployments. The two primary uses of the OpenNebula platform are data center virtualization and cloud deployments based on the KVM hypervisor, LXD/LXC system containers, and AWS Firecracker microVMs. The platform is also capable of offering the cloud infrastructure necessary to operate a cloud on top of existing VMware infrastructure. In early June 2020, OpenNebula announced the release of a new Enterprise Edition for corporate users, along with a Community Edition. OpenNebula CE is free and open-source software, released under the Apache License version 2. OpenNebula CE comes with free access to patch releases containing critical bug fixes but with no access to the regular EE maintenance releases. Upgrades to the latest minor/major version is only available for CE users with non-commercial deployments or with significant open source contributions to the OpenNebula Community. OpenNebula EE is distributed under a closed-source license and requires a commercial Subscription.

Second Level Address Translation (SLAT), also known as nested paging, is a hardware-assisted virtualization technology which makes it possible to avoid the overhead associated with software-managed shadow page tables.

<span class="mw-page-title-main">SmartOS</span> Operating system

SmartOS is a free and open-source SVR4 hypervisor based on the UNIX operating system that combines OpenSolaris technology with bhyve and KVM virtualization. Its core kernel contributes to the illumos project. It features several technologies: Crossbow, DTrace, bhyve, KVM, ZFS, and Zones. Unlike other illumos distributions, SmartOS employs NetBSD pkgsrc package management. SmartOS is designed to be particularly suitable for building clouds and generating appliances. It was originally developed for and by Joyent, who announced in April 2022 that they had sold their business supporting and developing of Triton Datacenter and SmartOS to MNX Solutions. It is open-source and free for anyone to use.

mpv (media player) Free and open-source media player software

mpv is free and open-source media player software based on MPlayer, mplayer2 and FFmpeg. It runs on several operating systems, including Unix-like operating systems and Microsoft Windows, along with having an Android port called mpv-android. It is cross-platform, running on ARM, MIPS, PowerPC, RISC-V, s390x, x86/IA-32, x86-64, and some other by 3rd party.

<span class="mw-page-title-main">OpenZFS</span> Open-source implementation of ZFS file system

OpenZFS is an open-source implementation of the ZFS file system and volume manager initially developed by Sun Microsystems for the Solaris operating system, and is now maintained by the OpenZFS Project. Similar to the original ZFS, the implementation supports features like data compression, data deduplication, copy-on-write clones, snapshots, RAID-Z, and virtual devices that can create filesystems that span multiple disks.

GPU virtualization refers to technologies that allow the use of a GPU to accelerate graphics or GPGPU applications running on a virtual machine. GPU virtualization is used in various applications such as desktop virtualization, cloud gaming and computational science.

<span class="mw-page-title-main">Windows Subsystem for Linux</span> Feature for a Linux environment in Windows

Windows Subsystem for Linux (WSL) is a feature of Microsoft Windows that allows for using a Linux environment without the need for a separate virtual machine or dual booting. WSL is installed by default in Windows 11. In Windows 10, it can be installed either by joining the Windows Insider program or manually via Microsoft Store or Winget.

References

  1. Carabas, Mihai; Grehan, Peter (10 June 2016). "Porting bhyve on ARM" (PDF). Retrieved 8 February 2017.
  2. Dexter, Michael (20 October 2012). "BHyVe: The BSD HyperVisor In Depth" (PDF). Archived from the original (PDF) on 18 February 2018. Retrieved 8 February 2017.
  3. Kerner, Sean Michael (22 January 2014). "Open Source FreeBSD 10 Takes on Virtualization". ServerWatch. QuinStreet Enterprise. Retrieved 28 July 2014.
  4. Gerdts, Mike (March 2018). "bhyve zones in SmartOS" (PDF).
  5. "bhyve Hypervisor". omniosce.org. Retrieved 27 September 2018.
  6. "machyve/xhyve: a lightweight OS X virtualization solution". GitHub. 9 July 2020.
  7. "bhyve Windows Virtual Machines". FreeBSD Wiki.
  8. Peter Grehan; Neel Natu. "FreeBSD Manual Pages". The FreeBSD Project.
  9. "Bhyve guests with hardware accelerated graphics". FreeBSD Presentations and Papers.
  10. "moby/hyperkit: A toolkit for embedding hypervisor capabilities in your application". GitHub. Moby. 10 July 2020.
  11. "FreeBSD bhyve manager utilizing ZFS and other FreeBSD tools". GitHub. Pr1ntf. Retrieved 7 August 2021.
  12. "Shell based, minimal dependency bhyve manager". GitHub. Churchers. Retrieved 7 August 2021.
  13. "BVCP: FreeBSD Bhyve Project". bhyve.npulse.net. Retrieved 7 August 2021.
  14. "18. Virtual Machines — FreeNAS®11.3-U5 User Guide Table of Contents". www.ixsystems.com. Retrieved 2 January 2023.
  15. "Free Open-Source Hosting Platform". clonos.convectix.com. Retrieved 7 August 2021.
  16. "The most simplified API for creating and destroying K8S and cloud VMs". myb.convectix.com. Retrieved 17 May 2022.
  17. "Virtualization". github.com. Retrieved 23 September 2023.

Further reading