A few years ago Apple
and open source were not well acquainted. As the above writeup comments, open source software
was rare. Apple
's operating system ran on proprietary hardware, and their brief experiment with cloning came to an end only two years after it started, with licensees such as Power Computing
or Daystar Digital
throwing in the towel one after the other.
Fast forward to 2003: Apple's operating system has an open source core, Darwin, derived from FreeBSD (which Apple calls its "reference platform". The platform's Unix roots have brought in a flurry of open source software, from Apache to XFree86 via the GIMP. Apple's recently released browser Safari has an open source HTML renderer : KHTML.
The coming of open source to Apple
The original plan for Apple's next generation operation system was very different. Code-named Copland, it was to bring preemptive multitasking, protected memory and basically move the Mac OS into the modern world, with 100% backwards compatibility. The project basically got bogged down, missing deadline after deadline. In December 1996 Apple acquired NeXT, with the aim of basing its next generation operating system on NeXTStep. One of the great questions at the time was whether this would simply be a technology transfer? NeXTStep was based on BSD, would Apple hide away the BSD roots or would Apple embrace the community and philosophy from which its Unix technologies had come forth? The answer came in 1999, when Apple announced that Darwin, the name given to Mac OS X's BSD layer would be open sourced.
Mac OS X's open source components are released under the Apple Public Source License. This was produced by Apple after consultation with the Open Source Initiative (OSI) and careful examination of licenses such as the GPL, the BSD license, Sun's Community Source License etc... Like these licenses it tries to strike a fine balance between protecting their intellectual property and promoting development. The full legalese is available at http://www.opensource.apple.com/apsl/. Initial versions of this license were criticised by some members of the open source community. One clause that caused particular concern was one allowing Apple to terminate a developer's right to the code at any time. As far as I can tell, this clause is gone from the current version of the license.
What has Apple got from open source ?
An awful lot. As said previously, underneath the pretty buttons that pulse and widgets that glow, beats a BSD heart that gives Mac OS X its robustness. There's no telling how long it would have taken had Apple had to write the whole thing from scratch.
By releasing an operating system with a fully functional BSD subsystem Apple made innumerable open source packages available. These days a very large portion of projects require just the usual ./configure, make and make install to work. It doesn't stop there. There is now a wealth of open source software written in Cocoa. These are often GUIs that drive command line tools. This has brought many applications to the Mac OS X platform, such as MPlayer or vlc.
Guess where Jaguar's Windows File Sharing comes from? That's right, samba. The "Personal Web Sharing"? That's Apache. The compiler used by Project Builder (and more recently, Xcode), the bundled development environment? No prizes for guessing that it's gcc. Apple's X11 for Mac OS X is based on XFree86.
The list goes on and on.
Apple's Safari is the latest example. Without using an open source HTML renderer, it's unlikely that Apple would have managed to produce a browser that, while still a beta is basically functional, in only 12 months.
Apple hasn't just gained applications, it's also the developers of these applications that are a valuable asset to the platform as a whole. Some of these developers now work for Apple, such as Jordan K. Hubbard the co-founder of the FreeBSD project who is now manager of BSD technology at Apple, or David Hyatt, who is the originator of the Chimera web browser.
When it comes to finding security holes and validating security technology, there simply is nothing better than peer review.
What has Apple given back?
Apple has been a relatively nice open source player so far. For example while developing Safari many optimisations were made to the Konqueror code. When Safari was released, the code for all the updates was released and a detailed changelog was sent to KDE developers, as well as an email thanking them for their work and complimenting them on it. The mail also explained how their code it had been used in Safari and asked them for feedback. (The full text of the email can be found at http://mkb.n3.net/khtml.txt or http://lists.kde.org/?l=kfm-devel&m=104197092318639&w=2 and the email with the changelog is at http://lists.kde.org/?l=kfm-devel&m=104196912316326&w=2)
Apple's BSD layer, Darwin is open source. The BSD license did not require that Apple release the sources for Darwin. I believe Apple's decision to open source Darwin shows genuine goodwill.
Maybe Apple's greatest contribution is a large team of developers that are paid to do work that filters back to the open source community. Apple's improvements to KHTML come under this heading.
Apple's implementation of Zeroconf, also known as Rendezvous, has also been open sourced. Apple has many engineers working on programs such as Apache, gcc, gdb and the enhancements they make are usually fed back to the maintainers for these projects.
Apple is not a completely open source company. Anything above the BSD layer in Mac OS X is closed source. These includes things like the Quartz graphics layer (that uses pdf rather than the more open display postscript standard that was a candidate at one point), the Finder and the Aqua user interface. Likewise for Safari, the code that Apple has released is for the bits that they borrowed from Konqueror, i.e. the HTML renderer. The rest of the application is closed source.
Apple has certainly come a long way in the past few years. While the points in li's writeup were certainly true at the time they were made, Apple is now one of the few major companies that have successfuly embraced open source.