Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

x86_64

The primary target, and the one the release is built around.

Building

nix build .#kernel        # or .#kernel-debug
nix build .#kexts
nix build .#kc
nix build .#image-minimal # or .#image-gpu for the desktop with every GPU driver
nix run .#vm              # or .#kvm

.#image-gpu-sb is the same desktop image signed for Secure Boot, and .#image-gpu-legacy adds a BIOS boot stack. See Image Flavours.

What Works

Boot and core system. Boots from an ext4 root on QEMU and on real hardware, through UEFI, Secure Boot, 32-bit UEFI or legacy BIOS. launchd, XPC and notifyd run, and ioreg, sw_vers and the rest of the userland work.

Filesystems. ext4 as root, with a journal. HFS+ works too, and image-hfs uses it to bisect against ext4 and to give macOS users an image they can mount. APFS works as a root on image-apfs-minimal. msdosfs is present.

Networking. DHCP end to end through configd and IPConfiguration, DNS through mDNSResponder, and curl in the guest. Wired drivers cover virtio-net, the Intel e1000 family, Intel I225 and I226, and Realtek RTL8111, RTL8125 and RTL8126. Wi-Fi covers the Realtek RTL8852B and RTL8852C, USB adapters with the Realtek RTL8192EU, and the Ralink RT3572.

Graphics. The GPU drivers come from FreeBSD’s drm-kmod and run on fbsdkpi: amdgpu for AMD cards, i915 for Intel and nouveau for NVIDIA. Mesa provides radeonsi, iris, crocus and nouveau for OpenGL on real GPUs, llvmpipe as the software fallback, and virgl and Venus in VMs. When no driver attaches, the firmware framebuffer keeps the desktop running.

Desktop. Argon, the PureDarwin desktop, runs on the neuswc Wayland compositor. It has a menu bar, a Dock, Files, Terminal, Settings, Calculator, System Information and an installer. The apps are AppKit apps. Xorg and sway are also available.

Applications. Wine runs Windows GUI applications. GTK3 and WebKitGTK work.

Toolchains in the guest. cmake, ninja, meson, clang, tcc and rustc all run on PureDarwin itself, which is what makes in-guest development possible.

Audio. RavynHDAudio drives Intel HDA.

Known Rough Edges

Hardware Support

  • Storage over AHCI, ATA, NVMe and USB mass storage.
  • USB through EHCI, OHCI, UHCI and xHCI.
  • PS/2 and USB input.
  • Graphics through amdgpu, i915 and nouveau, with the firmware framebuffer as a fallback.
  • virtio block, network and GPU devices in VMs.