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.