# OpenStep

OpenStep [oʊpn̩ˈstɛp] (engl. ‚offener Schritt‘) ist eine Spezifikation für eine objektorientierte Programmschnittstelle (API) für Computer, die zwischen dem Kernel und den Applikationen vermittelt; sie wurde von NeXT und Sun erarbeitet. Das „Open“ verweist nicht etwa auf freie Software, sondern darauf, dass die Vorzüge von NeXTStep durch OpenStep Hard- und Softwareplattform-übergreifend implementiert werden konnten.
Das Betriebssystem OPENSTEP (in Großbuchstaben) ist die erste Implementierung der Programmierschnittstelle – beide wurden aus deren Vorgängern entwickelt: der Programmierschnittstelle NeXTstep (in der Schreibweise mit kleingeschriebenem „step“) des gleichnamigen Betriebssystems NeXTStep bzw. NeXTSTEP. Der Nachfolger bzw. die Weiterentwicklung von OpenStep ist die Yellow Box aus Rhapsody, woraus letztlich Cocoa entstand, die native Programmierschnittstelle von macOS und iOS.

## Geschichte

Die OpenStep-API war das Ergebnis der Zusammenarbeit von NeXT (heute Apple) und Sun Microsystems (heute Oracle). Dabei wurde die bereits existierende objektorientierte NeXTstep-API gemeinsam erweitert und die Spezifikation offengelegt. Das erklärte Ziel war es, eine Multi-Plattform-Programmierschnittstelle zu erschaffen, die neben dem Betriebssystem von NeXT (NeXTSTEP wurde dabei in OPENSTEP umbenannt) auch auf Solaris von Sun und Windows NT von Microsoft hätte verfügbar sein sollen. Damit hätten Programme, die die OpenStep-API nutzten, auf mehreren Betriebssystemen und Architekturen (Plattformen) laufen können. Sun zog sich jedoch Mitte der 1990er-Jahre aus der Entwicklung zurück, da man sich voll auf Java, das ebenfalls als Multi-Plattform-Programmierschnittstelle konzipiert war, konzentrieren wollte. Nach der Übernahme von NeXT Anfang 1997 wurde die Programmierschnittstelle bei Apple weiterentwickelt und als Yellow Box in Rhapsody und als Cocoa in Mac OS X integriert. Der Multi-Plattform-Anspruch wurde nach 1998 nicht weiter verfolgt – die Schnittstelle wird nur noch für Apple-Entwicklungen genutzt. Mac OS X wurde inzwischen umbenannt: von 2012 bis 2016 hieß es OS X (ohne „Mac“ im Namen) und seit 2016 heißt es macOS. Auf Basis von Mac OS X entstand ab 2005 schließlich die iPhone OS und iPad OS genannten Varianten, die 2010 in iOS umbenannt und zusammengeführt wurden, bis sie 2019, mit der Vorstellung von iPadOS, wieder voneinander getrennt wurden. iOS bildet jedoch die Basis sowohl von iPadOS als auch von tvOS und watchOS. Alle diese auf dem quelloffenen BSD-Unix Darwin fußenden Betriebssysteme beinhalten Cocoa als eine der wesentlichen Programmierschnittstellen.

## Implementierungen
### OPENSTEP

Mit der Version 4.0 des davor (bis Version 3.3) als NeXTStep bzw. NEXTSTEP bezeichneten Betriebssystems implementierte NeXT erstmals die OpenStep-APIs und nannte das Betriebssystem fortan ebenfalls OPENSTEP, jedoch zur Unterscheidung von der API in Großbuchstaben. OPENSTEP for Mach (auf Unix-Basis) lief u. a. auf Motorola-68k- und Intel-IA-32-CPUs und mit OPENSTEP Enterprise gab es einen Aufsatz für Windows NT für das OpenStep for Windows portiert wurde.

### Rhapsody

Nachdem NeXT im Januar 1997 von Apple aufgekauft worden war, entstand unter dem Namen Rhapsody auf Basis von OPENSTEP Apples neues Betriebssystem, das das Look & Feel des bisherigen Macintosh-Betriebssystems Mac OS mit der Funktionalität von OPENSTEP verband. Mittels der Blue Box konnten darauf auch für das klassische Mac OS entwickelte Anwendungen ausgeführt werden, waren jedoch auf ein virtualisiertes Mac OS 8.5 angewiesen. Trotz Fertigstellung von „Rhapsody 1.0“ blieb es bei als Vorschau für Entwickler veröffentlichten Vorabversionen, da das Projekt kurz vor der geplanten Veröffentlichung gestoppt wurde. Als Server-Betriebssystem wurde Rhapsody schließlich dennoch veröffentlicht, jedoch bereits unter dem neuen Namen Mac OS X Server 1.0 exklusiv für Power-Macintosh-Server.

### Mac OS X, OS X, macOS

Auf Basis von Rhapsody wurde eine neue grafische Benutzeroberfläche mit dem Namen Aqua entwickelt sowie der ursprüngliche Macintosh-Baukasten zu 75 % als Carbon-API portiert. Das sollte den Erhalt der Macintosh-Plattform auch auf Mac OS X sicherstellen, da Entwickler ihre Mac-OS-Anwendungen damit leichter auf das neue Betriebssystem portieren konnten. Die Weiterentwicklung von Carbon wurde 2007 eingestellt. Für neue Applikationen waren die weiterentwickelten OpenStep-Schnittstellen vorgesehen – die originale OpenStep-API findet sich heute größtenteils in der Cocoa-API von macOS und iOS wieder. Das Server-Betriebssystem wurde anfangs als Mac OS X Server mit der gleichen Versionsnummer wie das Desktop-System (10.0, 2001, bis 10.6, 2009) als eigenständiges Betriebssystem herausgebracht, ist jedoch seit OS X Server 1.0 (Lion Server, 2011) über den App Store auf dem jeweiligen macOS nachinstallierbar. Zusammen mit weiteren APIs und mit dem Darwin-basierten Unix-Kern, der noch von Rhapsody stammt, sowie proprietären Entwicklungen (wie dem Aqua-Desktop) veröffentlicht Apple das Betriebssystem Mac OS X (zwischen 2012 und 2016 nur noch OS X, seit 2016 macOS) und iOS (und darauf basierend tvOS/​watchOS) exklusiv für die eigene Hardware. Die Fähigkeit von OPENSTEP – als Urvater von Mac OS X/​OS X/​macOS – auf verschiedenen Architekturen und Kerneln zu laufen, gab Apple die Flexibilität, das Betriebssystem zu modernisieren und gleichzeitig die Kompatibilität mit vorhandener Mac-Hardware und -Software aufrechtzuerhalten.

### GNUstep

GNUstep ist eine freie Implementierung von OpenStep für andere Betriebssysteme wie Linux, Unix oder auch Windows. Während erste Versionen zu NeXTStep/OPENSTEP kompatibel waren, dient in aktuellen Versionen macOS als Vorbild. Im Wesentlichen handelt es sich beim weiterentwickelten GNUstep daher um eine Nachbildung der Cocoa-Schnittstellen von Mac OS X/​OS X/​macOS, also der weiterentwickelten ursprünglichen OpenStep-API.