Darwin and BSD
Q. Why is Darwin based on BSD UNIX?
A. There are several reasons for this. The first one is historical. Mac OS X draws a lot of its code base from a system called OPENSTEP, created by NeXT Software, which Apple bought in 1997. OPENSTEP and its predecessor, NEXTSTEP, were based on 4.3 BSD. BSD has always had a rich academic developer community behind it, and while much of the original BSD UNIX was not free, its source code was available to anyone who obtained a license for it. The wide development community that arose to support BSD contributed to many of the ideas that drive today's open source community. That community also facilitated a great deal of research, including work to put BSD on Mach at Carnegie Mellon University-code that eventually found its way to NeXT and now to Apple.
Second, BSD is widely respected as clean, robust, and maintainable code. There remains a strong developer community that knows the code base very well and continues the work started at UC Berkeley. In addition, the BSD license is very open, which has made it easy for us to leverage its compelling core technology to enhance the Mac OS.
Best of all, as a result of making this choice, Apple is now an active participant in the BSD community. This allows us to make sure that the capabilities important to Mac users are added to BSD. Being part of the BSD community also gives us access to excellent peer review and keeps us on a path to adopt and contribute to open standards, the benefits of which are well known to our developers. The BSD community has been extremely supportive of Apple since we first approached NetBSD, FreeBSD, and others about doing a better job of sharing code. That happened even before we announced Darwin. Now we're pleased to have become an even more active participant in the community. Q. Where does Darwin fit into the BSD family?
A. The purpose of Darwin is to provide the core system software for Mac OS X. It is not designed to be an alternative to other excellent BSD options such as FreeBSD, NetBSD, and OpenBSD. Darwin is simply BSD tweaked in ways we think will help Apple deliver the next great version of the Mac OS. We should note, however, that apart from a few architectural differences (such as our use of the Mach kernel), we try to keep Darwin as compatible as possible with FreeBSD (our BSD reference platform).
Q. Does Darwin offer any benefits to someone who's already using another version of BSD?
A. Yes, it does. Darwin drives Mac OS X, which we consider a compelling new operating system not only for existing Macintosh customers, but also for the BSD community and other UNIX users. Darwin is a great example of BSD running on the PowerPC platform. It offers a well-defined code base from a major computer manufacturer, as well as a really cool graphical user interface (Mac OS X).
Q. Why did Apple decide to share all of its modifications with the BSD community?
A. Although the BSD licenses don't require companies to post their sources, divergent code bases are very hard to maintain. We believe that the open source model is the most effective form of development for certain types of software. By pooling our expertise with the open source development community, we expect to improve the quality, performance, and feature set of our software. In addition, we realize that many developers enjoy working with open source software, and we want to give them the opportunity to use that kind of environment while they're creating solutions for Apple customers.
Although many people think that the rather simple BSD license does little to protect the openness of the code, it has contributed significantly to Apple's ability to adapt the code for the benefit of Mac users. Its emphasis on sharing code has also heightened our own commitment to the open development process.