Andy Oram

How Free Software Contributed to the Success of Steve Jobs and Apple

by @praxagora  | +Andy Oram  | Comments: 1126 August 2011

We all have to celebrate the career of Steve Jobs and thank him for the tremendous improvements he has brought to computer interfaces and hardware. The guy's amazing, OK? But Apple is something of a control-freak environment with a hard-handed approach to things such as product announcements and the App Store. An undercurrent of disgruntled consumers and policy-minded free software advocates has transferred their historic antipathy for Microsoft to Apple, now that it has become the brilliant business success of the new century. So I'd like to bring everybody together again for an acknowledgment of how important free software has been to Jobs and to Apple.

In the great Second Coming, when Jobs returned to Apple 1996, he drove two big changes right away: porting over OpenSTEP from NeXT computer and adopting a version of the open source BSD as Apple's new operating system. OpenSTEP was a proprietary, platform-independent set of APIs for Solaris, Windows, and NeXTSTEP. It was derived from NeXTSTEP itself, the operating system that ran on Jobs's m68k-based NeXT computers. But NeXT worked with the then-powerful Sun Microsystems, which had based its own wildly popular SunOS on BSD. OpenSTEP became the basis for the familiar Cocoa libraries and run-time that Apple developers now depend on.

(It may seem strange to use the word "Open" in the name of a proprietary system. But back then--and in some circles even today--the most rudimentary efforts at interoperability were used to justify the term. Anybody remember the Open Software Foundation?)

The foundation for the ground-breaking and still strong Mac OS X was a version of BSD based on NetBSD and FreeBSD but incorporating some unique elements. Adopting BSD brought numerous advantages: it permitted the Mac to multitask, and it made simple the porting of a huge range of Unix-based and BSD-based applications that would expand the Mac from its original role as a desktop for creative artists to a much more robust and widely deployable system.

Particularly valuable to Apple--and related to its adoption of a Unix variant--was the port of open source Samba, developed for Linux. Samba reverse engineers the SMB/CIFS protocol and related protocols that permit computers to join Microsoft local networks. Apple also (like NeXT) used the historic GCC compiler developed by Richard Stallman, and adopted KDE's browser engine (now known as Webkit) for Safari. These free software packages were insanely great; that's why Mac OS X incorporated them.

I think it is the familiarity of the Unix and BSD software that makes the Mac popular among geeks; it is now by far the most popular laptop one sees at computer conferences. And because of all the great server software that runs on the Mac thanks to its BSD core, it's gradually growing in popularity as a server for homes and small businesses.

Apple knew it had a good thing in its BSD-based kernel, because it chose to use it also in the iPhone and follow-on products. As I have reported before, the presence of BSD libraries and tools helped a group of free software advocates reverse engineer the iPhone API and create a public library that permitted people outside Apple for the first time to create applications for the iPhone. This led to a thriving community of iPhone apps, none of them approved by Apple of course, but Apple came out with its own API many months later and legitimized the external developer community with its App Store.

Although the BSD license allowed Apple to keep its changes proprietary, it chose to open-source the resulting operating system under the name Darwin. As a separate project, though, Darwin hasn't seen wide use.

BSD was not Jobs's first alliance with free software. The NeXT computer was based on the open source Mach 3 kernel developed by Richard Rashid at Carnegie Mellon University. Mach emulated FreeBSD (even though Rashid personally expressed a distaste for it) for its programmer and user interface. Some elements of Mach 3 were incorporated into Darwin, and (to digress a bit) Mach 3 has gone on to have major effects on the computer industry. It was an inspiration for the microkernel design of Microsoft's NT system, which thrust Microsoft into the modern age of operating systems and servers especially. And Rashid himself took a position as Senior Vice President of Research at Microsoft a few years ago.

The impacts of broad, leaderless, idea-based movements are often surprising and hard to trace, and that's true of open source and free software. The triumphs of Steve Jobs demonstrate this principle--even though free software is the antithesis of how Apple runs its own business. Innovators such as Andrew Tridgell, with Samba and rsync, just keep amazing us over and over again, showing that free software doesn't recognize limits to its accomplishments. A lot of computing history would be very different, and poorer, without it.

