# Rhapsody (Betriebssystem)

Rhapsody [ˈɹæpsədɪ] war der Projekt- bzw. Codename von Apples damals neuer Betriebssystem­generation während der Entwicklungsphase zwischen der Übernahme der Firma NeXT Ende 1996 und der öffentlichen Ankündigung von Mac OS X im Jahre 1998, zu dem es letztlich weiterentwickelt wurde. Nach Copland und Pink (später Taligent) war es bereits Apples dritter Versuch, das hauseigene Betriebssystem – ursprünglich die Macintosh System Software (1984–2001), die bereits 1988 als System 6 und 1991 als System 7 als technisch veraltet galt – zu modernisieren.
Rhapsody sollte das klassische Mac OS vollständig ersetzen und wurde auf Basis von OPENSTEP (ursprünglich NeXTStep) entwickelt. Abgesehen von zwei Entwicklerversionen ist die einzige veröffentlichte Rhapsody-Version Mac OS X Server 1.0 (1999) bis 1.2v3 (2000). Damit ist es das erste Betriebssystem mit dem Namen „Mac OS X“.
Das zwischen 1998 und 2001 entwickelte Mac OS X Version 10.0 hat Rhapsody, und somit OPENSTEP und NeXTStep, als Basis. Die freien Teile davon, u. a. das spezifische BSD-Userland und der XNU-Kernel, wurden als Darwin im Quelltext unter freien Lizenzen veröffentlicht. Mac OS X, das diese BSD-Basis weiterhin nutzt, wurde 2012 in OS X (ohne „Mac“) und 2016 in macOS umbenannt. Ebenso basiert das ab 2005 entwickelte iOS auf Darwin.

## Entwicklungsgeschichte

Nach der Rückkehr von Steve Jobs 1996 zu Apple, das er 1985 im Streit verlassen hatte, wurde das von NeXT stammende moderne Unix-Betriebssystem OPENSTEP 4.2 im Projekt Rhapsody in ein Nachfolgebetriebssystem für das veraltete System 7 weiterentwickelt. Die ursprünglichen Pläne sahen vor, die objektorientierte OpenStep-Programmierschnittstelle (API) aus dem letzten NeXT-Betriebssystem OPENSTEP 4.2 unter dem neuen Namen Yellow Box zu verwenden, die es auch für Windows und Solaris gab. Im Mai 1997 kündigte Apple auf der Worldwide Developers Conference (WWDC) in den USA an, dass sich Software, die unter Rhapsody programmiert werde, problemlos für Windows und weitere Betriebssysteme kompilieren lasse, wenn das zugrundeliegende OPENSTEP-kompatible Framework Yellow Box in der Windows-Version installiert sei. Diese Art der Kompatibilität wird als Quelltext-kompatibel bezeichnet. Apple, das seit 1994 mit den Macintosh-Rechnern die PowerPC-Architektur verwendete, musste jedoch zuallererst das zugekaufte OPENSTEP-Betriebssystem, das nur für die Plattformen Intel i486, Motorola 680x0 und Sun SPARC verfügbar gewesen war, auf die eigene Plattform portieren. Die relativ leichte Portierbarkeit war dem Mikrokernel Mach zu verdanken, der bereits in früheren NeXTStep-Versionen zusätzlich auf HP PA-RISC und angeblich im Labor bereits versuchsweise auf PowerPC portiert gewesen war, auf der jedoch die Performance Schwierigkeiten bereitet haben soll. Bei Apple war man bis 1997 noch voll auf eine Multi-Plattform-Strategie ausgerichtet, weshalb Rhapsody anfangs neben dem PowerPC auch auf Intel-i486-PCs lauffähig blieb – von der Rhapsody Developer Release gab es 1997 daher drei Installationsmedien: für Power Macintosh, für den Intel-PC und das Yellow Box-Framework für Windows NT. Die anderen Prozessorarchitekturen (m68k, SPARC) wurden bei Rhapsody nicht weitergeführt.
Um Kompatibilität für das zu ersetzende Macintosh-Betriebssystem, das ab Version 7.6 in „Mac OS“ umbenannt wurde, zu erreichen, wurde mit Blue Box eine virtuelle Maschine in Rhapsody eingebaut, sodass auf einem virtualisierten Mac OS 8 alte Macintosh-Software auf Rhapsody für Power Macintosh ausgeführt werden konnte. Auf der Intel-Version war die Blue Box nicht lauffähig. Für neue Programme sollten vor allem die NeXTStep-Bibliotheken, die Yellow Box, zum Einsatz kommen. Zusätzlich setzte das neue Betriebssystem voll auf Java.
Das moderne Design von Rhapsody hing jedoch gänzlich vom Yellow-Box-Framework ab und Programme hätten dementsprechend mehr oder minder aufwändig portiert werden müssen. Software-Lieferanten wie Microsoft, Adobe und Macromedia, die mit ihren Anwendungen für das Macintosh-Ökosystem unverzichtbar waren, zeigten sich nach der WWDC 1997 jedoch nicht bereit diesen Aufwand auf sich zu nehmen. Parallel dazu wurde intern daran gearbeitet, die Blue Box noch besser in Rhapsody zu integrieren. Bald war jedoch klar, dass es nicht möglich war, die veraltete Programmierschnittstelle von Mac OS 7.6 in Rhapsody zu integrieren ohne dabei auf die Vorzüge eines modernen Designs mit präemptiven Multitasking und Speicherschutz, welches nur die Yellow Box bot, verzichten zu müssen. Auf der MacWorld am 8. Juli 1998 in New York wurde schließlich verkündet, dass Rhapsody als Mac OS X Server 1.0 1999 auf den Markt kommen werde – ohne Intel-Plattform und ohne Windows-Framework. Steve Jobs selbst bezeichnete das Rhapsody-Experiment als gescheitert.
Um doch noch einen sanften Übergang vom klassischen Mac OS hin zum modern von OPENSTEP abstammenden Unix-Betriebssystem Mac OS X zu ermöglichen, wurde daher notgedrungen ein neues Framework geschaffen: Carbon. Dieses bestand im Wesentlichen aus den Programmierschnittstellen von Mac OS 8, die historisch bereits mit dem ersten System des Macintosh von 1984 eingeführt wurden, abzüglich jener Funktionen, die modernem Design wie Speicherschutz und Multitasking im Weg standen und einigen wenig genutzten redundanten Funktionen. Als Brückentechnologie konnte Carbon damit in etwa 75 % des ursprünglichen Macintosh-Baukasten abbilden und wurde sowohl integriert in Mac OS X als auch als CarbonLib unter Mac OS 8 und 9 eingeführt. Die Software-Lieferanten mussten nun nur noch geringe Anpassungen an bestehenden Programmen vornehmen, damit diese sowohl auf Mac OS (mit CarbonLib) als auch auf Mac OS X nativ ausgeführt werden konnten. Sogar Apple selbst konnte dank Carbon einige Programme direkt von Mac OS 8 in Mac OS X überführen, ohne sie aufwändig von Grund auf neu programmieren zu müssen.
Für neue Programme wurde jedoch weitgehend das von NeXTStep übernommene Framework OpenStep bzw. Yellow Box genutzt, das ab 1998 mit Beginn der Entwicklung von Mac OS X in Cocoa umbenannt wurde.
Rhapsody wurde 1998 gestoppt und Mac OS X gestartet – zu Beginn der Entwicklung ist Mac OS X jedoch eine weitere Version von Rhapsody – mit dem Unterschied von Carbon als neuer (alter) Programmierschnittstelle. Während sich jedoch Rhapsody mehr an NeXTStep/OPENSTEP orientierte (z. B. in der Versionsnummer) war Mac OS X als teil-kompatibler Nachfolger und Erhalter der Macintosh-Plattform konzipiert (z. B. sowohl bei der Versionsnummer als auch als Name: auf Mac OS 9 folgt Mac OS X, in der Bedeutung als römische Zahl 10).

