OPENSTEP [] ist 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.Red Box, Blue Box, Yellow Box. Low End Mac, 17. September 1997 (englisch) abgerufen am 15. Jänner 2016. Ä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).