OPENSTEP

OPENSTEP [] war ein Betriebssystem des Unternehmens NeXT, das Steve Jobs nach seinem Weggang von Apple 1985 gegründet hatte. OPENSTEP, in Großbuchstaben, war der Name des Betriebssystems ab Version 4.0 von 1996. Von Version 3.1 bis 3.3 (1993–1995) hieß es NeXTSTEP bzw. NEXTSTEP [], ursprünglich bis Version 3.0 (bis 1992) in der Schreibweise NeXTStep.

Es basiert auf dem Unix-ähnlichen Betriebssystem 4.3BSD und einem Mach-2.5-Kernel. Verbreitung hatte es vor allem im wissenschaftlichen, aber auch im Bankbereich, wo dank der damals ungewöhnlichen, objektorientierten Entwicklungsumgebung schnell komplexe Applikationen gebaut werden konnten.

NeXT wurde Ende 1996 von Apple aufgekauft, und Steve Jobs kehrte im Sommer 1997 zu Apple als CEO zurück. OPENSTEP 4.2 wurde die Basis des unter dem Codenamen Rhapsody weiterentwickelten und ab 2000 als Mac OS X auf den Markt gebrachten Nachfolge-Betriebssystems für Apple-Macintosh-Computer, um das ältere „klassische“ Mac OS (1984–2001) zu ersetzen. Die NeXTstep- bzw. OpenStep-Programmierschnittstelle (API) wurde bei Apple zu Cocoa weiterentwickelt und ist nicht nur für macOS, wie Mac OS X seit 2016 heißt, zum wichtigsten API geworden, sondern auch das der auf iOS basierenden mobilen Betriebssysteme.

Der auf NeXTStep/OPENSTEP zurückgehende Unix-Unterbau von Rhapsody bzw. Mac OS X erhielt 1999 den Namen Darwin und wurde im Quelltext veröffentlicht.

Konzepte 
Bei NeXTStep handelt es sich um ein Microkernel-Betriebssystem, das den Mach-Mikrokernel verwendet. Auf Basis dieses Kernels ist ein gewöhnliches BSD-Unix aufgebaut. Dadurch bietet NeXTStep Funktionen wie präemptives Multitasking, Multithreading und Speicherschutz, jedoch fehlt Multiprozessorunterstützung; diese war im Mach-Kernel zwar vorgesehen, wurde aber nicht aktiviert. Zur Grafikausgabe wird Display PostScript von Adobe verwendet, dies ist die PostScript-Variante für Monitore (statt für Drucker) und ermöglicht echtes WYSIWYG. Zusammen mit Display PostScript kommt ein objektorientiertes Anwendungs-Framework zum Einsatz, das die Programmierung von grafischen Benutzeroberflächen stark vereinfacht. Objective-C wird als Standard-Programmiersprache unter NeXTStep eingesetzt und war mit ein Grund für die OO-Entwickler-Tools, die mit dem Betriebssystem mitgeliefert wurden. Als Dateisystem wird das auch bei den verschiedenen BSD-Unix-Varianten eingesetzte UFS verwendet.

Die Benutzerumgebung ist standardmäßig reichhaltig ausgestattet. Es gibt einen Installer/Deinstaller, das Webster-Wörterbuch, einen leistungsfähigen Texteditor, Softwareschnittstellen für eine Fax-Einbindung etc.

Die Bedienung der GUI weist verschiedene Besonderheiten auf, welche die Arbeit erleichtern sollen:
 vertikale Menüs (links oben im Bild) zur Minimierung der Mausbewegungen;
 Kontextmenüs;
 Scrollknöpfe sind direkt untereinander angeordnet und auf der linken Seite platziert, wo man sich ohnedies bei europäischen Schriften mehr aufhält;
 einheitliche Gestaltung aller Anwendungen durch Beschränkung auf eine API, dadurch kurze Einarbeitungszeiten bei neuen Programmen;
 „Services“ können Manipulationen von markierten Bildschirmelementen durchführen.

OpenStep-Programmierschnittstelle (API) 