## Aussehen

Die grafische Oberfläche von OPENSTEP wurde bei Rhapsody an Mac OS 8 angepasst. Der „Programmleistenblock“ mit „Info“, „Datei“, „Bearbeiten“ etc. von OPENSTEP wurde dabei an den oberen Bildschirmrand in eine Leiste verschoben, wie eben schon bei Mac OS 8. Auch das Design-Thema wurde auf Mac OS getrimmt und eine Programmumschaltliste (oben rechts in der Systemleiste, wie bei Mac OS) hinzugefügt.

## Technisches Design

OPENSTEP (Version 4.2 von 1996/1997) basierte noch auf dem Unix-Derivat 4.3BSD und verwendete einen Mach-2.5-Kernel. Um dieses System für die Macintosh-Hardware nutzbar zu machen, musste es auf die PowerPC-Architektur portiert werden. Gleichzeitig jedoch wurde das System auf 4.4BSD-Lite aktualisiert und der Kernel wurde auf Mach 3, mit Teilen von MkLinux (welches bereits ein funktionierender Mach-3-Kernel war) sowie mit Teilen des FreeBSD-Kernels ebenfalls aktualisiert. Dieses Kernsystem wurde erstmals in der Version von Mac OS X Server 1.0 (Rhapsody 5.3, 1999), mitsamt dem quelloffenen und unter freier Lizenz stehenden Userland, als Darwin-Betriebssystem (Version 0.1, 1999) veröffentlicht. Der Kernel wurde XNU genannt und unter die freie Lizenz APSL gestellt. Unter Rhapsody weist sich der Kernel zwar noch nicht als XNU aus, ist dies aber effektiv, so wie Darwin 0.1 (der Kern von Mac OS X Developer Preview 1 und Darwin OS 0.1, beide von 1999) im Wesentlichen Rhapsody 5.3 entspricht.
Weitere – proprietäre – Bestandteile des Systems waren die Yellow Box als das weiterentwickelte objektorientierte Framework OpenStep, wie es im Betriebssystem OPENSTEP bis Version 4.2 und in Solaris enthalten war (und aus dem später unter Mac OS X Cocoa-API hervorging), die Blue Box (die unter Mac OS X als Classic-Umgebung weiterentwickelt wurde) um Anwendungen für Mac OS nutzen zu können (nur in der PowerPC-Version), und eine Java-Umgebung. Carbon vom späteren Mac OS X zur einfachen Portierung von Mac‑OS-Anwendungen war dagegen noch nicht enthalten. Außerdem wurden viele Apple-eigene Technologien wie QuickTime auf Rhapsody (und somit auf Yellow Box bzw. später Cocoa) portiert.
Die ersten beiden Developer Previews von Mac OS X 10.0 (beide 1999) waren Rhapsody sehr ähnlich, boten aber bereits die (unfertige) zum klassischen Mac OS kompatible Carbon-Programmierschnittstelle. Der Darwin-Systemkern wird seither ständig durch Apple weiterentwickelt und bildet die Basis für alle nachfolgenden auf Mac OS X basierenden Betriebssysteme – von denen Rhapsody (bzw. NeXTStep/​OPENSTEP) somit der Urvater ist.

