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

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.

tags: , , , , ,
  • Tom B

    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

  • http://www.red-bean.com/kfogel/ Karl Fogel

    Hear, hear. Well said, Andy.

  • Gagan Rajpal

    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.

  • http://blog.pclark.net Peter Clark

    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.

    @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

  • http://www.somebits.com/weblog/ Nelson Minar

    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

    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)

  • http://qole.org qole

    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

    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.

  • http://boblopez.blogger.com Dr Bob

    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

    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?