U U OpenStep im Detail

O O

O T O T Y Y Durch die Fusion von Apple und NeXT und die Entscheidung, S S OpenStep als Basis f r ihr zuk nftiges Betriebssystem zu verwen- T T C den, ist OpenStep pl tzlich in aller Munde. Steve Jobs ist damit sei- A A F F nem Ziel, NEXTSTEP bzw. OPENSTEP als das Betriebssystem der

Zukunft zu machen, einen großen Schritt n her gekommen, wenn

auch anders als erwartet. Doch was genau verbirgt sich hinter

diesem Standard und was ist der Unterschied zu OPENSTEP und

NEXTSTEP? Dies und einiges mehr soll dieser Artikel beantworten.

von Gerald Erdmann

Der Kreis schließt sich. Als nun- mehr vor ber zehn Jahren Steve Jobs Apple im Zorn verlassen und mit dem Geld, daß er durch den Verkauf seiner Apple-Aktien bekommen hat, seine neue Firma NeXT gegr ndet hat, wollte er ein Betriebssystem (damals noch in Verbindung mit einem eigenen, speziell daf r designten Compu- ter) entwickeln, das alles bisher Dagewesene in den Schatten stellt. Er hat es geschafft, zumin- dest aus technologischer Sicht. NEXTSTEP (oder NextStep oder NeXTstep oder NeXTSTEP, wie es zwischenzeitlich mal hieß) war und ist immer noch fortschrittli- cher als fast alles, was auf dem Abb. 1: InterfaceBuilder unter OPENSTEP f r Windows NT 3.51 Markt derzeit erh ltlich ist. Der Weg, nur noch das Betriebs- NeXT war zuletzt in der Gewinn- Was NeXT stets fehlte, waren system und die dazugeh rigen zone, jedoch haupts chlich durch entsprechende Ums tze, um Entwicklungstools zu verkaufen, Speziall sungen f r Großkunden NEXTSTEP im Markt zu etablie- war der Richtige, denn schnelle und durch WebObjects. Die Be- ren. Zuerst wurde die Hardware und solide Hardware k nnen an- triebssystem-Fraktion bei NeXT abgestoßen, nicht weil sie zu dere besser und billiger produzie- stand kurz vor dem Aus, da in- schlecht war, im Gegenteil, son- ren. Ob auch sch ner, sei dahin- zwischen OPENSTEP f r NT er- dern vielmehr weil es sich f r ei- gestellt. NEXTSTEP konnte da- h ltlich war und dies die Zukunft ne kleine Firma nicht rechnet, ei- durch die Anzahl der Installation – laut mehrerer NeXT Manager – ne eigene Hardware-Entwicklung mehr als vervierfachen, doch der sein sollte. NeXT hatte den zu betreiben, speziell auf einem weiterhin hohe Preis und ein Kampf gegen Windows aufgege- Markt, auf dem sich alle 18 Mo- gleichbleibend schlechtes Marke- ben. nate die Leistung verdoppelt bzw. ting halfen nicht, Steves Vision in

verdoppeln muß. die Realit t umzusetzen.

0 O 3

NEXT YT OU Sommer 1997 O O T FACTS YT OU

