# Rhapsody (operating system)

Rhapsody is an operating system that was developed by Apple Computer after its purchase of NeXT in the late 1990s. It is the fifth major release of the Mach-based operating system that was developed at NeXT in the late 1980s, previously called OPENSTEP and NEXTSTEP. Rhapsody was targeted to developers for a transition period between the Classic Mac OS and Mac OS X. Rhapsody represented a new and exploratory strategy for Apple, more than an operating system, and runs on x86-based PCs and on Power Macintosh.
Rhapsody's OPENSTEP based Yellow Box API frameworks were ported to Windows NT for creating cross-platform applications. Eventually, the non-Apple platforms were discontinued, and later versions consist primarily of the OPENSTEP operating system ported to Power Macintosh, merging the Copland-originated GUI of Mac OS 8 with that of OPENSTEP. Several existing classic Mac OS frameworks were ported, including QuickTime and AppleSearch. Rhapsody can run Mac OS 8 and its applications in a paravirtualization layer called Blue Box for backward compatibility during migration to Mac OS X.

## Background
### Naming

Rhapsody follows Apple's pattern through the 1990s of music-related codenames for operating system releases (see Rhapsody (music)). Apple had canceled its previous next-generation operating system strategy of Copland (named for American composer, Aaron Copland) and its pre-announced successor Gershwin (named for George Gershwin, composer of Rhapsody in Blue). Other musical code names include Harmony (Mac OS 7.6), Tempo (Mac OS 8), Allegro (Mac OS 8.5), and Sonata (Mac OS 9).

### Previous attempts to develop a successor to the Classic Mac OS

In the mid-1990s, Mac OS was falling behind Windows. In 1993, Microsoft had introduced the next-generation Windows NT, which was a processor-independent, multiprocessing and multi-user operating system. At the time, Mac OS was still a single-user OS, and had gained a reputation for being unstable. Apple made several attempts to develop modern replacements for Mac OS, which all failed, harming public confidence in the company, while Macintosh sales continued to decline. Apple's most promising next-generation operating system, Copland, was mismanaged and had to be abandoned in 1996. In response, Apple CEO Gil Amelio decided to acquire or license an already-built operating system from another company. Apple's executive team considered BeOS, NeXT's NeXTSTEP, Sun Microsystems' Solaris, and Windows NT, and eventually acquired NeXT in December 1996.

## Announcement

Rhapsody was announced by Gil Amelio at the January 7, 1997 Macworld Expo SF, and first demonstrated at the May 1997 Worldwide Developers Conference (WWDC).

### Pitch to developers

At Macworld SF 1997, Steve Jobs said that Mac OS and its Macintosh Toolbox placed developers on the "fifth floor", Windows NT on the "seventh floor", while Rhapsody's OpenStep libraries would let developers start on the "twentieth floor". Jobs argued that this would make it faster to implement existing apps, and would allow even small developer teams to create innovative apps. At the time, fewer than 25% of Americans used computers, and many thought the computing industry was "just waiting to take off"; most existing applications were office tools, and "the software for the vast majority of people [had] yet to be written". Jobs gave the examples of Lighthouse Design, which had created an entire office suite for NeXTSTEP with only 18 employees; Tim Berners-Lee, who had created WorldWideWeb, the first web browser, on NeXTSTEP; and Dell, which created its first eCommerce website using NeXT's WebObjects.
Since Yellow Box was also available on Windows as a dynamic-link library (DLL), Yellow Box apps would be able to run on both Rhapsody and Windows through a recompile. Microsoft provided no equivalent that would enable Win32 apps to run on other platforms. Additionally, Rhapsody itself could be installed on either PowerPC Macintoshes or Intel x86 PCs, enlarging developers' potential customer base.

### Pitch to users

Apple pitched Rhapsody to users by emphasizing its improved stability and responsiveness. For example, on classic Mac OS, incoming faxes could leave the machine frozen until the fax completes; and if an app crashed, it could take down the whole system and require a reboot, potentially leading to data loss. Additionally, Rhapsody would inherit NeXTSTEP's local network sharing functionality, and make it easy to share data across apps. At Macworld SF 1997, Steve Jobs vaunted NeXTSTEP's maturity by pointing out that it had been adopted by many large organizations, including Wall Street banks and the CIA. BYTE magazine described NeXTSTEP as "field-tested, time-proven code" in January 1998, ten years after the operating system's introduction.

### Planned transition from Mac OS