Die Schreibweisen „“ („step“ in Kleinbuchstaben) und „“ bezeichnen die Programmierschnittstellen (APIs, s). Hingegen wurde das Unix-basierte vollständige Betriebssystem, das diese Schnittstelle implementiert, „“ (großer Anfangsbuchstabe bei „“) und ab Version 3.1 „“ („“ zur Gänze in Großbuchstaben) geschrieben. In Version 4.0 wurde das gesamte Betriebssystem, analog zum Namen der Spezifikation zu diesem Zeitpunkt, in „“ (alles Großbuchstaben) umbenannt. Diese unterschiedlichen Schreibweisen sorgten immer wieder für Ungenauigkeiten, da sich viele Artikel, auch in der Fachpresse, nicht an diese Schreibkonvention hielten. Oft war von „“ oder „“ die Rede, ohne genauer zu differenzieren, ob das Betriebssystem oder die Spezifikation der Programmierschnittstelle gemeint war.

 bis Version 3.0 lief ausschließlich auf -Hardware wie dem NeXTcube und der NeXTstation.  sah sich als Hersteller von Hardware mit speziell darauf optimierter Software, wie es Apple zuvor mit der Lisa und dem Macintosh vorgemacht hatte. Der Gründer der Firma NeXT, Steve Jobs, war vor seinem Abgang bei Apple 1985 mit der Leitung der Macintosh-Entwicklung beauftragt gewesen. Bei NeXT wurde dieses Konzept der Einheit zwischen Computer-Hardware und -Software übernommen: das Benutzerhandbuch zu NeXTStep 1.0 bezeichnete das Betriebssystem in seiner Gesamtheit als  – „“ kann daher auch, gerade in den ersten Versionen, nur in diesem Zusammenhang gesehen werden. Zu Anfang existierte mit dem -Betriebssystem nur eine einzige Implementierung der -API, sodass die Schnittstelle und das Betriebssystem in gewisser Weise gleichbedeutend und nicht trennbar verbunden waren.

Als IBM 1988 an NeXT herantrat, um die Programmierschnittstelle zu lizenzieren, war es erstmals notwendig, das Betriebssystem  von der Programmierschnittstelle, die ab diesem Zeitpunkt  (also „“ in Kleinbuchstaben) genannt wurde, zu trennen. IBM wollte die -Schnittstelle auf AIX portieren, um das eigene UNIX-Betriebssystem für Programmierer von Anwendersoftware attraktiver zu machen. Programme für  hätten mit nur minimalem Portierungsaufwand auch auf AIX laufen können. Bald gab es auch Gerüchte, IBM würde das -API auch in OS/2 einfließen lassen. Später stellte sich jedoch heraus, dass es einzig bei der Lizenzierung blieb. Die Programmierschnittstelle wurde bei IBM nie auf ein weiteres Betriebssystem, auch nicht AIX, portiert.

So blieb bis 1993 -Hardware die einzige Plattform für das Betriebssystem inklusive API. Da  jedoch keine Gewinne machte, musste im Februar 1993 die Produktion eigener Hardware notgedrungen eingestellt werden. Für das Betriebssystem und die -API interessierten sich jedoch einige Firmen, weshalb  (die Programmierschnittstelle) nun auch auf Windows NT von Microsoft und Solaris von Sun portiert werden sollte. Das Betriebssystem selbst wurde ab  3.1 neben den 68k-basierten -Computern auch auf Intel-i486-Hardware, einigen PA-RISC-Workstations von HP (konkret die Workstation HP 9000 Model 712 Gecko), auf SPARC und zumindest im Labor auch auf PowerPC portiert. Die Namensnennung des neuen Betriebssystems war /Intel, /SPARC und später /PA-RISC (wobei ab der PA-RISC-Portierung das klein geschriebene „e“ für alle Plattformen fallen gelassen wurde).