Der Standard nikation zwischen verschiedenen Anwendung Applikationen, wie „Copy & Pa- Als sich auch NEXTSTEP nicht ste“ oder „Drag & Drop“. im Markt bemerkbar etablieren konnte, beschloß man, das Pro- Display PostScript Foundation Kit Jedes OpenStep-Programm besitzt dukt noch weiter zu beschneiden, Geräteabhängige Distributed Objects genau ein Objekt der NSApplica- Fenstersystemerweiterung Indexing Kit in dem man sich auf die objekt- tion-Objektklasse. Dieses Objekt orientierte Entwicklungsumge- Betriebssystem verwaltet das Men bzw. die bung konzentrierte. Mit Open- Abb. 2: Die OpenStep-Architektur Men leiste (beide geh ren zu Step hat man zusammen mit Sun Klasse NSMenu), f hrt Buch ber einen Standard beschlossen, der OpenStep besteht im wesentli- alle Fenster (der Klasse NSWin- im Wesentlichen auf der API von chen aus drei Teilen (Abb. 2): dow und deren Unterklassen) die- NEXTSTEP 3.2 beruht. Mit die- ser Applikation, empf ngt alle sem offenen Standard sollte es Application Kit Tastatur- und Maus-Events (als m glich sein, plattformunabh n- NSEvent-Objekt) und leitet diese gige objektorientierte Anwendun- Das Application Kit stellt dem an die entsprechenden Objekte gen zu entwicklen, ohne dabei auf Entwickler alle notwendigen Ob- weiter. den Komfort von NEXTSTEP zu jektklassen zur Verf gung, um verzichten. Programme mit einem grafischen Display PostScript User-Interface (z. B. die Klassen Der Standard selbst besteht NSWindow oder NSButton) zu Wie schon unter NEXTSTEP ist haupts chlich aus den objektori- erzeugen. Neben einer ganzen auch unter OpenStep die Grafik- entierten „Kits“ von NEXTSTEP Reihe von User-Interface-Objek- ausgabe via Display PostScript und der „Darstellungsmaschine“ ten, die bei den bisherigen Imple- von Adobe standardisiert. Mit Display PostScript. Genau dies mentierungen im bew hrten diesem Beschreibungsmodell ist waren und sind die St rken und NEXTSTEP „Look & Feel“ da- ein echtes „What You See Is genau diese reichen auch aus, um herkommen (aber nat rlich nicht What You Get“ m glich, denn Applikationen zu entwicklen, m ssen), hilft das Application Kit f r Bildschirm und Drucker wer- denn im Prinzip ist es egal, auf auch bei der Behandlung von den in der Regel die gleichen welchem Betriebssystem die Ap- Events (Mausklicks, Tastaturein- PostScript-Kommandos aus- plikationen laufen. gaben u. .) und bei der Kommu- gef hrt! Dank zahlreicher Opti- mierungen steht die Die Architektur NSCell NSActionCell NSButtonCell NSMenuCell Darstellungsperfor- NSBrowserCell NSFormCell NSColor NSSliderCell mance auf dem Bild- NSColorList Der OpenStep-Standard NSTextFieldCell schirm der der ande- besteht aus mehreren NSColorPicker ren Systeme in nichts Schichten, die bei der NSCursor nach. Implementierung zwi- NSDataLink schen der Betriebssy- NSDataLinkManager Der normale Benutzer stemebene und der An- NSEvent merkt von der Ver- wendungsebene ange- NSFont wendung dieser Sei- NSBitmapImageRep NSFontManager siedelt sind. Das darun- NSCachedImageRep tenbeschreibungsspra- NSObject NSImage ter liegende System NSCustomImageRep che jedoch nichts, da NSBrowser muß jedoch gewisse NSImageRep NSEPSImageRep Display PostScript bei NSButton NSPopUpButton NSPasteboard Merkmale vorweisen. NSBox NSColorWell allen Implementierun- (Preemptives) Multitas- NSPrintInfo NSClipView NSMatrix NSForm gen vollkommen- NSControl NSScroller king oder virtuelle Spei- NSPrintOperation transparent ins System NSApplication NSScrollView NSSlider NSPrinter cherverwaltung sind f r NSSplitView NSTextField eingearbeitet wurde. eine Umsetzung „le- NSResponder NSView NSText NSCStringText Auch der Entwickler bensnotwendig“. Hier- NSScreen braucht keine Erfah- NSWindow NSPanel NSColorPanel NSSelection aus ergeben sich aber NSDataLinkPanel rung von PostScript zu keine gr ßeren Proble- NSSpellChecker NSFontPanel haben, solange er die

NSHelpPanel me, da heutzutage fast NSSpellServer grafischen Objekte des NSMenu NSWorkspace jedes moderne Betriebs- NSPageLayout Application Kits ver- system diese Features – NSPrintPanel wendet. zumindest ansatzweise NSSavePanel NSOpenPanel

– zur Verf gung stellt. Abb. 3: Ein Ausschnitt der Objekthierarchie des Applikation Kits

1 3 O

Sommer 1997 NEXT YT OU O O T FACTS YT OU

Erst wenn er selbst Grafiken (z.B. Applikation beendet wird; um hier wird die „ bersetzung“ der ein Kuchendiagramm) in einem solche Nachrichten zu empfan- Objektkommunikation verbor- Objekt einer Unterklasse des NS- gen, muß man sich im NSNotifi- gen. CORBA 2.0 Objekte werden Views darstellen will, muß er dies cationCenter „anmelden.“ W h- in naher Zukunft ebenfalls unter- via PostScript machen. rend man mit Objekten der Klas- st tzt werden. se NSThread Programmteilst cke Foundation Kit parallel – als Thread – ablaufen F r andere UNIX-Derivate wie lassen kann, dient die Klasse NS- z.B. HP-UX, Digital Unix, SunOS Das Foundation Kit ist der Unter- Bundle dazu, um Programmteile und Solaris gibt es von NeXT bau von OpenStep und dient zum bei Bedarf dynamisch nachzula- selbst bzw. jetzt von Apple ein hardwareunabh ngigen Umgang den. Framework, um Distributed Ob- mit Daten und Resourcen, wobei jects auch ohne OpenStep auf den die grundlegenden Klassen zur Das Foundation Kit selbst bein- Server-Plattformen zur Verf gung Verwaltung von Feldern, Listen, haltet noch zwei weitere Teile, die zu stellen; mit Portable Distri- multinationalen Zeichens tzen eher im Foundation Kit selbst an- buted Objects (PDO) kann man (in Unicode), Threads oder ver- gesiedelt sind: Distributed Ob- z. B. auf einem Datenbank-Server, schiedener Zahlenformate dienen. jects und das Indexing Kit. der unter einem der oben genann- ten Betriebssysteme l uft, per DO NSArray NSMutableArray NSAssertionHandler Distributed Objects & von einem OpenStep-Rechner zu- NSAutoreleasePool Indexing Kit greifen. NSBTreeBlock