Apple's plan was to maintain compatibility with "most" existing Mac OS applications through Blue Box but require apps to be rewritten for Yellow Box to take advantage of Rhapsody's new features. Blue Box would run in a window, and support System 7 apps (Motorola 68k and PowerPC), but would only be able to support apps that did not need to communicate with the hardware. Throughout Rhapsody's development, Apple would continue to release major upgrades to the classic Mac OS, which would remain supported for several years after Rhapsody's public release.

## Architecture

Rhapsody runs on a modified Mach 2.5 kernel and 4.4BSD Unix environment. Atop that were the threaded, object-oriented Yellow Box libraries, the Blue Box compatibility layer for Mac OS applications, and a Java virtual machine. Rhapsody combines NeXT's OpenStep object-oriented framework, NeXT's other frameworks (WebObjects, Enterprise Objects Framework), and Apple's Mac OS technologies (including AppleScript, QuickTime Media Layer, ColorSync, Apple events). Rhapsody uses the Unix File System (UFS) for hard disks, and Network File System on network drives.
Pixels are drawn onscreen using Display PostScript instead of Mac OS's QuickDraw. Since Display PostScript relies on the same PostScript language that is used to communicate with printers, no conversion process is required when printing, and printed documents are more faithful to how they look onscreen.
Rhapsody supports app development in three programming languages: Objective-C, Java, and C++.

### Kernel

Rhapsody uses Carnegie Mellon University's Mach 2.5 kernel, which was modified to add support for the Network File System, SCSI disks, and removable devices like CD-ROMs and Jaz drives. This kernel lacks symmetric multiprocessing (SMP) support, which was planned to be added in a later release of Rhapsody that would use a Mach 3.0 kernel. Mach had been created at CMU by Avie Tevanian, who was in charge of Rhapsody's development as Apple's senior vice president of software engineering, a role he previously held at NeXT.
In a WWDC 1997 presentation, Jeff Robbin said Rhapsody was based on Mach 2.6.

### Blue Box

Blue Box is a non-reentrant virtualization layer that allows Rhapsody to run classic Mac OS apps. It was released after Rhapsody DR1, in the form of an application called MacOS.app that loaded a Macintosh ROM file stored on disk. Blue Box did not support Mac OS applications that needed hardware access or that relied on non-public Mac OS APIs.
Blue Box beta 1.0 only worked in full screen, requiring users to press ⌘ Cmd+↵ Enter to exit the environment, and it implements networking through Open Transport, instead of Rhapsody's BSD sockets. Later versions of Blue Box could run Mac OS in a window.
Rhapsody's Blue Box environment, available only on PowerPC due to paravirtualization, provides runtime compatibility with Mac OS 8 applications. All virtualized applications and their associated windows are encapsulated within a single Blue Box desktop window instead of being interspersed with native Yellow Box applications.
Blue Box later became the Classic environment, which remained in Mac OS X until Mac OS X Tiger, with support for Classic dropped in Mac OS X Leopard.

### Yellow Box

Yellow Box is Rhapsody's development platform. It consists of much of the OpenStep framework, combined with a runtime, and a development environment. Since Yellow Box also had a Windows NT implementation, apps made for it could also run natively on Microsoft Windows, and would look like normal Windows applications. Yellow Box includes three major frameworks: Foundation, Application Kit, and Display PostScript. It also includes NeXTSTEP's Project Builder and Interface Builder development tools.
Yellow Box has full support for preemptive multitasking, multithreading, and protected memory (which would have only been partially supported under the previous Copland project). Third-party apps would need to be rewritten for Yellow Box to take advantage of Rhapsody's new features.
In May 1997, Amelio announced that Yellow Box would be renamed Concert.
Yellow Box was later used as the foundation for Mac OS X's Cocoa framework.

### Java virtual machine

Rhapsody's Java virtual machine is derived from Sun's JDK 1.1.3, which was modified so that Java apps could call Yellow Box APIs. Rhapsody DR1 included Sun's Java compiler and libraries.

## Developer releases

Apple issued two developer releases of Rhapsody for both the PowerPC and Intel x86 architectures.

### Developer Release 1

The first developer release of Rhapsody was released on October 13, 1997 (for Power Macintosh) to 10,000 developers, who were given two CDs: the bootable Rhapsody installer, and another CD with sample source code (including a version of TextEdit in Java that calls Yellow Box APIs). Apple modified its implementation of Open Firmware to allow users to dual boot Rhapsody and Mac OS by holding down ⇪ Caps Lock. DR1 did not have Blue Box, and was missing many promised Mac OS technologies like QuickTime, AppleScript, and AppleTalk; its main purpose was to give developers a shipping version of Yellow Box so they could start rewriting their apps for it. DR1 has OPENSTEP's Workspace Manager instead of the Mac OS Finder. Within the following weeks, Apple also released the Windows version of the Yellow Box runtime, as well as DR1 of Rhapsody for PC Compatibles (Intel), and the first release of Blue Box.
The overall developer reaction to DR1 was positive. BYTE magazine's Tom Thompson described DR1 as a "Jekyll-and-Hyde mixture" of an "amazingly Mac-like" user interface and hard-to-use NeXTSTEP components, some of which could only be configured properly through the command line, but said it "did not crash once" during his testing.

