The other day, while booting my eight-core 3.2 GHz Mac Pro with 32 GiB RAM, I watched my system startup messages (nvram boot-args="-v") and thought of Darwin's origins at NeXT as a pastiche of academic research and hacker hobby. Darwin has come so far and exhibits the best of long-term software engineering. But while thinking of how far Darwin has come, I also thought of all it has given back to FreeBSD. By the time my Mac had loaded my desktop, I was at work researching just how much FreeBSD owes Apple.
The first improvements over the minimal FreeBSD 4 were removing the giant kernel lock (GKL), improving threading, and enhancing the I/O layer. It took the FreeBSD hackers this long to integrate changes Apple had released in first Mac OS X v10.1, which had come in 2001, and Mac OS X v10.2, released in 2002. In looking at the code and release dates it became clear that, had Apple not donated their work to the FreeBSD project, the hackers would have never gotten anything out the door on time, let alone a year after Apple had.
FreeBSD 6 was basically just a refinement of FreeBSD 5, allowing the BSD Project to tighten the code and better integrate some of the bleeding-edge Apple tech into their older codebase, kind of like Apple’s upgrade Leopard to Snow Leopard but nowhere near as exciting or relevant. They also finally added the sorely-lacking WiFi support, FreeBSM security directly into the kernel, and finally banished the GKL once and for all. In all this time perfecting what should have been in FreeBSD 5, FreeBSD 7 became the Next Big Thing that would actually offer some new features.
It’s funny that, now that Apple has slowed down, FreeBSD is releasing so frequently and it was FreeBSD 7 that picked up the pace to better match Apple’s releases. It didn’t hurt that they were also giving a world hungry for critical patches and cutting-edge releases what they wanted either. FreeBSD efficiently used SMP configurations now, supporting more than two processors, and borrowed filesystem journaling from Darwin. It also used Apple’s own GCC4, which had been building Mac OS X since Leopard. And like Leopard, FreeBSD also integrated Sun’s DTrace and a new scheduler. It was clear that by this point FreeBSD releases were almost entirely based on what Apple had done with Darwin the year or so prior.
As such, FreeBSD 8 is like a follow-on to Leopard itself: superpages, better DTrace integration, ZFS read/write, protected networking, ARM support, ≤ 16 TB RAM, SSE4.2, and remote home directories all read like an advertisement for Mac OS X and, not surprisingly, come directly from it. Darwin 10 will be the first truly 64-bit Unix and FreeBSD 8 will likely follow suit; this is the first time it’s had clean a 64-bit kernel like Mac OS X has been doing for some time now. FreeBSD 8 is expected by the end of June ’09, around the same time Snow Leopard, after which FreeBSD 9 will undoubtedly be on the drawing board…
So what is the actual numeration of what FreeBSD owes to Mac OS X? What value is there in all the goodies Apple has given to FreeBSD? Considering FreeBSD is considered “the” free Unixalike in the industry, the answer is quite a bit. Had FreeBSD not had its hand held by Apple during the early part of this decade, FreeBSD would look something more like NetBSD or OpenBSD: an idiosyncratic and lethargic technological backwater.
Quantifying it can only end up in the millions of dollars, if not tens of millions—numbers the FreeBSD foundation are not used to working with, being a not-for-profit outfit and typically scraping by on the goodwill of folks like Steve Wozniak and Robert Cringely or whomever might donate some old hardware here and there. In other words, FreeBSD owes its increased usage and visibility, not to mention its technological improvements, entirely to Apple. Without the philanthropical fruit company, free Unix would be starkly different world than it is today.
So how can the FreeBSD Project balance this debt to Apple? By merging FreeBSD with Darwin. Apple has already hired Jordan Hubbard, former FreeBSD czar, and would likely extend summer internships to others at the FreeBSD project. Merging the two would force the FreeBSD community to begin hacking on Darwin, the source of their technology anyway, and Apple would in effect be in control of the best of the BSD/OS, FreeBSD, Mac OS, and OPENSTEP operating systems. In the end, the only one with anything to lose is the FreeBSD Project, constantly playing catchup to FreeBSD’s superior twin brother.