PureDarwin

Darwin you can boot.

PureDarwin writes the pieces Apple leaves out, and everything else it takes to reach a desktop. Apple publishes the kernel and a large amount of userland, but never the parts that turn Darwin into a system: no bootloader, no modern launchd, few drivers.

PureDarwin running Xfce under Xwayland on sway, with the Vulkan cube on Mesa lavapipe, Wine, and a shell reporting Darwin 20.5.0.

Documentation

How the build works, what lives where, how an image is assembled, per-target status, a porting guide and a debugging guide.

Handbook

Contribute

Development happens on the next branch. Packaging is the most useful place to start, and the contribution policy explains what we accept and why.

GitHub

Community

Development happens in the open. Ask questions, watch the work, or chip in.

News

All news

What works today

PureDarwin boots to a shell on four targets. A fifth, the ARMv6 Pi Zero, reaches userspace but not yet a prompt.

On x86_64 that means an ext4 root, DHCP end to end, a real Xorg server, Wayland through sway and wlroots, Xfce, Wine running GUI applications, and a compiler toolchain that runs on PureDarwin itself.

Full status matrix, per target

Get it

These are previews, not a release. They are development images, they will have bugs, and they should not be treated as a stable version of anything. PureDarwin 20.5.0 is the release being worked towards; see the roadmap.

The SHA-256 above each download is of the file as served. The same list is at SHA256SUMS, so you can check a download with sha256sum -c SHA256SUMS --ignore-missing.

Or build it yourself

Nix is the build system. On a Linux host with flakes enabled:

nix-store --add-fixed sha256 /path/to/MacOSX11.3.sdk.tar.xz
nix build .#image-minimal
nix run .#vm

Apple's SDK is proprietary and cannot be redistributed, so you have to supply that file yourself. Removing that requirement is on the roadmap.

Getting Started, in full

Frequently asked questions

What is Darwin?

Darwin is the open-source core of macOS and iOS: the XNU kernel plus a large part of the Unix userland, published by Apple under the Apple Public Source License. Every Mac and iPhone runs on it, but Apple only ships it as source code, not as an operating system you can install.

What is PureDarwin, and what is it not?

PureDarwin is a community project that turns Apple's Darwin releases into a standalone, bootable operating system, writing the missing pieces ourselves: bootloader, drivers, init, and a desktop. It is not macOS, not a macOS clone, and not affiliated with or endorsed by Apple. There are no proprietary Apple binaries in our images.

What can I actually do with it?

Boot a real Darwin system in QEMU or on hardware, get a shell, run an Xfce desktop over X11 or Wayland, compile software with the on-system toolchain, and explore how the XNU kernel works outside of macOS. It is a system for developers and the curious, not a daily driver — see what works today.

Can it run macOS or iOS apps?

No. Graphical macOS and iOS apps need frameworks Apple never open-sourced, like AppKit and UIKit, so they cannot run here. Command-line Darwin binaries and open-source software generally can, and Wine even runs Windows GUI applications on the desktop. Ironically, Windows apps work; Mac apps do not.

Is it free? Can I contribute?

Yes. Everything we write is open source, and Apple's code stays under the APSL. Development happens in the open on GitHub; packaging is the most useful place to start, and the contribution guide explains the rest.