Die Programmierschnittstelle wurde ab 1994 gemeinsam mit Sun weiterentwickelt und als offene Spezifikation herausgegeben. Um diese Neuerung noch sichtbarer zu machen, wurde die API in  umbenannt (und entgegen der Schreibweise von  als „“ vermarktet). Ein System darf sich als „“ bezeichnen, wenn es die Spezifikation erfüllt. Sun kaufte Teile des Quelltextes von  um mit „ für Solaris“ genau dies zu tun –  greift dabei für einige Grundfunktionen auf das auf Solaris laufende X11 zurück.  selbst entwickelte auf gleiche Weise „ für Windows“ (was entgegen der Konvention in Großbuchstaben geschrieben wurde und Teil des Produkts „“ ist), welches Funktionen von Windows NT für die Umsetzung der API nutzte. s eigenes Betriebssystem setzte mit Version 4.0 die -Spezifikation ebenfalls um und wurde als „ für Mach“ in Versionen für -Hardware (Motorola-68k-Architektur, „ für CISC“), Intel (i486-Architektur, „ für CISC“) und SPARC (Sun SPARC, „ für RISC“) herausgebracht. Die Version für PA-RISC wurde eingestellt.

Da die -Programmierschnittstelle offengelegt worden war, konnte mit GNUstep eine quelloffene Implementierung der API geschaffen werden, die auf vielen weiteren Betriebssystemen lauffähig ist. Vor allem unter Linux und diversen freien BSD-Varianten ist oft ein GNUstep-Desktop zu finden, der neben dem API auch das  von  nachbildet.

Sun entwickelte indes mit Java eine eigene plattformübergreifende Programmierschnittstelle. Um nicht in Konkurrenz zur eigenen API treten zu müssen stellte Sun die Solaris-Version von  schließlich ein.

Mit  4.1 erschien noch eine letzte Version des ursprünglichen Unix- und BSD-basierten -Betriebssystems, bevor sich Steve Jobs Ende 1996 mit Apple auf eine vollständige Übernahme von  durch Apple einigen konnte.  diente Apple als Basis für das zu dieser Zeit gesuchte Nachfolgebetriebssystem für Mac OS (Classic), denn mit dem Projekt Rhapsody wurde neben , BSD und POSIX nun auch die Macintosh-API, anfangs nur durch die „“ (der späteren Classic-Umgebung) und später in Form des Carbon-API, sowie Java unterstützt. Das letzte reine NeXT-Unix,  4.2, wurde bereits von Apple veröffentlicht und fünf Jahre lang unterstützt.

Da die Programmierschnittstelle bereits für Windows NT vorhanden war, wurde das Cross-Plattform-Konzept ursprünglich auch von Apple übernommen. Auf der WWDC 1997 gab man bekannt, dass die nun in „“ (englisch für „Gelbe Box“) umbenannte Programmierschnittstelle auch auf weiteren Betriebssystemen zur Verfügung stehen werde.  war somit der neue Name sowie die Weiterentwicklung der -Programmierschnittstelle. Ähnlich Java von Sun hätte  auch auf Windows 95 und Windows NT verfügbar sein sollen, über eine Portierung auf weitere Betriebssysteme wurde nachgedacht. Apple selbst arbeitete an Rhapsody, einem auf  aufbauenden Betriebssystem, das aus einem Mach-Kernsystem (genannt ), der  (die weiterentwickelte -API), der  (der späteren Classic-Umgebung) und dem mit Copland entwickelten Desktop-Design „Platinum“, das auch in Mac OS 8 integriert wurde, bestand. Dazu musste Rhapsody als direkte Weiterentwicklung von  4.2 auf die von Apple-Hardware genutzte PowerPC-Architektur portiert werden. Entwickelt wurde auch eine Intel-Version von Rhapsody (jedoch ohne ), diese wurde jedoch nie vermarktet. Angedacht, aber nie verwirklicht, wurde die als  bezeichnete Funktion auf der Intel-Version, die ähnlich wie die  zur Virtualisierung eines anderen Betriebssystems auf dem Rhapsody-Desktop, allerdings nicht für ein Mac OS, sondern für ein Windows-Betriebssystem, für eine zusätzliche Kompatibilitätsschicht gesorgt hätte. Ähnlich wie auf OS/2 hätte damit auf Rhapsody/Intel die Möglichkeit bestanden, eine Vielzahl von existierenden Windows-Programmen (auf einem ebenso existierenden oder zusätzlich zu erwerbenden virtualisierten Windows-Betriebssystem) zu nutzen.