NSBTreeCursor NSBundle Mit dem Distributed Das Indexing Kit war unter NSByteStore NSByteStoreFile

NSCharacterSet NSMutableCharacterSet Objects Framework NEXTSTEP eine eigene Objekt- NSCoder NSArchiver (DO) lassen sich beliebi- sammlung verschiedener Klassen NSConditionLock NSUnarchiver

NSConnection ge Objekte transparent zur effizienten Verwaltung gr ße- NSData NSMutableData in einem heterogenen rer Datenmengen. Unter Open- NSDate NSCalendarDate Netzwerk weltweit ver- Step dient es dazu, Objekte und NSDeserializer

NSObject NSDictionary NSMutableDictionary teilen. Die hierbei ange- unstrukturierte Daten – wie Tex- NSEnumerator botenen Objekterweite- te, Bilder aber auch andere multi- NSException

NSInvocation rungen, die in der „Mut- mediale Informationen – effizient NSLock ter aller OpenStep-Ob- abzuspeichern, zu indexieren und NSMethodSignature

NSNotification jekte“ NSObject ange- schnell wiederzufinden. Unter NSProxy NSDistantObject NSNotificationCenter siedelt sind, definieren OpenStep wird das Indexing Kit NSNotificationQueue bzw. implementieren nur intern f r einige Objektklas- NSProcessInfo

NSRecursiveLock den Transportmechanis- sen verwendet; f r den „Endent- NSRunLoop mus auf der Basis der wickler“ steht es selbst nicht zur NSScanner

NSSerializer Interprozeßkommunika- Verf gung. NSSet NSMutableSet NSCountedSet tion des Unix-Derivats NSString NSMutableString

NSThread Mach. Dieser Mechanis- Die Implementierung NSTimeZone NSTimeZoneDetail mus wird gegen ber den NSTimer

NSUserDefaults zu verteilenden Objek- W hrend ein Standard selbst nur NSValue NSNumber ten verborgen, so daß auf dem Papier oder auf einem Abb. 4: Ein Ausschnitt der Objekthierarchie des Foundation Kits f r die Applikation kein Datentr ger steht, ben tigt man Unterschied besteht, ob vielmehr eine Implementierung Neben dem Hauptobjekt NSOb- ein Objekt lokal oder verteilt ar- von OpenStep. Hierbei unter- ject, von dem alle Objektklassen beitet; die Objektschnittstelle ist scheidet man Laufzeitumgebun- von OpenStep abstammen, dient f r beide F lle identisch; es ist gen, um OpenStep-Programme die Klasse NSTimer dazu, be- ebenfalls egal, auf welcher Platt- ablaufen zu lassen, und Entwick- stimmte Objekte mit einer Zeit- form das entfernte Objekt behei- lungsumgebungen, um OpenStep- verz gerung – auch mehrmals – matet ist. Programme zu entwickeln. aufzurufen. Objekte der Klasse NSNotification werden „ver- Um auch eine Kommunikation Die Laufzeitumgebung besteht schickt“, sobald ein bestimmtes mit anderen objektorientierten aus diversen Funktionsbibliothe- Ereignis eingetreten ist oder ein- Umgebungen zu erm glichen, ken, die auf dem jeweiligen Rech- treten wird, wie z. B. daß ein Fen- k nnen Objekte bereits heute mit ner installiert werden m ssen. Zu ster vergr ßert oder verschoben Microsofts OLE/COM-Objekten diesen Bibliotheken gesellen sich

werden soll oder daß die gesamte zusammenarbeiten (DOLE); auch noch ein Display-PostScript-D -

2 O 3

