Where we are

darwinOS is early. This page tracks real status — per architecture, per subsystem, per feature — so nobody has to guess what works before they invest their time.

How to read this page

Every subsystem is tagged with one of four states:

  • Working — used in day-to-day development by at least one maintainer. Regressions block releases.
  • Partial — runs in the happy path; known bugs or gaps; not something you'd bet production on.
  • In progress — someone is actively working on it; not yet usable.
  • Not started — in scope for the project but nobody has claimed it. A great place to jump in.

The matrix is kept in sync with reality, not aspiration. If something says *working* and isn't, please open an issue.

Architectures

  • arm64 (Apple Silicon) — *In progress.* Primary bring-up target. XNU boots to early-init on M1; no display output yet. See the Asahi references for hardware docs.
  • arm64 (generic / virtual) — *In progress.* QEMU `virt` machine boots to a shell prompt intermittently; stability work ongoing.
  • x86_64 — *Partial.* Boots in QEMU with the community XNU patch set; no installer; console only.
  • riscv64 — *Not started.* In scope; waiting on a maintainer.

Kernel (XNU)

  • Mach IPC — *Working* on all bring-up targets.
  • Virtual memory — *Partial.* Pageout and compression are disabled; plenty of room to optimise.
  • Scheduler — *Working.* The upstream XNU scheduler runs unmodified.
  • BSD personality — *Partial.* Syscall table is ~70% complete; missing syscalls mostly around mach_port rights and modern signal APIs.
  • IOKit — *In progress.* Matching works; only a handful of drivers present (see Drivers).
  • Kernel debugger (KDP) — *Partial.* Works over serial; no remote-debug over ethernet yet.
  • AMFI / codesign — *Not started.* Stubbed out so unsigned binaries run; needed before any security story.

Drivers

  • Serial console (PL011, 16550) — *Working.*
  • virtio-net — *Partial.* Send/receive works; no multiqueue.
  • virtio-blk — *Working.*
  • NVMe — *In progress.*
  • AHCI / SATA — *Not started.*
  • USB (xHCI) — *Not started.*
  • HID (USB keyboard/mouse) — *Not started.*
  • Framebuffer / display — *Not started.* Top priority once USB HID lands.
  • Wi-Fi — *Not started.* Deliberately deferred — see RFC 0007.

Userland

  • dyld — *Working.* Upstream Apple sources, lightly patched.
  • libSystem — *Partial.* libc is there; libpthread works; libdispatch disabled pending a Grand Central bring-up pass.
  • launchd — *Partial.* Boots the system; domain-socket activation works; XPC services untested.
  • Foundation (core) — *In progress.* Enough to run CLI tools; no GUI-adjacent classes yet.
  • Shells (sh, bash) — *Working.*
  • Coreutils — *Partial.* About 60 of the expected utilities present; the rest are pending a triage pass.
  • Package manager — *Not started.* RFC open; no code yet.

Build system

  • Linux host — *Working.* Tested on Debian stable and Arch.
  • macOS host — *Working.* Xcode command-line tools suffice.
  • Windows host (WSL) — *Partial.* Builds; no tested image booting.
  • Reproducible builds — *Not started.*
  • CI (GitHub Actions) — *In progress.* Linux host only; arm64 runners are the blocker.
  • Signed release artefacts — *Not started.* Tracks AMFI work.