bhyve(8) on Solnix vs Linux and the BSDs
bhyve is the illumos hypervisor on a default Solnix system. FreeBSD ships a bhyve with the same name and many of the same options. The Solnix synopsis adds -B (SMBIOS data) and -d (suspend CPUs at boot) and lacks FreeBSD's -n (NUMA) and -p (vCPU pinning). Linux has no counterpart page in the bundle.
The manual pages
- Solnix: bhyve(8) from
pkgs.solnix.illumos-world-man· illumos.org - FreeBSD: bhyve(8) 15.1-RELEASE
What Solnix runs
A default Solnix system runs the illumos bhyve. The header says it is not in /usr/bin, /usr/sbin or /sbin, and that daemons live under /usr/lib. The bundle does not give the exact path. No other variants are shipped. The page comes from pkgs.solnix.illumos-world-man. The FreeBSD text in the bundle is cut off partway through the -n description, so anything after that point (including the -s device list) could not be compared.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| FreeBSD | -B SMBIOS data | Solnix bhyve has -B type,key=value to set SMBIOS data for types 0 to 3 (vendor, manufacturer, product_name, serial_number and so on). The FreeBSD synopsis and the flag list in the bundle have no -B.Source: Solnix bhyve(8) SYNOPSIS, -B; FreeBSD bhyve(8) SYNOPSIS |
| FreeBSD | -d suspend CPUs at boot | Solnix bhyve -d suspends the guest CPUs at boot. The FreeBSD synopsis has no -d.Source: Solnix bhyve(8) -d; FreeBSD bhyve(8) SYNOPSIS |
| FreeBSD | -n guest NUMA domains | FreeBSD bhyve -n id,size,cpus[,domain_policy] partitions guest memory into NUMA domains (amd64 only, up to 8 domains, needs a boot ROM). The Solnix synopsis has no -n.Source: FreeBSD bhyve(8) SYNOPSIS, -n; Solnix bhyve(8) SYNOPSIS |
| FreeBSD | -p vCPU pinning | FreeBSD bhyve has -p vcpu:hostcpu in its synopsis. The Solnix synopsis and OPTIONS have no -p, so a FreeBSD command line that pins vCPUs will not carry over.Source: FreeBSD bhyve(8) SYNOPSIS; Solnix bhyve(8) SYNOPSIS |
| FreeBSD | maximum vCPUs | Solnix -c states a fixed maximum of 32 guest vCPUs. On FreeBSD the maximum defaults to the number of active physical CPUs (sysctl hw.vmm.maxcpu) and can be changed with the hw.vmm.maxcpu loader tunable.Source: Solnix bhyve(8) -c; FreeBSD bhyve(8) -c |
| FreeBSD | booting the guest | FreeBSD describes using a boot ROM (UEFI from edk2-bhyve, or U-Boot on arm64) or loading the guest first with bhyveload(8). The Solnix DESCRIPTION says nothing about boot ROMs or bhyveload. Source: FreeBSD bhyve(8) DESCRIPTION; Solnix bhyve(8) DESCRIPTION |
| FreeBSD | -m and bhyveload | FreeBSD says the -m size must match the size given to bhyveload(8). The Solnix -m text has no such requirement. Both default to 256 MiB, and the Solnix text calls the suffixes kibibytes to tebibytes.Source: FreeBSD bhyve(8) -m; Solnix bhyve(8) -m |
| FreeBSD | architecture scope | FreeBSD says bhyve runs guests on amd64 and arm64 and marks -a, -e, -H, -l and -n as amd64-only; on arm64 -l is replaced by -o. The Solnix page names no platforms and attaches no such limits to these options.Source: FreeBSD bhyve(8) DESCRIPTION, -a, -e, -H, -l, -n; Solnix bhyve(8) -a, -e, -H, -l |
| FreeBSD | wiring guest memory (-S) and -P | Solnix documents -S (wire guest memory) and -P (exit the vCPU on PAUSE). Both letters appear in the FreeBSD synopsis, but the FreeBSD text in the bundle is trimmed before them, so their wording cannot be compared.Source: Solnix bhyve(8) -S, -P; FreeBSD bhyve(8) SYNOPSIS |
| FreeBSD | virtio-net-viona | The Solnix -s list includes virtio-net-viona (accelerated Virtio network) next to the legacy virtio-net. The bundle's FreeBSD text is trimmed before its device list, so whether FreeBSD offers it is not shown.Source: Solnix bhyve(8) -s emulation list; FreeBSD bhyve(8) (trimmed) |
Standards
- POSIX: bhyve is not a POSIX.1-2024 utility.
Writing portable scripts
- Do not rely on
-B,-d,-nor-pacross Solnix and FreeBSD. Each exists on only one of them in the synopses shown. - Put guest settings in a
-kconfig_file (see bhyve_config(5)) or-ovar=value. Both systems document these options. Use bhyve-shelp and bhyve-lhelp to list the devices each build supports.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.