Skip to content
pkgdemon edited this page Aug 21, 2026 · 13 revisions

A BSD whose system plumbing comes from Darwin. launchd is PID 1, services are .plist files, hardware events flow through an in-kernel IOKit registry over Mach IPC, and the network is configured by ipconfigd talking to configd — all on a FreeBSD-derived kernel that reports NextBSD for uname -s.

Drivers arrive the Darwin way too, as kernel extensions matched by the IOKit registry: KMS graphics drivers for the GPUs a VM presents — QEMU's Bochs VGA, virtio-gpu on both amd64 and arm64, and VirtualBox — alongside Intel, AMD, Radeon and NVIDIA kexts for real cards, plus Intel wireless and Ethernet. See Hardware Support.

If you have ten minutes and a spare VM, start with Getting Started.


New here?

Page What it covers
Getting Started Download an image and boot it in QEMU. No install required.
Apple Silicon Mac (UTM) Guide Step-by-step on an M-series Mac, including the Gershwin desktop.
Installing NextBSD Put it on a disk with nextbsd-installer.
Installing Packages Point pkg at the NextBSD repository and keep a system current.

Using the system

Page What it covers
Command Reference The Darwin-derived commands: launchctl, ioreg, syslog, kextstat, and friends.
Service Management with launchd Starting, stopping and writing services as property lists.
Hardware Support Graphics and network kexts, and where Bluetooth stands.
Wireless Networking Scanning, joining and troubleshooting Wi-Fi with wlan.
Filesystem Layout The four-domain model, and where things actually live.

Understanding the design

Page What it covers
How NextBSD Differs Side-by-side with FreeBSD, NetBSD and OpenBSD.
Project Repositories How the pieces are built and which repo owns what.

The short version

Coming from FreeBSD, three things will surprise you immediately:

  1. There is no rc.conf. Services are property lists under /System/Library/LaunchDaemons/, controlled with launchctl. See Service Management with launchd.
  2. There is no kldload — and nothing to configure. The kld* command-line tools are deliberately removed; kextload, kextunload and kextstat replace them. (The kld syscalls remain — only the CLI front-ends are gone.) There is also no driver setup anywhere — no if_em_load="YES" in loader.conf, no kld_list="i915kms" in rc.conf, and no rc.conf to put them in. Graphics included: there is no drm-kmod to install and no KMS module to enable — and because NextBSD ports KMS drivers FreeBSD does not ship, a VM's virtual GPU gets real KMS, so there is usually no display-server configuration to write either. kextd matches every driver, GPUs among them, to hardware by device ID at boot, so a supported card works because it is plugged in, not because you listed it. See Hardware Support.
  3. ipconfig is not ifconfig. NextBSD ships Darwin's ipconfig, a different tool with a different CLI. Both it and FreeBSD's ifconfig are present.

Getting help

  • Discussions — questions, ideas, showing off what you built.
  • Issues — bugs in the OS or its build.
  • nextbsd.org — project overview and component status.

NextBSD is pre-production. Continuous builds are published on every merge and are boot-tested in CI, but there is no stable release yet. Run it in a VM before you run it on anything you care about.

Clone this wiki locally