Ein Jahr später, auf der WWDC 1998, ließ Apple plötzlich verlauten, dass das Rhapsody-Experiment gescheitert sei. Es werde keine Intel-Version geben und auch keine plattformübergreifende Programmierschnittstelle. Rhapsody wurde nur noch in einer für PowerPC-basierte Apple-Computer laufenden Version als Mac OS X Server 1.0 (bis 1.2v3) herausgebracht und die  wurde unter dem neuen Namen „Cocoa“ in Mac OS X integriert. Die  hingegen kam bei den Entwicklern nicht gut an, da die Programme, die darauf liefen, nicht von den modernen Vorzügen von Cocoa profitieren konnten. Ein Programm, das innerhalb der  lief, war auf die Funktionen von Mac OS 8 bzw. 9 limitiert. Gleichzeitig hätte aber eine Portierung auf Mac OS X und dessen modernes Cocoa-API (, ) einen immensen Personalaufwand für die Portierung des Quelltextes bedeutet, da wesentliche Programmteile vom Macintosh-API auf das nicht dazu kompatible Cocoa-API umgeschrieben hätten werden müssen. Um den Portierungsaufwand für bestehende Macintosh-Programme zu verringern wurde auf Druck der Entwickler mit Carbon eine zusätzliche Programmierschnittstelle in Mac OS X integriert, die Teile der ursprünglichen Macintosh-API unter Mac OS X verfügbar machte. Somit konnten bestehende Mac-OS-Programme mit überschaubaren Anpassungen am Quelltext für Mac OS X herausgebracht werden, die auch von den Vorzügen wie Speicherschutz und präemptives Multitasking des modernen Betriebssystems profitieren konnten. Carbon wurde von Apple in Mac OS X bis 2007 aktiv weiterentwickelt, blieb jedoch auf 32-Bit beschränkt, und war bis 2019 Bestandteil von macOS (wie Mac OS X seit 2016 heißt).

In GNUstep, das die -Spezifikation vollständig umsetzt, wurden die Neuerungen der API aus  und Cocoa nur teilweise umgesetzt. Mit Stand vom Januar 2016 unterstützt GNUstep Cocoa aus Mac OS X 10.4 vollständig, allerdings muss ein Programm aus dem Quelltext neu mit GNUstep übersetzt werden, damit es auf einem anderen Betriebssystem als Mac OS X läuft. 2013 wurde eine Crowdfunding-Kampagne gestartet, um Cocoa aus Mac OS X Lion (Version 10.7) und Snow Leopard (Version 10.6) vollständig unterstützen zu können. Mit der Laufzeitumgebung Darling, die GNUstep mit einer Umgebung ähnlich Wine umsetzt, wäre es sogar möglich, macOS-Applikationen unmodifiziert (ohne Neukompilierung) auf einem anderen unterstützten Betriebssystem auszuführen. Das Finanzierungsziel wurde jedoch nicht erreicht.

Auf den -Computern, die Motorolas 68030- und 68040-Prozessoren nutzten, liefen alle Versionen von  und , bis hin zur letzten veröffentlichten Version 4.2 von 1996. Ab  3.1 von 1993 war das Betriebssystem für weitere Plattformen verfügbar. Rhapsody (1998) lief auf Intel-PCs (IBM-PC-kompatible x86-PCs) und PowerPC-Macs. Seit Mac OS X, ab 1999, laufen alle Versionen exklusiv auf Apple-Hardware. Das Erbe von NeXTStep, die BSD-Unix-Basis und der Mach-Kernel, ermöglichten in Mac OS X einen relativ einfachen Umstieg von der PowerPC- zur IA-32-Architektur, die Apple 2006 vollzog, sowie mit iOS die Portierung von Mac OS X auf die ARM-Architektur.

Nachfolge 