NEXT YT OU Sommer 1997 O O T FACTS YT OU mon, der f r die Umsetzung der der Spezifikation. OPENSTEP Nobody is Perfect PostScript-Kommandos zust ndig (komplett große Schreibweise) ist, ein Kommunikations-D mon, hingegen stellt dem Entwickler ei- Nat rlich hat auch OpenStep ge- der vor allem f r die Kommuni- ne Implementierung von Open- wisse Grenzen und Einschr nkun- kation von verteilten Objekten Step zur Verf gung, um entspre- gen. Der Source-Code ist nur ben tigt wird und aus einem chende Programme zu ent- kompatibel soweit er sich an die Pasteboard-D mon, der f r den wickeln. Da OpenStep nur vor- Vorlagen der Spezifikation h lt. Datenaustausch zwischen einzel- schreibt, was mindestens imple- Dar berhinaus herrscht eine ge- nen Programmen – nicht nur zwi- mentiert sein muß, steht es jedem wisse Grauzone, denn es gibt schen OpenStep-Kompatiblen – Unternehmen frei, weitere Klas- mehrere Objektklassen, die z. B. zust ndig ist. sen, Methoden oder ganze Kits in OPENSTEP/Mach und OPEN- bzw. Frameworks zur Verf gung STEP/NT enthalten sind, jedoch Die Laufzeitumgebung, einmal in- zu stellen; da diese nicht standar- in OPENSTEP/Solaris fehlen. stalliert, l uft vollkommen un- disiert sind, kann hierbei nat r- Auch die Spezifikation selbst sichtbar im Hintergrund des je- lich keine Garantie der problem- ben tigt noch an einigen Stellen weiligen Betriebssystems ab. losen Portierbarkeit gegeben wer- ein paar Nachbesserungen, die OpenStep-Programme und Nicht- den, falls diese verwendet wer- aber mit Sicherheit in geraumer OpenStep-Programme sind dabei den. Zeit beseitigt werden. vom Benutzer nicht zu unterschei- den. Erst beim Start einer Open- W hrend OPENSTEP/Mach das berhaupt nicht portabel sind Step-Applikation werden vom Be- komplette NEXTSTEP-Betriebs- derzeit die fertig bersetzten Pro- triebssystem die entsprechenden system zur Verf gung stellt, kann gramme, d.h. f r jede Plattform D mons automatisch mitgestar- man unter Windows NT und ab muß eine eigene Bin rversion er- tet, so daß auch weiterhin kein OPENSTEP/NT 4.2 auch unter zeugt werden. OpenStep ist eine Unterschied zu merken ist. Windows 95 nur auf die im Stan- reine API (Application Program- dard festgeschriebenen Klassen ming Interface) und keine virtuel- Eine Entwicklungsumgebung hin- zur ckgreifen. Diese Klassen sind le Maschine wie etwa Java. Zwar gegen, besitzt dar berhinaus noch Pflicht, denn nur dann ist OPEN- wird man in Zukunft neben Ob- die von NEXTSTEP her bekann- STEP auch OpenStep. Um also jective C auch OpenStep-Pro- ten Klassiker wie den Interface- zwischen den verschiedenen gramme in Java und C++ schrei- Builder, den ProjectBuilder und OPENSTEP-Implementierungen ben k nnen, doch bleibt das Re- nat rlich einen Compiler, der auf Source-Code-kompatibel zu blei- sultat architekturgebunden. Zur GNU gcc basiert. ben, darf nur auf die im Open- Zeit jedenfalls. Step-Papier festgeschriebenen Ob- Die ersten Implementierungen jektsammlungen zur ckgegriffen brachte NeXT selbst vor gut ei- werden. nem Jahr mit OPENSTEP/Mach und OPENSTEP/NT auf den Markt. W hrend OPEN- STEP/Mach eigentlich nichts an- deres als NEXTSTEP 4.0 mit OpenStep-kompatibler Program- mierschnittstelle ist, bietet OPEN- STEP/NT nur die Umsetzung der OpenStep-Spezifikation f r Win- dows NT, um entsprechende Pro- gramme zu entwickeln und ablau- fen zu lassen.

OpenStep? OPENSTEP? Die Ver- wirrung ist f r viele an dieser Stelle komplett. OpenStep (ge- mischte Schreibweise) definiert genau, welche Objekte mit wel- chen Methoden dem Program- mierer – theoretisch – zur Verf -

gung stehen, ist also der Name Abb. 5: OPENSTEP f r Windows 95

3 3 O

Sommer 1997 NEXT YT OU O O T FACTS YT OU

