Carbon (Apple)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Carbon ist eine Sammlung von Programmierschnittstellen (APIs) von Apple, die Teile der unter Macintosh System Software enthaltenen Macintosh Toolbox bereitstellt. Es war von vornherein als Brückentechnologie gedacht, um es seinerzeit Programmentwicklern möglichst leicht zu machen, ihre Mac-OS-Applikationen für das später erschienene Mac OS X vorzubereiten. Zum Zeitpunkt der Einführung war Mac OS 8 das aktuelle Betriebssystem von Apple, Version 9 sowie dessen Nachfolger und neue Betriebssystemgeneration Mac OS X befanden sich in Entwicklung.

Mac OS X heißt seit 2012 nur noch OS X, ohne „Mac“ im Namen. Carbon ist in jeder Version von OS X enthalten, wird jedoch seit 2007 nicht mehr weiterentwickelt und bleibt somit auf 32-Bit beschränkt.

Macintosh Toolbox[Bearbeiten | Quelltext bearbeiten]

Hauptartikel: Macintosh-Baukasten

Die Macintosh Toolbox, zu Deutsch auch Macintosh-Baukasten, ist jener Teil an Funktionsaufrufen des originalen Macintosh Systems (1984), die im ROM untergebracht und dadurch fix mit dem jeweiligen Macintosh-Computer verbunden waren. Lange Zeit war es von Apple so dargestellt worden, dass nur ein Apple-Computer die grafischen Funktionen auf diese Weise bereitstellen kann.

Die Toolbox erlaubt es Programmierern, bereitgestellte Funktionen der System Software zu nutzen, um auf einfache Weise vom System erstellte (und somit auch einheitlich aussehende) Fenster, Menüs, Kontrollkästchen und Dialogfelder zu erstellen und Ereignisse zu steuern. Auch Funktionen des Finder, der selbst nicht Teil des Toolbox-ROM ist, lassen sich über dieselbe Art von Funktionsaufrufen nutzen.[1]

Im Laufe der Entwicklung der Macintosh System Software wurde die Programmierschnittstelle (API) stetig erweitert, etwa um QuickDraw und QuickTime. Undokumentierte Funktionen wurden jedoch auch gestrichen. So war mit System 7 (1991) die API in C neu implementiert worden, was die Portierung des Betriebssystems von der 68k- auf die PowerPC-Architektur erleichterte. Auch wurde im Zuge des Projekts „Star Trek“ an einer Portierung von System 7 und damit auch der enthaltenen Programmierschnittstelle auf x86-PCs gearbeitet, diese wurde aber nicht fertiggestellt. Da viele Macintosh-Anwenderprogramme für System 6 undokumentierte Funktionen nutzten, mussten die Entwickler diese bereits für System 7 anpassen.

Ab 1997 versuchte Apple auf eine gänzlich neue Programmierschnittstelle zu wechseln: der von NeXT übernommenen OpenStep-API, die mit dem Betriebssystemprojekt Rhapsody als Yellow Box und mit Mac OS X als Cocoa weiterentwickelt wurde. Dabei hätten jedoch alle existierenden Macintosh-Programme vollkommen neu geschrieben werden müssen. Die Hersteller von für Apple unverzichtbarer Anwendungssoftware gaben nach der WWDC 1997 zu verstehen, dass sie diesen Portierungsaufwand nicht in Kauf nehmen würden, woraufhin Apple notgedrungen einen großteils Quelltext-kompatiblen Ersatz für den Macintosh-Baukasten entwickeln musste. Dieser Ersatz ist Carbon, der mit Mac OS X eingeführt wurde und auch für das klassische Mac OS als CarbonLib verfügbar ist. Damit waren nur geringere Anpassungen am Quelltext nötig damit ein bestehendes Macintosh-Programm für das Carbon-API neu kompiliert werden konnte, das dann auf beiden Betriebssystemen (Mac OS und Mac OS X) lauffähig ist.

Carbon[Bearbeiten | Quelltext bearbeiten]

Carbon basiert auf den Programmierschnittstellen des Macintosh-Baukasten (englisch Macintosh Toolbox) der klassischen Macintosh System Software (1984, ab 1996 Mac OS), abzüglich derer, die historisch gewachsen und redundant waren, und solcher, die typischen Mac OS X-Funktionen wie präemptivem Multitasking und Speicherschutz im Weg standen. Wurde ein Mac-OS-Programm so geschrieben, dass es die Carbon-Bibliothek nutzte, so konnte es sowohl auf Mac OS als auch auf Mac OS X nativ ausgeführt werden. Voraussetzung war jedoch, dass kein Motorola-68k-Code mehr verwendet wurde, da Carbon unter Mac OS nur auf der PowerPC-Architektur verfügbar war.

