Mac OS X: Rhapsody a Mac Developer Could Love
Last week during his keynote address at Apple’s Worldwide Developers Conference, Steve Jobs outlined Apple’s plans for Mac OS 8 and Rhapsody and introduced two new elements: the Carbon API and Mac OS X ("Ten"). As WWDC unfolded, Apple revealed more information about Mac OS X and future operating system plans. Although many unanswered questions remain, enough detail is available to begin analyzing Apple’s OS plans.
The Lineage of Mac OS X — Although this is an oversimplification, Mac OS X is best described as an enhanced version of Rhapsody, Apple’s forthcoming operating system derived from NeXT’s OpenStep technology. Rhapsody is based on the Mach microkernel and runs a version of BSD Unix under the hood, although it hides the Unix command line unless the user specifically asks for it. Also included is the "Blue Box," essentially a Rhapsody application that runs the Mac OS and thus Mac OS applications, although those applications don’t receive the benefits of the modern Rhapsody OS, like memory protection and preemptive multitasking.
Rhapsody also includes the Yellow Box, a sophisticated application environment. Mac OS applications would have to be rewritten to take advantage of the Yellow Box, but in doing so would become "first class citizens" under Rhapsody, gaining the advantages of the new operating system. In addition, developers would be able to recompile Yellow Box applications for versions of the Yellow Box which run on Intel-based systems or even under the old Mac OS. These capabilities would, arguably, make the Yellow Box the best choice for cross-platform development. Rhapsody also supports Java, so Java applications under Rhapsody reap the full benefits of the operating system.
So, essentially Rhapsody can run four kinds of programs:
- Mac OS (via the Blue Box)
- Yellow Box
- BSD Unix
Mac OS X adds to this picture. Mac OS X will still be based on the Mach microkernel (version 3), and will also run BSD Unix under the hood and feature a Blue Box that will run most existing Mac OS applications, although without the advanced features of the new operating system. And, Mac OS X will still include Java support and the Yellow Box.
The problem that Apple – and Macintosh developers – encountered with Rhapsody was that to gain the benefits of a modern operating system, developers had to rewrite their applications for the Yellow Box from scratch. So, Apple has introduced the Carbon API, a large subset of the existing Mac OS system services that will be fully supported under Mac OS X. Programs written to the Carbon API gain all the benefits of a modern operating system, but don’t need to have their Mac OS source code entirely rewritten. According to Apple, typical Mac OS applications would need a 10 percent tune-up to become a "carbon life form." In addition, Apple plans to release Carbon as a set of libraries for the current Mac OS 8.x, so "carbon life forms" can run under Mac OS X and under future derivations of Mac OS 8 without alteration.
So, Mac OS X will be able to run five kinds of programs:
- Mac OS (via the Blue Box)
- Yellow Box
- BSD Unix
Architecturally, Mac OS X is essentially the same as Rhapsody: the difference is that it’s allowing a much simpler (and more practical) means for current Mac OS developers to make their programs first class citizens.
What’s In & What’s Out… For Now — In addition to the primary features of Rhapsody, Apple also elaborated on some of the components of Mac OS X at WWDC.
Blue Box applications will run alongside other Mac OS X applications, rather than the Blue Box being accessible only via a full-screen mode or within a separate window. This is a key point for the usability of Blue Box applications, although it may lead to some user confusion about which applications are running in the Blue Box, which are not, and what the differences might be.
Mac OS X will not have a 68K emulator, although (presumably) the Blue Box within Mac OS X will contain an emulator in order to run current Mac OS applications. Mac OS X will be fully PowerPC-native.
Display Postscript, a much-ballyhooed feature of OpenStep and Rhapsody, will not be present in Mac OS X since Adobe has ceased development of Display PostScript. Instead, Apple says it will support a PostScript-like imaging model in Mac OS X and replace the default EPS image format used in OpenStep with Adobe’s PDF format. Apple also says it will be adding GX-like capabilities to both QuickDraw and Mac OS X’s typographic features. Unfortunately, QuickDraw GX will be dead under Mac OS X and Carbon, which is a shame since it’s considerably more advanced than anything Adobe has to offer and Apple owns it.
Mac OS X will include full scripting support for Carbon, Yellow Box, Java, and Mac OS applications.
Apple says full-featured cryptographic technologies will be included in Mac OS X, along with utilities resembling the digital signature manager and keychain that originally appeared with PowerTalk in System 7 Pro.
Although Apple has been emphatic about releasing libraries to enable Mac OS 8.x to run Carbon applications, Apple hasn’t been clear about whether it will live up to last year’s big WWDC promise to release the Yellow Box for Mac OS 8.x.
Mac OS X will be "optimized" for PowerPC G3 systems; it’s not clear whether Mac OS X will support earlier PowerPC 603- or 604-based machines.
A perusal through Apple’s preliminary specification for the Carbon API reveals that some programs will be harder to port to Mac OS X than others. Extensions as we know them won’t exist under Mac OS X – although they apparently can load under the Blue Box and thus only be available to Blue Box applications, which could lead to a confusing user experience. It’s not clear what sort of mechanism Apple will provide under Mac OS X to replace extensions. In addition, any program that accesses hardware directly – like Ethernet or PC Cards – will need to be revised to run under Carbon since hardware access is the exclusive province of the Mac OS X operating system. Apple hasn’t made decisions on the extent to which some technologies like Game Sprockets, Speech, and the Power Manager will be supported in Carbon.
You can check out session notes from WWDC online, although, unfortunately, much of this material consists of large JPEG images of session slides. Apple’s preliminary Carbon specification is also available (in PDF format) from Apple’s Mac OS X developer site.
What About Intel? A big question on the minds of some developers is the fate of Yellow Box for Intel, a set of Windows 95/NT libraries that allow applications written for the Yellow Box to run on the Windows platform with virtually no fuss. According to Apple, the Intel version of Yellow Box is alive and well, but the Intel runtime will not be freely distributable, in contradiction to what Apple said at WWDC in 1997. Reportedly per-copy royalty fees will be small (in the $20 arena) and Apple is working on the situation, but the fact there’s a fee at all could pose a major problem for developers who are trying to do cross-platform development work for Rhapsody or Mac OS X.
Another common question is whether Apple plans to develop Mac OS X for Intel processors: for now, the answer is no. Although the Mach/BSD underpinnings of Mac OS X could be made to run on Intel hardware – and Carbon does not require Macintosh ROMs – all reports indicate Apple has no plans to port either the Blue Box or Carbon to Intel processors.
Schedule in a Nutshell — Here, then, is Apple’s current schedule of operating system releases, along with their lineage, key features, and requirements.
Q3 1998: Mac OS 8.5, codenamed Allegro. A major revision derived from the current Mac OS 8.1 release, which features PowerPC-native AppleScript; HTML-based help (and the V-Twin text search engine) in Apple Guide; anti-aliased text capabilities; appearance "themes"; Internet Config 2.0; new Navigation Services; and numerous interface enhancements. Mac OS 8.5 will be available only for PowerPC systems.
Q3 1998: Rhapsody 1.0. Derived from OpenStep technologies acquired from NeXT. Features: Mach kernel running BSD Unix; Blue Box for running Mac OS applications, Yellow Box for Rhapsody applications, plus Java. Intended for publishing and server markets; should require a PCI-based PowerPC system.
Q1 1999: Mac OS 8.6(?). Incremental update to Mac OS 8.5; support for new CPUs, bug fixes. PowerPC systems only.
Q1 1999: First developer seeds of Mac OS X.
Q3 1999: Mac OS 9(?), codenamed Sonata. Major update to the Mac OS.
Q3 1999: Mac OS X. Features a Mach 3.0 kernel running BSD Unix; support for Mac OS 8 programs via Blue Box, Carbon, Java, and Yellow Box. Optimized for PowerPC G3 systems.
Note that the current release schedule calls for Mac OS X to appear at the same time as a major update to the existing Mac OS, indicating Apple anticipates a transitional period where both Mac OS X and future versions of the current Mac OS will be available to consumers. It’s not clear how Apple plans to differentiate between these releases, but it’s likely Mac OS X, like Rhapsody, will be initially targeted at the high end of the Macintosh market – publishing, media production, servers, and power users – while users with older machines or smaller budgets can continue to update their systems with improved versions of the old Mac OS, sans all the Rhapsody technology.
What Will Developers Do? It’s difficult to look into Apple’s operating system future. Mac OS X won’t ship for about a year and a half; considering that a year and a half ago, the Mac development world was in a tizzy about the BeOS, take all predictions with a grain of salt.
Although Rhapsody offers key technologies the Macintosh needs in an operating system along with several compelling features, few developers are enthusiastic about rewriting applications from the ground up. Until now, most figured they’d let Rhapsody’s Blue Box support their current Mac OS programs, then see what happened. After all, if they were going to rewrite from scratch, why not rewrite for Windows NT, which already exists and has an expanding market share?
With Mac OS X, however, Apple’s message to its developers is much more palatable: most programs will need only minor revisions to conform to the Carbon API, and developers can continue to use their current Mac OS programming expertise under Mac OS X. Increasingly, the transition from Mac OS 8 to Carbon is being compared with the transition from 68K to PowerPC: difficult for some programs, but not bad for most. Not surprisingly, Metrowerks – the company that almost single-handedly made it possible for Mac developers to produce PowerPC applications five years ago – has announced it will fully support Carbon in its forthcoming CodeWarrior releases (withdrawing its similar Latitude technology for Rhapsody). Although Mac OS X won’t ship until a year after Rhapsody’s debut, it stands a better chance of widespread developer adoption.
However, the introduction of the Carbon API in Mac OS X paints a large question mark on the future of the Yellow Box. Although Carbon brings more developers and applications to Mac OS X, those developers aren’t any more likely to rewrite their applications for the Yellow Box than they were a year ago. Apple is telling developers any new development should be done for the Yellow Box, especially if the developers intend to release Windows versions of those programs. However, if developers must pay a licensing fee for Yellow Box applications on Intel hardware and Apple backs away from its promise to release Yellow Box for the Mac OS, programming for the Yellow Box might become purely an intellectual pursuit.