### User interface

Rhapsody's user interface was considered preliminary, with the developer previews focusing on the system's underlying architecture. Its user interface was a blend of the OPENSTEP UI and Mac OS 8's Platinum UI, with the latter originating with the cancelled Copland prototype. Developer Release 1 (DR1) does not have Mac OS's Finder, and has OPENSTEP's Workspace Manager, Shelf, and column view. The Shelf was eliminated in favor of OPENSTEP's Dock; and Finder was added, inheriting column view.

## Reception

Developers were "impressed" and "enthusiastic" about Apple's plans, but, with Copland in mind, many were skeptical of Apple's ability to deliver on these plans, and the Macintosh's declining sales raised doubts about Apple's odds of survival. As a result, "many" developers were unwilling to commit to rewriting their apps for Rhapsody, which posed a chicken-and-egg problem, since Rhapsody would not be commercially successful without apps rewritten to take advantage of its new features.
Technology columnist Walt Mossberg observed that many third-party developers were already abandoning the Mac due to its shrinking market share, and that NeXTSTEP's lack of consumer applications, combined with the need to rewrite apps for Rhapsody, "[made] buying a Mac a relatively risky investment" compared to buying a Windows 95 or Windows NT computer.
To assuage developers' concerns, Apple announced in May 1997 that it would add support for Yellow Box apps to Mac OS, to make the transition from Mac OS smoother. However, the same month, Apple announced in an SEC filing that contrary to its previous earnings guidance, it would fail to return to profitability by the fourth quarter of fiscal year 1997 (ending in September), and that it expected Macintosh net sales to continue to decline. In Q4 FY1997, quarterly Macintosh sales declined from 932,000 to 625,000 year-over-year, and Apple had an operating loss of $24 million (though it still had $1.45 billion in cash). Shortly before the August 6, 1997 Macworld Expo Boston, Amelio tried to obtain a commitment from Microsoft to release Office for Rhapsody, but Bill Gates refused. Some small developers announced Rhapsody ports of their apps, including Stone Design's Create, Anderson Financial systems' PasteUp, Onyshuk & Associates' Glyphix, OpenBase, and Dantz Development's Retrospect.
In February 1998, Macworld columnist David Pogue wrote:
   The intriguing thing about Apple's upcoming Rhapsody OS is that it'll be available for Mac and Intel computers. What if it's a huge hit? What if it's cheaper and less troublesome than Windows and NT? What if it dawns on software companies that they can write one Rhapsody program and sell it on both "Mac" and "Windows" machines? The experience of using a computer is determined mostly by its system software. In other words, Rhapsody will put Apple elegance on any personal computer, no matter who made it. Every PC in the world will become, in effect, a Mac. On the other hand, a Rhapsody triumph would mean nobody'd have to buy computers from Apple anymore. Has Apple thought this thing through?

## Strategy