Die Zukunft stationmarkt nun pl tzlich eben- die „Portierung“. Einmal Open- falls nur einen Mausklick ent- Step, immer (wieder) OpenStep. Die Zukunft heißt in jeglicher fernt ist. Wer dies nicht glaubt, Hinsicht Apple, da der MacOS- frage bitte bei Stone Design MehreBreE RSBIeCtrTiebssysteme sind Nachfolger „Rhapsody“ da auf- (http://www.stone.com) nach, schon im Gespr ch. Neben Digi- setzt, wo OPENSTEP f r Mach- das bereits zur Mac-Entwickler- tal und Hewlett Packard, die off- OS aufgeh rt hat. Apple wird – konferenz, auf der Rhapsody ziell schon seit ber einem Jahr in guter alter NeXT-Manier – zum ersten Mal der ffentlich- an einer OpenStep-Implentierung Rhapsody nicht nur f r Power- keit pr sentiert wurde, sein Gra- f r Ihre Unix-Systeme arbeiten, PC-Prozessoren, sondern (ver- fikprogramm Create – neben kursiert seit geraumer Zeit auch mutlich zeitgleich) auch f r Intel- OPENSTEP/Mach, OPENSTEP der Name Silicon Graphics. Prozessoren auf den Markt brin- /NT und OPENSTEP/Solaris – gen; „Fat Binaries“, also eine f r Rhapsody portiert hat: Ko- Sollten die letzten drei Hersteller Programmversion, die auf beiden piert. Kompiliert. Fertig. mit auf den OpenStep-Zug sprin- Plattformen ausf hrbar ist, wer- gen, ist durchaus zu erwarten, den ebenfalls unterst tzt. Last but not least arbeitet die daß OpenStep einen hnlichen Free Software Foundation an ei- Erfolg wie NFS, das ebenfalls als Dar berhinaus wird Apple wei- ner freien OPENSTEP-Implemen- Standard begann, haben wird. terhin OPENSTEP f r Windows tierung, genannt GNUstep. Ne- NT, Windows 95 und demn chst ben einer kompletten Eigenent- g.e. auch OPENSTEP f r MacOS wicklung aller Bibliotheken wird herausbringen. Gerade letzteres das Darstellungssystem auch auf ist f r den Erfolg von Rhapsody Display PostScript beruhen, wo- sehr wichtig, denn damit k nnen bei der D mon auf GhostScript alle jetzigen MacOS 7.x und basiert. Da GNUstep als Source- demn chst MacOS 8.x Besitzer code verf gbar ist, kann es theo- ebenfalls OpenStep-Programme retisch f r jede Plattform ber- laufen lassen, die schon speziell setzt werden, wie z.B. , f r Rhapsody entwickelt wurden; Windows oder OS/2. Die Ent- ein fließender bergang zwischen wicklung ist aber noch lange den beiden Betriebssystemen ist nicht abgeschlossen, da alle Ent- somit gew hrleistet. Mit Sicher- wickler ehrenamtlich „nebenbei“ heit wird diese sogenannte „Yel- arbeiten; N heres zu GNUstep low Box“ f r MacOS kostenlos und zum Stand der Entwicklung sein. finden sie unter http://www. GNUstep.org. Ebenfalls kostenlos wird dem- n chst die Laufzeitumgebung f r OPENSTEP/Mach alias NEXT- Windows NT und Windows 95 STEP wird hingegen vermutlich zu haben sein. Mit dieser Ent- mit der im Juni erscheinenden scheidung hat Apple genau den Version 4.2 wohl die letzte Versi- richtigen Schritt in Richtung on berhaupt sein – Rhapsody ist Massenverbreitung von Open- ja der designierte Nachfolger –, Step gemacht, denn wer heute jedoch k nnen nun auch viele Be- Programme nach dem OpenStep- triebssysteme – vor allem diverse Standard entwickelt, kann nicht Unix-Derivate – nun Ihr eigenes nur dem gesamten Apple-Markt, System aufwerten. Durch Anbie- sondern auch dem Windows- ten einer OpenStep-Laufzeitum- Markt (unter Intel-Hardware) gebung wird ber kurz oder lang verkaufen! Die Programme selbst ein Großteil der Macin- m ssen nicht modifiziert, sondern tosh/NEXTSTEP-Programme f r mittels eines einzigen Mausklicks die eigene Plattform verf gbar einfach neu bersetzt werden. sein. Kein Softwarehersteller muß „ berredet“ werden, ein Viertel- Weiterhin hat Sun noch OPEN- jahr Arbeit in eine Portierung zu STEP f r Solaris im Programm, stecken, denn der Betriebssy-

so daß selbst dieser große Work- stemanbieter bernimmt selbst

4 3 O

NEXT YT OU Sommer 1997