Thanks to Karl Fogel, Brian Jepson, and Don Marti for comments that enhanced this posting.

Comments: 11

Tom B [26 August 2011 01:02 PM]

Hmmm... I must admit I never remember Mach 3 being mentioned as having any influence on Win NT. If anything Cutler and his group from DEC who joined MicroSoft (as it was written at that time) showed influences from VMS and RSX-11?

Having a quick look at the source of all knowledge seems to agree... http://en.wikipedia.org/wiki/Windows_NT

Karl Fogel [26 August 2011 02:34 PM]

Hear, hear. Well said, Andy.

Gagan Rajpal [28 August 2011 08:43 AM]

The iphone development took off not because people reverse engineered the iphone api ... as a proof to that there are only a handful of truly useful iphone apps available in cydia. The iphone dev took off because the iphone raised the bar on smart phones and introduced the App Store, allowing developers to monetize from their apps.

If being BSD was the only reason for using a Mac, most people in conferences would be running a linux distribution. people use Mac because it is partly BSD, but mainly it just simply works and gets out of the users way.

Peter Clark [29 August 2011 08:43 AM]

A couple minor corrections - at the time the OpenStep work was going on at Sun, Sun's operating system, Solaris, had already transitioned from a BSD-like kernel (the SunOS 4.1.x line) to a System-Vr4 based kernel - Solaris 2. The older NeXTStep also had a BSD layer atop Mach from the beginning, well prior to its transformation to OpenStep or Mac OS/X.

Stephen M. [29 August 2011 10:33 AM]

@Tom B - lack of a reference on Wikipedia doesn't really prove anything.

Here's an MS doc which mentions Mach being an influence on NT:

"The technique that Windows NT uses is called a 'microkernel' and was influenced by the Mach microkernel developed at Carnegie Mellon University."

http://technet.microsoft.com/en-us/library/cc768132.aspx

Nelson Minar [29 August 2011 11:07 AM]

Thanks for the history! It's worth noting Apple has a really nice open source site, including a simple list of downloads for open source packages used in their products. It's at http://www.opensource.apple.com/

Frank [29 August 2011 03:34 PM]

Another minor correction: Samba isn't reverse engineered. As Andrew Tridgewell says "For future reference, the terms we usually use to describe what we do in developing Samba are "network analysis" or "protocol analysis". If you see someone describing Samba as "reverse engineering" then please ask them to use these terms instead, or point them at this paper." (http://www.groklaw.net/article.php?story=20050205010415933)

qole [ 1 September 2011 11:08 AM]

Thanks for reminding people how important OSS has been in Apple's success.

But... No mention of CUPS?

One of the most important printing systems in the open source world, currently maintained by ... Apple!

http://www.cups.org/

David [ 2 September 2011 02:00 PM]

NeXTStep was Mach 2.5 based, which is not a uK as such. Both the OS personality and kernel run in kernel space.

A couple of interesting points. Most of the CMU Mach team apart from David Black (and Avie of course) were hired by Microsoft to work on "Cairo". I spoke to one of the team who said they'd basically been hired "so as not to go anywhere else, but they had no defined role".

The OSF considered the NT microkernel as the basis of OSF/1. So we would have had a Posix/Unix like layer on top of NT !

The big issue with Mach 3.0 is that it was just like 2.5 but 10% slower due to the second context switch. It was a hard sell to clients.

Dr Bob [11 September 2011 07:46 PM]

The title of this article does not match the content, the acquisition of NeXT by Apple was anything but free, it cost Apple $429 million and 1.5 million shares of Apple stock.

For that kind of money they could have developed an SMB/CIFS client, etc. and had $300 million left over.

My point being that for Apple, going with the "free" software was not in any way free.

Brad [22 October 2011 08:15 AM]

Steve Jobs wonderful?

He ripped-off Free BSD/UNIX/Linux, removed (and then charged for) what should have been there already, made billions selling free software, put it in a shiny box, sold it and everyone thinks he is a hero?

Really?

Surely the GNU have something to say about this?