In a meeting with Michael Dell, owner of PC maker Dell, Steve Jobs demonstrated Rhapsody on Intel x86, and offered to license the operating system to Dell for distribution on its PCs. The deal failed, however, when Jobs insisted that all of its computers ship with both Mac OS and Windows so that consumers could choose the platform they prefer (which would have resulted in Dell having to pay royalties to Apple for every computer it sells), as opposed to Dell's preference that the choice of OS be a factory option.
In mid-1997, after Amelio was ousted as Apple's CEO and Jobs informally replaced him, the company grew quieter on Rhapsody, leading to speculation over its fate. At the October 1997 Seybold publishing conference, Jobs announced that the transition would be more "gradual" than previously announced by Amelio, and would follow a "dual-OS" strategy, with Rhapsody oriented towards servers, followed by a consumer released several years later, imitating Microsoft's Windows NT strategy.
At WWDC 1998 held in May, Apple stated that "not a single" major third-party developer had committed to rewriting their apps for Rhapsody. Apple instead unveiled their Mac OS X strategy: classic Mac OS applications would not need a complete rewrite to run well on the system, which Jobs said could have taken as long as two years; instead, applications could run on Mac OS X with only "minor adjustments". Apple also ported existing classic Mac OS frameworks into Mac OS X and developed the cross-platform Carbon API for Mac OS 9 and X as the transition layer. Widely used Mac OS libraries like QuickTime and AppleScript were ported and published to developers. Carbon allows full compatibility and native functionality for both platforms, while enabling new features. Apple also announced that Adobe, Microsoft and Macromedia were on board with the new strategy, and had committed to releasing their applications for Mac OS X. Programmer Dave Winer celebrated the new strategy.
As part of the landmark Microsoft antitrust trial, Avie Tevanian argued that Rhapsody's failure was partly caused by Windows's dominance, which made new operating system platforms inherently uncompetitive; however, The Register's John Lettice argued that "those [Yellow Box] APIs Apple couldn't get developers to support [...] are of course APIs that NeXT couldn't get developers to support". Lettice described Rhapsody as inherently flawed, stating that: "The theory of this school of OS development [that] says you allow users to run their existing apps while making it possible for a whole new generation of compelling apps to take over in the long run" is a strategy that "has not so far worked in practice".
Though developers were expecting Rhapsody DP3, Steve Jobs announced at the July 1998 MacWorld Expo NY that an improved version of Rhapsody would be publicly released as Mac OS X Server 1.0, which would bundle WebObjects, the QuickTime Streaming Server, and an Apache web server.

## Legacy

Apple forked Rhapsody into Darwin, an open source operating system that is the foundation for Apple's current commercial operating systems.
Since Rhapsody could run on both PowerPC and Intel x86, some commentators speculated that Apple could be planning to switch the Macintosh from PowerPC to Intel processors. This switch occurred in 2005, with Apple revealing that it had internally tested Intel builds of Mac OS X since the year 2000.
In 2016, historian Hanson Hsu called Steve Jobs's vision for developers "prescient" (Jobs's vision is described in the §Pitch to developers section). Many NeXTSTEP innovations were foundational to Mac OS X, including the Cocoa framework, Interface Builder (which became part of Xcode), and the Objective-C programming language. These technologies attracted many indie developers to the Mac, and are still in use today on the Mac; they were later used on the iPhone, the iPad, the Apple Watch, and the Apple TV.

## System requirements

The PowerPC version of Rhapsody DR1 required 32 MB of RAM (64 MB recommended), and 1 GB of disk space, and only officially supported the Power Macintosh 9500, 9600, 8500 and 8600.

## Release history

Apple initially planned to release a developer preview of Rhapsody in the third quarter of 1997. It would be followed in January 1998 by a consumer release codenamed Rhapsody Premier, containing a preliminary version of Blue Box, the compatibility environment that would allow Rhapsody to run Mac OS apps. The full Blue Box would come in Rhapsody Unified, planned for mid-1998.
Rhapsody's version numbers start at version 5.0, since was a rename of NeXT's OPENSTEP for Mach operating system, whose last version was OPENSTEP for Mach 4.2. Though Apple never released Rhapsody 5.2, some speculated that it was meant to be Rhapsody Premier.
| Version | Code name | Platform | Date | OS name | Darwin version |
| Rhapsody Developer Release 1 | Grail1Z1 | PowerPC | October 13, 1997 | Rhapsody 5.0 | — |
| Rhapsody Developer Release 1 | Grail1Z4 | IA-32 (Intel x86) | weeks later | Rhapsody 5.0 | — |
| Rhapsody Developer Release 2 | Titan1T7 | PowerPC | May 14, 1998 | Rhapsody 5.1 | — |
| Rhapsody Developer Release 2 | Titan1U | IA-32 (Intel x86) | May 14, 1998 | Rhapsody 5.1 | — |
| Mac OS X Server 1.0 is also based on Rhapsody: ||||||
| Mac OS X Server 1.0 | Hera1O9 | PowerPC | March 16, 1999 | Rhapsody 5.3 | 0.1 |
| Mac OS X Server 1.0.1 | Loki1A2 (also labelled Hera1O9) | PowerPC | April 15, 1999 | Rhapsody 5.4 | ? 0.2 |
| Mac OS X Server 1.0.2 | Loki2G1 (also labelled Hera1O9+Loki2G1) | PowerPC | July 29, 1999 | Rhapsody 5.5 | 0.3 |
| Mac OS X Server 1.2 | Pele1Q10 | PowerPC | January 14, 2000 | Rhapsody 5.6 | 0.3 |
| Mac OS X Server 1.2 v3 | Medusa1E3 | PowerPC | October 27, 2000 | Rhapsody 5.6 | 0.3 |