Ab Mitte der 1990er-Jahre war Apple auf der Suche nach einem Nachfolger für das damals als technisch veraltet geltende System 7, dem Betriebssystem für Macintosh-Computer, das ab Version 7.6 den Namen Mac OS trug. Die Wahl fiel schließlich auf NeXTStep der Firma NeXT – 1996 wurde das Unternehmen von Apple übernommen und ein neues Betriebssystem auf Basis von OPENSTEP entwickelt, das zunächst den Codenamen „Rhapsody“ trug. Dabei wurde das Betriebssystem nicht nur auf die PowerPC-Plattform des Macintosh portiert, es wurde auch der Unix-Unterbau von 4.3BSD auf 4.4BSD-Lite aktualisiert und der Kernel von Mach 2.5 auf einen Hybrid zwischen Mach 3.0 und dem monolithischen FreeBSD-Kernel neu implementiert. Erstmals wurde der Unix-Unterbau inklusive XNU-Kernel vollständig als Open Source ausgegliedert und als eigenständiges Betriebssystem verfügbar gemacht: Darwin. Rhapsody besaß das Look and Feel des klassischen Mac OS (das Platinum-Design von Mac OS 8) und war nur als Vorschau für Entwickler veröffentlicht worden. Mit Aqua wurde jedoch ein neues Aussehen für das Nachfolgebetriebssystem von Mac OS entwickelt, das im März 2001 unter dem Namen Mac OS X erschien. Um die zeitliche Lücke zu füllen wurde 1999 ein direkt auf Rhapsody basierendes Server-Betriebssystem, das ebenfalls den Namen Mac OS X trug, nur mehr für die hauseigenen Power-Macintosh-Computer veröffentlicht – im Gegensatz zu Rhapsody, das noch auf Intel-i486- und PowerPC-Hardware lief, erschien Mac OS X Server 1.0 (Rhapsody 5.3), ebenfalls noch im Platinum-Design ohne Aqua, nur für die Power-Macintosh-Serie. Intern wurde indes weiterhin sichergestellt, dass Mac OS X portierbar blieb – der Darwin-Teil etwa lief von Anfang an neben PowerPC auch auf Intel. Bei der Umstellung von der PowerPC- auf die Intel-Architektur 2006 profitierte Apple von diesem Erbe – obwohl seit der ersten Veröffentlichung von Mac OS X nur mehr eigene Hardware unterstützt wurde, war ein Architekturwechsel auf Basis des Darwin-Betriebssystems, das wiederum direkt von Rhapsody, OPENSTEP und NeXTStep abstammt, relativ einfach möglich. Auch die Portierung auf die ARM-Architektur mit iOS ist dieser Abstammung zu verdanken. Ab 2012 hieß das Betriebssystem nur noch OS X – ohne „Mac“ im Namen, weil Teile davon, wie der Darwin-Kern, mit dem davon abstammenden iOS nunmehr auch auf anderen Geräten laufen. 2016 wurde der Name jedoch analog zu iOS (ab 2010, davor iPhone OS und iPad OS) in macOS geändert, ebenso bei tvOS (ab 2015, davor -Software) und watchOS (2015 ab Version 2, davor Watch OS).

Das letzte Rhapsody-Betriebssystem, Mac OS X Server 1.2v3, trägt die interne Versionsnummer 5.6 und ist somit noch direkt von NeXTStep, bis Version 3.3, und OPENSTEP, bis Version 4.2, abgeleitet. Auch die Codenamen folgen denen von NeXTStep und OPENSTEP, z. B. „Lightning9I“ für NeXTStep 3.3 und „Titan1U“ für Rhapsody 5.1. Im Gegensatz dazu wird bei der Weiterentwicklung von Rhapsody, Mac OS X ab 10.0 und den vorangegangenen Preview- und Beta-Versionen, die Versionsnummer zu Mac OS (bis 9.2.2) in Bezug gebracht, um dessen Rolle als Mac-OS-Nachfolger zu unterstreichen. Auch die Versionsnummern von Darwin sind mit Mac OS X / OS X / macOS synchronisiert. Nur der XNU-Kernel trägt eine unabhängige Versionierung, die mit der Entwicklung von Mac OS X begonnen wurde; der Kernel selbst basiert auf dem Rhapsody-Kernel, welcher wiederum aus dem OPENSTEP-Kernel entwickelt wurde.

