With Mac OS X, Apple is bringing Unix to a large, new audience. In part one of this article, I offered a brief history of Unix and mapped out how Unix will provide the basis of Mac OS X. The Macintosh user community is comprised of well over 25 million people, so as Apple paves a new path - even if most don't follow it immediately (or ever) - the implications for the industry are significant. Apple's last major change of direction, the iMac, introduced translucent colors, a strikingly original case design, USB, the removal of floppy disks and serial ports, and Internet access as a major feature. The iMac had a profound impact on the whole industry - even PC and PDA users without iMacs were affected by the iMac's endorsement of colors and USB. To understand Apple's latest decisions behind Mac OS X and its impact, it's necessary to examine Mac OS X, Unix, and the industry as a whole.
Competition Makes Strange Bedfellows -- In this industry, the dominant player is obvious: Microsoft. In fact, Microsoft is so much larger and more entrenched than any other company, including Apple, that they're almost a feature of the landscape. All Apple's plans for years have been made around the realities of playing with, against, and off of Windows PCs. As it turns out, this is just as true for Linux and BSD Unix users - perhaps even more so, because the PCs that Linux and BSD generally run on can (and often do) also run Windows. This raises an interesting question: are Apple and users of Unix-based systems natural allies, trying to carve different niches from the Windows market? It would seem that by basing Mac OS X on BSD Unix, at least Apple is endorsing this view.
Despite their fundamental differences, the Mac OS and Unix have a number of interesting similarities. Both platforms are shadowed by Microsoft's dominance but boast vigorous support within their own communities. The Mac OS and Unix have to "fit in and stand out," and success is often determined by how well they integrate with Windows. Windows can't (without the addition of a utility like Mediafour's MacDrive 2000) read Mac or Unix file formats or disk formats, but Macs and many Unix systems can both read Windows (FAT) floppies and hard disks. In contrast, Windows has so much market share that various "private" Microsoft technologies, such as the Word .doc file format and the Win32 APIs, have become de facto standards. In turn, Macs and Unix machines support these Microsoft-originated technologies to varying degrees, with Mac OS features like File Exchange and third-party products like Thursby Software's DAVE, which enables Macs to do Windows file sharing. The Mac OS and Unix must offer major advantages to be considered in spite of compatibility issues and have to take a much more open attitude towards compatibility and interoperability.
Because the capability to run other operating systems, particularly Windows, is so valuable, emulators are popular on Macs and Unix machines. Full emulators like Virtual PC provide all the capabilities of a foreign computer system, allowing other operating systems to run within the emulator. In this way, Virtual PC can run Windows, Linux, and other operating systems intended for Intel-based PCs. An alternative is to replicate only the operating system's functionality with a replacement compatibility layer. This approach is popular on PCs, where the processors are the same, so emulating just Windows, instead of a whole PC, provides a workable system. This is also how the Classic environment in Mac OS X works, and how the free Mac-on-Linux project runs Mac OS 8.6 and later under Linux on PowerPC-based computers.
Unix is often seen as the operating system for serious computer experts. At the other end of the continuum, Macs are "computers for the rest of us". Together, Unix and the Mac OS bracket Microsoft's huge lump in the bell curve of platform usage. Macs and Unix often differentiate themselves from Windows on the same issues, but take opposite tacks in doing so. Examples of such divergence include the Mac's ease of use, tight hardware-software integration, and - until now - unified control over hardware and operating system development; in contrast, Unix supporters tout advantages such as flexibility, control, broad hardware support, and reliance on open source projects.
Real World Differences -- Despite these similarities, we shouldn't lose sight of the fact that the Mac OS and Unix are in many ways utterly different. Unix has a long and distinguished history as a collaborative research project and programming environment. Over the years, it has matured into a robust and efficient networking platform, while remaining excellent as a development environment. In obvious contrast, Apple considers Macs to be powerful appliances, or sometimes technological agents, but doesn't expect users to develop software or explore the system. As open source advocates love to point out, Unix development is a worldwide and long-running effort, so Unix is very mature in their terms - stable and fast. On the other hand, Mac OS 9's maturity is visible in its consistency among applications and its well-honed interface. This is part of why the recent QuickTime and Sherlock interfaces (and many of the changes in Mac OS X's interface) cause such dismay among Mac users - they throw years of interface improvement and familiarity out the window, abandoning a long history of deliberate and incremental improvement in favor of novelty and glitz.
Over its long history, Unix has developed an extensive stable of software, especially in the networking, programming, and security arenas. "Productivity" applications, however, are much less common on Unix than on Macs and Windows, where they're staples - used by millions of people each day. A quick glance at the Freshmeat Linux/Unix software release site shows a wealth of programming tools, servers, and hacks, but little in the word processing, publishing, and spreadsheet areas. This makes a lot of sense when you remember that Linux machines can also run Windows, so many Linux users may also be using Microsoft Office under Windows on the same machines they use for Linux, or on secondary machines or client workstations, reserving the Unix machines as servers or programming environments. This is something of a self-fulfilling prophecy - because Unix is so impoverished in business software, Unix users generally require additional systems for such work, and because they have alternatives, there's less demand for these applications on Unix. As a result, Unix remains an excellent server platform, with notably different usage patterns than Mac OS and Windows.
Grand Unixification -- With Mac OS X, Apple has done a fair job of reconciling these two worlds in a brand-new combination, and an excellent job of isolating them enough that users can remain within a single familiar environment if desired. There are rough edges (particularly the three different views of the file structure: Mac OS 9/Classic, the slightly different Mac OS X layout, and the NeXT/Unix structure), but when Mac OS X is running, it's easy to ignore the Unix aspects, and remain in a familiar Mac environment with bigger icons, different buttons, and a much more limited Desktop.
This is apparently Apple's expectation for most users - that they will completely ignore the underlying Darwin layer, while still benefiting from its stability and performance. Alternatively, if you use the included Terminal program to log into the Darwin environment, you encounter a fairly normal Unix installation (except that, again, files are in strange places - a leftover from Mac OS X's NeXT heritage).
In additional to trying to create a unified system, Apple is also trying to move the proprietary work NeXT did on NeXTstep back into the BSD/Unix mainstream. Apple has repeatedly stated that their goal is to use as much generic BSD code as possible, thus saving time and money for maintenance of proprietary Apple software. As part of this process, Apple has released Darwin under an open source license, which means the program code is available for non-Apple developers to see, critique, and modify. In licensing terms, Mac OS X consists of two parts. The Darwin code is public and free, and the rest (the graphical and Mac-specific parts) is proprietary. This is a reasonable division, as Apple's focus has never been robust core operating system functionality, but rather the user interface. If taking Darwin open source proves successful [and comments from Darwin developers at MacHack 2000 seemed to indicate it already has been -Adam], Apple will garner significant development support from other developers, helping to improve the Darwin foundation for Mac OS X, and freeing more Apple developers to focus on Apple's strengths.
This split between the open source foundation and proprietary upper layers gives Apple what they've been desperately seeking for years: a version of the Mac OS that includes all the buzzwords important for a good, fast, stable operating system. BSD is stable and features preemptive multitasking, and provides excellent virtual memory and crash protection. Apple's hope is that existing Macintosh users will appreciate these features, and that they'll also attract a new class of users: serious network users and server administrators. With Mac OS X, Apple is taking a stride towards making the Mac an excellent server platform - even for serving Windows users. Plus, with high-bandwidth Internet connections becoming available and popular, Apple might just be on the cusp of empowering another leap in self-publishing. Mac OS X now includes Apache, gcc, cron, ssh, mainstream Perl, and a whole slate of Unix-based staples which were simply unavailable for Macs before, or required interface hacks and significant porting effort to run on the Mac. Mac OS X with Apache is already a much better personal server platform than Windows 98 or Microsoft's new Windows Me.
What Does Unix Mean to Me? Historically, Macs have had limited support for the latest Internet protocols and security tools. Although Mac OS 9 has an excellent track record for security, and there are several excellent mail, Web, FTP, and news clients, Macs have been too small a population to garner the same level of support as Windows from many vendors. This results in fewer options for virtual private networks (VPNs), PPP over Ethernet (PPoE, required for many cable and DSL ISPs), and similar networking tools and utilities. Mac OS X brings Unix-based tools to fill these needs. In many areas, this move should help eliminate the problems of being a niche player which have plagued the Mac OS for years.
The union of the Mac OS with Unix also has interesting sociopolitical implications for Mac users in the larger industry. With the Apple and Apple II, Apple made computers much more affordable and accessible to individual users. With the original Power Macintoshes, Apple became the only high-volume RISC (Reduced Instruction Set Computing, a design model that enabled PowerPCs to be so much faster than the previous Motorola 68000 series) computer vendor, bringing a major speed improvement to its users. If Mac OS X is even somewhat successful, within a year it will more than double the number of computer systems running BSD-based operating systems, even though Mac OS X users won't see their computers as Unix systems.
It will be interesting to see if and how Apple uses this new leverage into the Unix world, and if Apple takes advantage of the power of Unix directly, or instead restricts its focus to Aqua-based graphical applications. Thanks to hybrid applications, Apple may not have to make the choice. The FizzillaMach Web browser, for instance, uses a Carbon front end with an Aqua interface, but the standard Unix-based Mozilla back end for high-performance threaded networking. In the future, I hope to see Mac developers using the powerful Unix utilities included in Darwin from their Mac applications, perhaps through AppleScript scripts that pass text from Carbon to command-line programs like grep, sed, and wget, (which find matches, find and replace text, and get Web pages and sites, respectively) returning results to the Mac applications.
Apple is bringing us into the Unix world, like it or not. It is important to remember that Mac OS X's Darwin foundation offers major advantages for Mac users in two very different areas. First, it provides much better reliability and power than Mac OS 9, almost invisibly. Even users who completely ignore Darwin will silently benefit from its robustness and performance. Second, Darwin provides access to the tools and operating system facilities that make Unix so powerful, like shell scripting and networking tools.
Each user of Mac OS X will have to make their own decisions on whether and how much to venture beyond familiar Macintosh territory into the domain of Unix, but the capability will always be there. For me, at least, it's been the beginning of an exciting journey.
[Chris Pepper is a Linux and Solaris system administrator in New York, and he's just delighted that his Mac workstations are now running Unix like the servers he coddles for a living. If you want Chris to coddle your servers, check out his resume and contact him directly. His Mac OS X Software and Information site has links to useful information and a few Unix ports for Apple's new operating systems.]