| Rhapsody | |
|---|---|
Rhapsody, with a drawing application and aQuickTime movie playing | |
| Developer | Apple Computer |
| OS family | |
| Working state | Historic |
| Source model | Closed source |
| Latest release | Developer Release 2 / May 1998; 27 years ago (1998-05) |
| Supported platforms | PowerPC,IA-32 |
| Kernel type | Hybrid kernel |
| Influenced | macOS |
| Influenced by | NeXTSTEP,Classic Mac OS,Copland |
| License | Only released to developers |
| Preceded by | OPENSTEP for Mach |
Rhapsody is anoperating system that was developed byApple Computer after its purchase ofNeXT in the late 1990s. It is the fifth major release of theMach-based operating system that was developed at NeXT in the late 1980s, previously calledNeXTSTEP andOPENSTEP for Mach.[1] Rhapsody was targeted to developers for a transition period between theClassic Mac OS andMac OS X. Rhapsody represented a new and exploratory strategy for Apple, more than an operating system, and runs onx86-based PCs and onPower Macintosh.
Rhapsody's OPENSTEP for Mach-based[a] Yellow BoxAPI frameworks were ported toWindows NT for creating cross-platform applications. Eventually, the non-Apple platforms were discontinued, and later versions consist primarily of theOpenStep operating system ported to Power Macintosh, merging theCopland-originatedGUI ofMac OS 8 with that of OPENSTEP for Mach. Several existingclassic Mac OS frameworks were ported, includingQuickTime andAppleSearch. Rhapsody can run Mac OS 8 and its applications in aparavirtualization layer called Blue Box for backward compatibility during migration to Mac OS X.
Rhapsody follows Apple's pattern through the 1990s of music-relatedcodenames for operating system releases (seeRhapsody (music)). Apple had canceled its previous next-generation operating system strategy ofCopland (named for American composer,Aaron Copland) and its pre-announced successor Gershwin (named forGeorge Gershwin, composer ofRhapsody in Blue).[2] Other musical code names include Harmony (Mac OS 7.6), Tempo (Mac OS 8), Allegro (Mac OS 8.5), and Sonata (Mac OS 9).
In the mid-1990s,Mac OS was falling behind Windows.[3] In 1993, Microsoft had introduced the next-generationWindows NT, which was a processor-independent,multiprocessing andmulti-user operating system.[4] 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, whileMacintosh 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 CEOGil Amelio decided to acquire or license an already-built operating system from another company. Apple's executive team consideredBeOS, NeXT'sNeXTSTEP, Sun Microsystems'Solaris, and Windows NT, and eventually acquiredNeXT in December 1996.[3]
Rhapsody was announced by Gil Amelio at the January 7,1997 Macworld Expo SF,[5][6] and first demonstrated at the May 1997Worldwide Developers Conference (WWDC).[7][8]
At Macworld SF 1997,Steve Jobs said that Mac OS and itsMacintosh Toolbox placed developers on the "fifth floor", Windows NT on the "seventh floor", while Rhapsody's OpenStep[a]libraries would let developers start on the "twentieth floor".[9] Jobs argued that this would make it faster to implement existing apps, and would allow even small developer teams to create innovative apps.[9] 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".[10] Jobs gave the examples ofLighthouse Design, which had created an entireoffice suite for NeXTSTEP with only 18 employees; Tim Berners-Lee, who had createdWorldWideWeb, the firstweb browser, on NeXTSTEP; andDell, which created its firsteCommerce website using NeXT'sWebObjects.[9]
Since Yellow Box was also available on Windows as adynamic-link library (DLL), Yellow Box apps would be able to run on both Rhapsody and Windows through a recompile.[11] Microsoft provided no equivalent that would enableWin32 apps to run on other platforms.[12] Additionally, Rhapsody itself could be installed on eitherPowerPC Macintoshes or Intelx86 PCs, enlarging developers' potential customer base.[11]
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.[13][14] Additionally, Rhapsody would inherit NeXTSTEP'slocal network sharing functionality, and make it easy to share data across apps.[13] At Macworld SF 1997, Steve Jobs vaunted NeXTSTEP's maturity by pointing out that it had been adopted by many large organizations, includingWall Street banks and theCIA.[9]BYTE magazine described NeXTSTEP as "field-tested, time-proven code" in January 1998, ten years after the operating system's introduction.[15]
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.[14][5][16]