Versionen

Architekturen 
Mit NeXTSTEP 3.1 wurden erstmals andere Rechnerarchitekturen unterstützt. Um die Versionen unterscheiden zu können, wurden diese mit einem Schrägstrich, gefolgt von der jeweiligen Architektur, gekennzeichnet sowie mit einer Farbe bezeichnet, die auch oft von den Benutzern von NeXTSTEP, z. B. bei Diskussionen in Foren, verwendet wurde:
 NEXTSTEP/NeXT Computers, schwarz ()
 NEXTSTEP/Intel, weiß ()
 NEXTSTEP/PA-RISC, grün ()
 NEXTSTEP/SPARC, gelb ()

Bei OPENSTEP (sozusagen NeXTStep ab Version 4) wird die Sache noch ein wenig komplizierter: Hier heißt das vollständige Unix-Betriebssystem mit eigenem Mach-Kernel nun „OPENSTEP für Mach“ und somit z. B. „OPENSTEP für Mach/Intel“ auf „weißer“ Hardware.

Verschiedenes 

 Sowohl der erste Webbrowser (unter dem Namen WorldWideWeb) als auch der erste Webserver, die den Grundstein für die Internetrevolution der folgenden Jahre legten, wurden von Tim Berners-Lee am CERN unter NeXTStep in wenigen Wochen entwickelt.
 Die populären Computerspiele Wolfenstein 3D und Doom von id Software wurden unter NeXTStep entwickelt und dort für DOS kompiliert. Die Level-Editoren von Doom und Quake waren echte NeXTStep-Anwendungen, geschrieben in der Programmiersprache Objective-C.
 Die Computer-Animationen für den international erfolgreichen Anime Ghost in the Shell entstanden unter NeXTStep.
 Der Anime Serial Experiments Lain enthält zahlreiche Hommagen zu NeXTStep.
 1989 erwarb IBM für 60 Mio. US$ eine Lizenz von NeXTStep 1.0 für den Vertrieb auf IBM PCs. Die Zusammenarbeit wurde aber eingestellt, bevor auch nur ein solches Gerät ausgeliefert wurde. Auch Compaq und Dell wollten eine solche Lizenz kaufen.
 NeXTstep R3 enthielt die 3D-Programmierung RenderMan von Pixar unter dem Namen 3DKit.
 NeXTStep, OPENSTEP und macOS sind hoch portabel und bereits für mehrere Plattformen portiert worden, so:
 Motorola 68000 (Ursprungsplattform) und 88100 (geplante Nachfolge-CPU des 68000 in den NeXTstations, wurde nicht vermarktet);
 IBM RT (nicht vermarktet, evtl. nur ein Port der Entwicklungsumgebung);
 x86 (Intel/AMD): IA-32 (x86-32) sowie x86-64 (erst mit Mac OS X/Intel bzw. macOS);
 Sun SPARC;
 HP PA-RISC;
 PowerPC (zunächst bei NeXTStep als Nachfolger für Motorola 68000 geplant, dann bei Mac OS X für die Macintoshs umgesetzt);
 ARM (erst mit iOS und davon abgeleiteten Betriebssystemen, später auch macOS).

Weblinks 
 A Bit of History. Cocoa Fundamentals Guide
 GNUstep-Projekt
 Namenserklärungen zu NeXTStep, OPENSTEP, OpenStep usw.
 NeXTStep 0.x bis OPENSTEP 4.x bei winworldpc.com
 NeXTStep 3.3 im NeXT File Archive von nextcomputers.org
 OPENSTEP 4.2 im NeXT File Archive von nextcomputers.org
 Screenshots von NeXTStep 3.3 bei toastytech.com
 Screenshots von OPENSTEP 4.2 bei toastytech.com
 The WorldWideWeb browser, der allererste Webbrowser
 Tom Hormby: Full Circle: A Brief History of NeXT. Low End Mac, 26. April 2014 (englisch)

Einzelnachweise 

NeXT
BSD-Betriebssystem
GNUstep
Objective-C
Proprietäre Software
Historische Software
Betriebssystem von Apple