Darwin is the open-source foundation underneath macOS, iOS, and every other Apple operating system. It has been quietly open-sourced, piece by piece, for more than twenty years — XNU, launchd, dyld, libSystem, CoreFoundation, and a long list of userland utilities all live in public tarballs and, increasingly, on GitHub. But Darwin as an operating system you can install and use has been a moving target: the pieces are there, the wiring isn’t, and the community around them is scattered.
darwinOS is a community-driven attempt to change that — to turn Darwin back into a coherent, bootable, hackable OS that anyone can build from source, run on commodity hardware, and contribute to.
This site is where that work lives.
What we mean by “revival”
Not a fork of macOS. Not a recompile of Apple’s shipping binaries. darwinOS is an effort to take the pieces Apple has actually released as open source, plus the pieces the community has reverse-engineered cleanly, and assemble them into an OS with:
- A buildable XNU kernel you can target for your own hardware
- A working userland — shells, coreutils, dyld, libSystem, launchd — glued together by a real build system
- Drivers (IOKit or otherwise) for a growing list of boards
- Documentation good enough that a new contributor can go from “what is this?” to “I fixed a bug” in a weekend
We are explicitly not in the business of documenting, redistributing, or building on top of anything Apple hasn’t released. Where the open-source story has gaps — the boot chain is the obvious one — we’ll document what’s publicly known and lean on clean, community-built alternatives.
What exists today
Very little, honestly. That’s the point of this post.
The site you’re reading is the starting shot. Over the coming weeks expect:
- A Get Started pathway that takes you from “I have a laptop” to “I have darwinOS booting in a VM”
- An Architecture overview — Mach, BSD personality, IOKit, launchd, dyld — aimed at people who want to understand how the OS fits together
- A Status page tracking what works, what’s partial, and what’s broken, per architecture and per component
- A Contribute page with real on-ramps for C programmers, Swift/Objective-C programmers, hardware folks, and people who want to help without writing code
- A growing set of Guides: building from source, running in QEMU, porting to a new board, writing a driver, debugging the kernel
When a page is ready, we’ll link it from here.
How to help
If you’ve ever wanted to work on an operating system and bounced off the scale of Linux or the opacity of commercial OSes, Darwin is a good target. It’s small enough to hold in your head, old enough to be well-understood, and weird enough to be interesting. Mach ports are fun. IOKit is fun. launchd is — well, launchd is an opinion, and opinions are fun to argue with.
The most useful thing you can do right now is tell us you’re interested. Star the organisation on GitHub, open a discussion about what you’d like to work on, or just follow along. Early contributors shape what this project becomes.
More soon.