Mit dem Verwenden der Carbon-Bibliothek ergab sich für die Entwickler der Vorteil, bereits bestehenden Quelltext in großen Teilen weiter verwenden zu können. Der Portierungsaufwand war also überschaubar, denn für die modernere Cocoa-API, die ihren Ursprung im NeXT-Betriebssystem NeXTStep hat, hätte ein sehr großer Anteil des Quelltextes der bestehenden Programme neu geschrieben werden müssen. Viele bekannte Programme waren noch lange Zeit Carbon-Programme, beispielsweise auch Adobe Photoshop bis zur Version CS4 (Ende 2008). Apple selbst nutzte Carbon für einige Bestandteile von Mac OS X, die es auch schon unter Mac OS gab – erst für Mac OS X Snow Leopard wurde beispielsweise der Finder in Cocoa komplett neu geschrieben. Auch die Frontends von iTunes und QuickTime Player für Mac OS 9, Mac OS X und Windows basierten lange Zeit auf Carbon. Neu entwickelte Apple-Programme wie z. B. der Safari-Browser für Mac OS X und Windows basierten hingegen von Beginn an auf dem moderneren Cocoa.

Die Carbon-Bibliothek ist in Mac OS X seit der ersten Version (Public Beta, 2000) Bestandteil des Betriebssystems. Unter Mac OS 8.1 bis 9.2.2 muss die Bibliothek, die gratis per Download verteilt wurde, manuell nachinstalliert werden. Nach Meinung eines Entwicklers kann Carbon allerdings erst ab der in Mac OS X 10.2 integrierten Version als fertig betrachtet werden.[2]

Programme, die die Carbon-Bibliothek verwendeten und auf Mac OS und Mac OS X lauffähig waren, hießen zumeist carbonized applications (übersetzt also ‚carbonisierte Programme‘). Auf spätere reine Mac OS X-Programme, die die Carbon-Bibliothek verwendeten, wurde der Begriff nicht angewandt.

Bereits in Mac OS X Tiger konnten 64-Bit-Konsolenprogramme ausgeführt werden; mit Mac OS X 10.5 war Cocoa 64-Bit-tauglich. Seit Mac OS X 10.6 konnte entweder ein 32-Bit- oder ein 64-Bit-Kernel gestartet werden. Ab OS X 10.8 ist das Betriebssystem voll auf 64-Bit umgestellt. Pläne, auch Carbon 64-Bit-tauglich zu machen, wurden von Apple 2007 fallengelassen.[3] Während sich Mac OS X also schrittweise in ein reines 64-Bit-Betriebssystem verwandelte, wurde die Weiterentwicklung von Carbon nun endgültig eingestellt und alte Programme, die noch auf Carbon setzten, blieben auf 32-Bit beschränkt. Unter anderem deswegen war Adobe Photoshop CS4 unter Windows bereits als 64-Bit-Programm verfügbar, unter Mac OS X jedoch noch immer ein 32-Bit-Programm. Zur Portierung von Photoshop auf Cocoa wurde ein eigenes Entwicklerteam eingesetzt (C2C: Carbon to Cocoa). Ende April 2010 veröffentlichte Adobe schließlich Photoshop CS5 als 32- und 64-Bit-Cocoa-Anwendung[4].

Literatur[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Inside Macintosh: Macintosh Toolbox Essentials (englisch, PDF, 6,2 MB), 1992, Apple Computer Inc.; abgerufen am 8. März 2016
  2. Rhapsody Timeline (englisch), abgerufen am 18. Oktober 2015.

    “Carbon is based on the application environment designed for Copland after developers had let it be known that they did not want to completely rewrite their apps for Copland (the same thing they would later say about Rhapsody). Carbon, though impressive in how it worked at WWDC 98, was far from being as ready as Apple had thought (many people didn't consider it usable until the release of Mac OS X v10.2 in August of 2002).”

  3. Macworld: Photoshop CS4 to be 64-bit for Windows, but not Mac (englisch) vom 2. April 2008, Jim Dalrymple, abgerufen am 26. März 2015
  4. Blog: Getting Photoshop CS5 to 64-bit on Macintosh (englisch) vom 14. März 2011, Blog von Jeff Tranberry, abgerufen am 26. März 2015