Why Darwin Failed
Why Darwin Failed
Apple's Open Source efforts with the Darwin project have been a<br>failure. Apple failed to build a community around Darwin in the 7<br>years since its original release because it was not a corporate direction,<br>but rather a marketing stunt. Culturally, Apple did not and does not<br>understand what it means to be open source or to build a working<br>community.
When Apple started shipping Mac OS X Server, it included<br>some GPL'd projects in addition to many other open source projects.<br>A few engineers working on these projects were able to convince<br>some marketing people and some managers that since they were<br>required to release some of the source anyway, why not be good<br>citizens and release modifications to all of their open source<br>software? From there it was one short marketing leap away from<br>releasing the low level components of Mac OS X as open source,<br>and one large, consistent project to release the entire base<br>of Mac OS X as a standalone OS. During the heyday of the dot<br>com days, open source was good. Everyone wanted a piece of the<br>open source pie, and this was Apple's way of getting it.<br>This was great all the way around, the marketing department<br>wins, the engineers win, and the open source world (appears to)<br>win. However, just throwing some source out there and calling<br>it good isn't enough. Darwin 0.3 was source only and didn't<br>attract much attention. Several Apple engineers worked,<br>largely spending more time and effort that they needed, to<br>build a standalone OS based on the sources. They came up<br>with a build system that was compatible with Apple's internal<br>build system, built up a dependency graph for the projects,<br>and ultimately were able to release an OS. This was something<br>concrete that they could show. This is what Apple is offering<br>the open source community, a new, free operating system.
With something to show for their efforts, one Apple<br>engineer in particular went above and beyond calling attention<br>to and attracting developers for their new operating system.<br>This was great, they now had something to build a community<br>around, they just needed to get the word out. The word definitely<br>got out, and people started arriving to take a look. Darwin<br>was brand new, this was its first release, and it wasn't as<br>polished as the established OS' and certainly wouldn't be mistaken<br>as a corporate product. It isn't easy to take a collection of<br>code that doesn't build, and create an OS out of it, but a<br>small number of Apple engineers did so, often on their own time,<br>and it showed. To install the OS, you needed a Mac with OS 9<br>to dump a backup image onto a partition. The source required<br>click through registration to acquire, and when you did finally<br>download it, it was impossible to build. However, some people<br>did make it through all the hurdles, understood it was a brand<br>new project, and were excited by the possibility of running a<br>free UNIX based OS on their Mac. Some were just excited to be<br>part of a brand new project, getting in on the ground level.<br>Everyone involved could feel the potential of project. Apple<br>was a large company with lots of engineers, and if they got<br>behind an open source effort, this could be great.
The potential was slow to be realized, however. Darwin<br>1.2 came, as did Mac OS X Public Beta. With the release of<br>Mac OS X Public Beta, the Darwin community got a hint that Apple<br>doesn't care about Darwin and it's community, but rather the<br>product Mac OS X. More people came to the Darwin lists that<br>were not running Darwin, but Mac OS X Public Beta. Some of the<br>Darwin source started having dependencies on non-open source<br>components, and became increasingly difficult to use on Darwin.<br>Darwin improved slightly between 1.0 and 1.2, but for each step<br>forward, there was a step back. When Darwin 1.3 was release<br>along with Mac OS X 10.0, we found Darwin had lost hardware<br>support that was in Darwin 1.0 and Darwin 1.2. This was highly<br>unusual for an open source project to remove old hardware<br>support. This of course was done to Mac OS X as a business<br>decision, and Darwin got what Mac OS X got. Several drivers<br>became binary only, and we no longer had the complete source<br>to Darwin. This clearly established that Apple as a whole<br>worked on Mac OS X. Darwin got engineering leftovers. However,<br>with Darwin 1.3, x86 became a "supported" platform. Not only that,<br>Darwin/x86 1.3 booted from a CD and installed rather than needing<br>to be restored from a back on OS 9. This opened up possibilities<br>of doing upgrade installs, and potential freedom from our Mac OS X<br>oppressors, by being able to work on a platform Mac OS X didn't have.<br>Additionally, it opened Darwin up to a whole new world of contributors:<br>those without Macs. Clearly, if you had a Mac and were able to run<br>Mac OS X (Darwin and Mac OS X had the same hardware requirements),<br>you'd run Mac OS X. But now, people without Macs could run Darwin,<br>and it gave us hope.
However, there was a problem. Already, over the course of<br>a year, Apple was...