## Versionsgeschichte

Da es direkt aus OPENSTEP Version 4.2 entwickelt wurde, startet Rhapsody mit Versionsnummer 5.0. OPENSTEP, bis Version 3.3 noch unter dem Produktnamen NeXTStep, gab es ab Version 4.0 nur für die i486- und die SPARC-Architektur – neben der ursprünglichen Motorola-68k-Architektur der NeXT-Hardware, deren Produktion jedoch bereits 1993 eingestellt werden musste. Da Apple die PowerPC-Architektur für die eigenen Macintosh-Computern nutzte, musste das Betriebssystem erst auf PowerPC portiert werden, wobei die Intel-Version zunächst weitergeführt wurde. Nach der Aufgabe von Rhapsody als gescheitertes Projekt entstand daraus schließlich Mac OS X, welches nur mehr auf PowerPC veröffentlicht wurde, da Apple nun kein weiteres Interesse daran hatte, das Betriebssystem auch für Nicht-Apple-Computer zu vermarkten. Während sich Mac OS X Server 1.0-1.2v3 intern noch als Rhapsody ausweist, wurde jeder Hinweis darauf mit Erscheinen der Public Beta von Mac OS X 10.0 (und zuvor der an Entwickler abgegebenen Developer Previews) entfernt.
| Produkt | Produkt | Rhapsody | Rhapsody | Erscheinungsdatum | Architekturen, Prozessoren | Kommentar |
| Name | Version | Version | Codename | Erscheinungsdatum | Architekturen, Prozessoren | Kommentar |
| Rhapsody | Developer Release | 5.0 | Grail1Z1 (ppc) Grail1Z4 (x86) | 31. August 1997 | PowerPC 603 (G2) Intel i486 | nur an Entwickler abgegeben; es gibt einen Patch zur Unterstützung des PowerPC G3 |
| Rhapsody | Developer Release 2 | 5.1 | Titan1T7 (ppc) Titan1U (x86) | 14. Mai 1998 | PowerPC 603 (G2) Intel Pentium MMX | nur an Entwickler abgegeben; es gibt einen Patch zur Unterstützung des PowerPC G3; erste Version von Blue Box |
| Rhapsody | 1.0 | 5.2 | | – | Intel, PowerPC | unveröffentlicht |
| Mac OS X Server | 1.0 | 5.3 | Hera1O9 | 16. März 1999 | PowerPC 603 (G2) PowerPC 750 (G3) | Intel-Version fallen gelassen, mit Unterstützung für den Power Macintosh G3 (Macs mit PowerPC-G3-Prozessoren) |
| Mac OS X Server | 1.0.1 | 5.4 | Loki1A2 | 15. April 1999 | PowerPC 603 (G2) PowerPC 750 (G3) | das Betriebssystem selbst gibt sich irrtümlich als “Hera1O9” (Codename) aus |
| Mac OS X Server | 1.0.2 | 5.5 | Loki2G1 | 22. Juli 1999 | PowerPC 603 (G2) PowerPC 750 (G3) | das Betriebssystem gibt sich als “Hera1O9+Loki2G1” (Codename) aus |
| Mac OS X Server | 1.2 | 5.6 | Pele1Q10 | 14. Januar 2000 | PowerPC 603 (G2) PowerPC 750 (G3) PowerPC 7400 (G4) | Unterstützung für Power Mac G4 (Macs mit PowerPC-G4-Prozessoren) |
| Mac OS X Server | 1.2 v3 | 5.6 | Medusa1E3 | 27. Oktober 2000 | PowerPC 603 (G2) PowerPC 750 (G3) PowerPC 7400 (G4) | letzte Version, wurde bis Mitte 2001 verkauft, abgelöst von Mac OS X Server 10.0.3 |