Rhapsody runs on a modifiedMach 2.5 kernel and4.4BSD Unix environment. Atop that were the threaded, object-oriented Yellow Box libraries, the Blue Box compatibility layer for Mac OS applications, and aJava virtual machine.[15][17] Rhapsody combines NeXT'sOpenStep object-oriented framework, NeXT's other frameworks (WebObjects,Enterprise Objects Framework), and Apple's Mac OS technologies (includingAppleScript,QuickTime Media Layer,ColorSync,Apple events).[18][14] Rhapsody uses theUnix File System (UFS) for hard disks, andNetwork File System on network drives.[15]
Pixels are drawn onscreen usingDisplay PostScript instead of Mac OS'sQuickDraw. Since Display PostScript relies on the samePostScript 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.[19]
Rhapsody supports app development in three programming languages: Objective-C, Java, and C++.[20]
Rhapsody uses Carnegie Mellon University'sMach 2.5 kernel, which was modified to add support for the Network File System,SCSI disks, and removable devices likeCD-ROMs andJaz drives. This kernel lackssymmetric multiprocessing (SMP) support, which was planned to be added in a later release of Rhapsody that would use a Mach 3.0 kernel.[15] Mach had been created at CMU byAvie 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.[citation needed]
In a WWDC 1997 presentation,Jeff Robbin said Rhapsody was based on Mach 2.6.[citation needed]
Blue Box is anon-reentrant virtualization layer that allows Rhapsody to run classic Mac OS apps. It was released after Rhapsody DR1, in the form of an application calledMacOS.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.[21][15]
Blue Box beta 1.0 only worked in full screen, requiring users to press⌘ Cmd+↵ Enter to exit the environment, and it implements networking throughOpen Transport, instead of Rhapsody'sBSD sockets. Later versions of Blue Box could run Mac OS in a window.[21]
Rhapsody's Blue Box environment, available only onPowerPC due toparavirtualization, 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 theClassic environment,[21] which remained in Mac OS X untilMac OS X Tiger, with support for Classic dropped inMac OS X Leopard.
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 onMicrosoft Windows, and would look like normal Windows applications. Yellow Box includes three major frameworks:Foundation,Application Kit, and Display PostScript. It also includes NeXTSTEP'sProject Builder andInterface Builder development tools.[21][11]
Yellow Box has full support forpreemptive multitasking,multithreading, andprotected 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.[14]
In May 1997, Amelio announced that Yellow Box would be renamedConcert.[22][23]
Yellow Box was later used as the foundation for Mac OS X'sCocoa framework.[21]
Rhapsody's Java virtual machine is derived from Sun'sJDK 1.1.3, which was modified so that Java apps could call Yellow BoxAPIs. Rhapsody DR1 included Sun's Java compiler and libraries.[15]
This sectionis missing information about the second developer release of Rhapsody. Please expand the section to include this information. Further details may exist on thetalk page.(June 2023) |
Apple issued two developer releases of Rhapsody for both thePowerPC and Intelx86 architectures.[7]
The first developer release of Rhapsody was released on October 13, 1997 (for Power Macintosh)[24] to 10,000 developers, who were given twoCDs: 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 ofOpen 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, andAppleTalk; 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 for Mach's Workspace Manager instead of the Mac OSFinder.[15] Within the following weeks, Apple also released the Windows version of the Yellow Box runtime, as well as DR1 ofRhapsody for PC Compatibles (Intel), and the first release of Blue Box.[25]
The overall developer reaction to DR1 was positive.[26]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 thecommand line, but said it "did not crash once" during his testing.[15]
Rhapsody's user interface was considered preliminary, with the developer previews focusing on the system's underlying architecture.[18] Its user interface was a blend of theOPENSTEP for Mach UI and Mac OS 8'sPlatinum UI,[17] with the latter originating with the cancelled Copland prototype. Developer Release 1 (DR1) does not have Mac OS'sFinder, and has OPENSTEP for Mach's Workspace Manager,Shelf, andcolumn view. The Shelf was eliminated in favor of OPENSTEP for Mach'sDock; and Finder was added, inheriting column view.
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 achicken-and-egg problem, since Rhapsody would not be commercially successful without apps rewritten to take advantage of its new features.[8][12]
Technology columnistWalt 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 aWindows 95 orWindows NT computer.[16]
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 anSEC filing that contrary to its previousearnings guidance, it would fail to return to profitability by the fourth quarter offiscal year 1997 (ending in September), and that it expected Macintoshnet sales to continue to decline.[8][12][27] In Q4 FY1997, quarterly Macintosh sales declined from 932,000 to 625,000year-over-year, and Apple had anoperating loss of $24 million (though it still had $1.45 billion in cash).[28] Shortly before the August 6,1997 Macworld Expo Boston, Amelio tried to obtain a commitment from Microsoft to releaseOffice for Rhapsody, butBill Gates refused.[29] 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'sRetrospect.[28]
In February 1998,Macworld columnistDavid 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?[30]
In a meeting withMichael Dell, owner of PC makerDell, 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.[31][needs context]
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 release several years later, imitating Microsoft's Windows NT strategy.[32][33][24]
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 theirMac 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".[33] Apple also ported existing classic Mac OS frameworks into Mac OS X and developed the cross-platformCarbon API for Mac OS 9 and X as the transition layer.[34] Widely used Mac OS libraries likeQuickTime andAppleScript were ported and published to developers. Carbon allows full compatibility and native functionality for both platforms, while enabling new features.[citation needed] Apple also announced thatAdobe,Microsoft andMacromedia were on board with the new strategy, and had committed to releasing their applications for Mac OS X.[33] ProgrammerDave Winer celebrated the new strategy.[35]
As part of the landmarkMicrosoft 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".[36]
Though developers were expecting Rhapsody DP3,[inconsistent] Steve Jobs announced at theJuly 1998 MacWorld Expo NY that an improved version of Rhapsody would be publicly released asMac OS X Server 1.0, which would bundleWebObjects, theQuickTime Streaming Server, and anApache web server.[37][38]
Apple forked Rhapsody intoDarwin, anopen source operating system that is the foundation for Apple's current commercial operating systems.[37]
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.[39][40] Thisswitch occurred in 2005, with Apple revealing that it had internally tested Intelbuilds of Mac OS X since the year 2000.[41][42]
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 theCocoa framework, Interface Builder (which became part ofXcode), and theObjective-C programming language. These technologies attracted many indie developers to theMac, and are still in use today on the Mac; they were later used on theiPhone, theiPad, theApple Watch, and theApple TV.[9]
The PowerPC version of Rhapsody DR1 required 32 MB ofRAM (64 MB recommended), and 1 GB of disk space, and only officially supported the Power Macintosh9500,9600,8500 and8600.[15]
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.[14]
Rhapsody's version numbers start at version 5.0, since it was a rename of NeXT'sOPENSTEP 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.[citation needed]
| Version | Code name | Platform | Date | OS name | Darwin version |
|---|---|---|---|---|---|
| Rhapsody Developer Release 1 | Grail1Z1 | PowerPC | October 13, 1997[24] | Rhapsody 5.0 | — |
| Grail1Z4 | IA-32 (Intel x86) | weeks later[25] | |||
| Rhapsody Developer Release 2 | Titan1T7 | PowerPC | May 14, 1998 | Rhapsody 5.1 | |
| Titan1U | IA-32 (Intel x86) | ||||
| 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) | April 15, 1999 | Rhapsody 5.4 | ? 0.2 | |
| Mac OS X Server 1.0.2 | Loki2G1 (also labelled Hera1O9+Loki2G1) | July 29, 1999 | Rhapsody 5.5 | 0.3 | |
| Mac OS X Server 1.2 | Pele1Q10 | January 14, 2000 | Rhapsody 5.6 | ||
| Mac OS X Server 1.2 v3 | Medusa1E3 | October 27, 2000[43][44] | |||