Macintosh-Baukasten

Sammlung von Ressourcen, Treibern, Routinen und Programmierschnittstellen, die sich im ROM früher Modelle von Macintosh-Computern befindet

Der Macintosh-Baukasten (englisch Macintosh Toolbox) ist eine Sammlung von Ressourcen, Treibern, Routinen und Programmierschnittstellen, die sich im ROM früher Modelle von Macintosh-Computern befindet. Diese wurden später als „Old-World-ROM“-Modelle bezeichnet. Der Macintosh-Baukasten wird vom Betriebssystem für Macintosh-Computer, der Macintosh System Software, die später als klassisches Mac OS bezeichnet wurde, genutzt – umgekehrt ist Mac OS ohne den Macintosh-Baukasten nicht ausführbar.

Geschichte Bearbeiten

Um Arbeits- und Diskettenspeicherplatz zu sparen, waren seit dem ersten Macintosh mit 128 kB RAM zahlreiche Komponenten des Betriebssystems in einem ROM bereitgestellt worden. Arbeitsspeicher (RAM) war zu dieser Zeit doppelt so teuer wie die gleiche Speichermenge ROM, und 128 kB Arbeitsspeicher stellten bei der Produktion bereits einen wesentlichen Kostenfaktor dar. Außerdem bot diese Maßnahme einen gewissen Geschwindigkeitsvorteil, da ROM seinerzeit schneller auszulesen war als die Kombination aus RAM und Daten von Disketten, denn die Daten hätten jeweils von einer Diskette in den RAM geladen werden müssen. Diskettenlaufwerke waren aber weitaus langsamer als der ROM. Zusätzlich waren die Routinen im ROM ohnehin jederzeit verfügbar – ohne wertvollen Speicherplatz auf Disketten zu belegen, der für die Programme und deren Daten wichtig war.[1] Ebenso war beim originalen Macintosh von 1984, retronym als „Macintosh 128k“ bezeichnet, der spärliche Arbeitsspeicher für die Programme sehr wertvoll.[2]

Da der Inhalt des ROMs mit der Auslieferung des Rechners festgelegt war, werden alle Inhalte des Baukastens über eine Tabelle angesprungen. Um den Macintosh-Baukasten erweiterbar zu machen, kann eine neuere Routine aus dem Betriebssystem (von Diskette) in den Arbeitsspeicher (RAM) geladen werden. Die Sprungadresse in der Tabelle wird dabei auf die nun im RAM vorhandene Funktion umgeleitet. So wird automatisch die neue statt der jeweils veralteten Funktion des ROM verwendet. Dies erlaubte z. B. Fehler zu bereinigen und Funktionen zu erweitern, was dann jedoch ein wenig Arbeitsspeicher kostete.

OldWorld Bearbeiten

Ende der 1980er Jahre kehrte sich das Preisverhältnis von ROM und RAM um, ROM war nun deutlich teurer als die gleiche Menge RAM und zudem langsamer. Auch wurde ab 1992 in der Apple–IBM–Motorola-Allianz (AIM) ein neuer auf IBMs POWER-Architektur aufbauender RISC-Prozessor entwickelt, der die Motorola-68000er-Familie ablösen sollte. Die ersten Modelle mit diesem PowerPC getauften Prozessor, dem PowerPC 601, kamen 1995 auf den Markt. Dabei wurde im System-ROM ein Nanokernel geladen, der 68k-Programmcode transparent emuliert ausführen konnte. Der Macintosh-Baukasten wurde ursprünglich in Pascal entwickelt und dann aus Geschwindigkeits- und Platzgründen in Motorola-68000-Assembler umgesetzt. Auf dem PowerPC wurde anfänglich der Macintosh-ROM beinahe unverändert in 68k-Maschinencode wie bisher im ROM vorgehalten, was die bestehende Firmware weiter nutzbar machte und auch für Software für die nötige Kompatibilität sorgte, da über den Nanokernel jegliche Software die transparente 68k-Emulation nutzen konnte. Diese Vorgehensweise ermöglichte Apple zwar einen sanften Übergang von einer Prozessorarchitektur auf eine völlig andere eigentlich inkompatible Befehlssatzarchitektur, jedoch führte es auch zu Einbußen bei der Ausführungsgeschwindigkeit. Das hatte zur Folge, dass der eigentlich schnellere PowerPC in einem Macintosh-Computer unter System 7 (später Mac OS 7.6) real nicht viel schneller war als der 68k-Prozessor, den er – wegen der Geschwindigkeit – ersetzen sollte.

Nach und nach wurde der Macintosh-Baukasten bzw. Macintosh-ROM in die Programmiersprache C und C++ übersetzt und dabei in nativen PowerPC-Maschinencode umgewandelt. Auch wurde die Firmware des Computers auf die von Sun Microsystems entwickelte auf FORTH basierte Open Firmware umgestellt. Diese Firmware sollte ein schnelles Initialisieren der nötigen Hardwarekomponenten bieten und schließlich die Kontrolle an den Mac-OS-Bootloader übergeben. Diese ersten Macintosh-Computer mit Open Firmware erhielten nach 1998 die Bezeichnung OldWorld (Deutsch: „alte Welt“), da sie den Mac-OS-ROM, der Teile des Macintosh-Baukastens enthält, als AAPL,ROM im Gerätebaum der Open Firmware bereitstellen.[3] Der Macintosh-Baukasten ist somit ein Teil der Firmware und wie gehabt ein Teil des ROM, weshalb er auch weiterhin oft als Macintosh ROM bezeichnet wurde.

NewWorld Bearbeiten

Als Apple Zugang zum Quelltext der Open Firmware erhielt, flossen zahlreiche Macintosh-spezifische Erweiterungen darin ein. Das Ergebnis war Open Firmware 3.0, das bereits ELF-Objekte laden und auf die Dateisysteme HFS und ext2 zugreifen konnte. Diese Art Apple-Mac-Computer wurde von Apple als NewWorld (Deutsch: „neue Welt“) bezeichnet. Zahlreiche Funktionen, die zum Starten eines Betriebssystems notwendig waren, wurden in die Open Firmware verlagert – und im Gegenzug das Mac-OS-ROM ausgelagert. Dies wurde als „ROM-in-RAM“ bezeichnet, da der Macintosh-Baukasten nun nicht mehr im ROM abrufbar war, sondern beim Betriebssystemstart aus einer Datei von der Festplatte in den schnelleren RAM geladen wurde. Der erste NewWorld-Mac war der 1998 vorgestellte iMac „Bondi,“ 1999 folgten das PowerBook G3 „Lombard“ und der Blau-Weiße Power Mac G3.

Bestandteile Bearbeiten

Wichtige Bestandteile des Macintosh-Baukastens umfassen:

  • QuickDraw
  • Window Manager
  • Dialog Manager
  • Control Manager
  • Menu Manager
  • Event Manager
  • TextEdit
  • Resource Manager
  • Finder-Schnittstelle
  • Scrap-Manager
  • Standard file package
  • Sound Manager

Nachfolge Bearbeiten

Anfang der 1990er-Jahre war Apple mit dem als veraltet geltenden Betriebssystem „Macintosh System Software“ (ab 1996 in Mac OS umbenannt) nicht mehr konkurrenzfähig. Microsoft und IBM arbeiteten an einem grafischen Betriebssystem, das so einfach zu bedienen sein sollte wie das Apple-Betriebssystem, zusätzlich jedoch moderne Funktionen wie kooperatives Multitasking und Speicherschutz bot. Während der Entwicklung von System 7 wurde der Macintosh-Baukasten von 68k-Assembler auf C neu implementiert und mit dem Projekt „Star Trek“ (System 7 auf einem IBM-PC-kompatiblen Computer) sogar auf die x86-Architektur portiert.

Am Ende scheiterte Apple jedoch bei dem Versuch, sein Betriebssystem entweder zu erweitern oder durch eine moderne Neuentwicklung zu ersetzen. Projekte wie Pink (Taligent) und Copland wurden nie fertiggestellt während Microsoft mit Windows 95 große Erfolge feierte und IBM mit OS/2 und Microsoft mit Windows NT stabile und moderne Betriebssysteme entwickelt hatten.

Ende 1996 erhielt Apple durch die Übernahme von NeXT ein modernes Unix-basiertes Betriebssystem, das eine nicht-kompatible objektorientierte Programmierschnittstelle (API) namen OpenStep enthielt. Diese neue API wurde von Apple im Betriebssystemprojekt Rhapsody als Yellow Box und mit Mac OS X schließlich als Cocoa weiterentwickelt.

Da jedoch viele Anbieter von für Apple unverzichtbarer Anwendersoftware ein mit dem ursprünglichen Macintosh-API kompatibles System forderten, wurde sowohl unter Mac OS ab Version 8.1 als auch unter Mac OS X eine neue Programmierschnittstelle implementiert, die größtmögliche Source-Code-Kompatibilität mit dem Macintosh-Baukasten bieten sollte. Damit wurde der Portierungsaufwand für bestehende Anwendungen gering gehalten und Softwarehersteller konnten ihre Programme relativ schnell auf das neue Betriebssystem Mac OS X portieren, das ab 2002 das ältere klassische Mac OS vollständig ersetzte. Diese kompatible Programmierschnittstelle erhielt von Apple den Namen Carbon und ist in Mac OS X, das 2016 in macOS umbenannt wurde, bis macOS Mojave, das ist Version 10.14 von 2018, enthalten, wurde jedoch seit 2007 nicht mehr weiterentwickelt und auch nicht mehr auf 64-Bit portiert, sodass auch nur 32-Bit-Anwendungen unter Mac OS X die Funktionen der Carbon-Programmierschnittstelle nutzen können. Im Nachfolger macOS Catalina von 2019 werden nur noch 64-Bit-Anwendungen unterstützt.

Versionsgeschichte Bearbeiten

Bei „Old-World“-Macintosh-Computern war der Macintosh-Baukasten noch im ROM gespeichert. Die Speicherkapazität des verbauten ROM wurde seit 1984 von 64 kB auf 4 MiB von 1994 bis 1998 erhöht.

Bei „New-World“-Macs sind die folgenden Versionen des Mac OS ROM bekannt:[4][5]

Version Datum Retail-Versionen von Mac OS, Mac-Modelle, Anmerkungen
Ältere Version; nicht mehr unterstützt: 1.1 21. Juli 1998 Mac OS 8.1, iMac, Rev A
Ältere Version; nicht mehr unterstützt: 1.1.2 27. Aug. 1998 Mac OS 8.5, iMac Update 1.0
Ältere Version; nicht mehr unterstützt: 1.2 3. Dez. 1998 iMac, Rev B
Ältere Version; nicht mehr unterstützt: 1.2.1 22. Jan. 1999 Power Mac G3 „Blau&Weiß“ (B&W) sowie Macintosh Server G3 B&W, Mac OS 8.5.1 (Update)
Ältere Version; nicht mehr unterstützt: 1.4 5. Apr. 1999 Mac OS 8.6, Colors iMac 333 MHz, Power Mac G3 B&W
Ältere Version; nicht mehr unterstützt: 1.6 14. Mai 1999 PowerBook G3, Mac OS ROM Update 1.0
Ältere Version; nicht mehr unterstützt: 1.7.1 Power Mac G4 „PCI-Grafikkarte“
Ältere Version; nicht mehr unterstützt: 1.8.1 28. Sep. 1999 Power Mac G4 („PCI-Grafikkarte“) ROM 1.8.1 Update[6]
Ältere Version; nicht mehr unterstützt: 2.3.1 iMac „Slot Loading“, iBook
Ältere Version; nicht mehr unterstützt: 2.5.1 17. Sep. 1999 Power Mac G4 „AGP-Grafikkarte“
Ältere Version; nicht mehr unterstützt: 3.0 27. Sep. 1999 Mac OS 9.0, PowerBook G3 Bronze
Ältere Version; nicht mehr unterstützt: 3.5 Power Mac G4 „AGP-Grafikkarte,“ iBook, PowerBook „FireWire“ (jeweils vorinstalliertes Mac OS 9.0.2)
Ältere Version; nicht mehr unterstützt: 3.6 iMac „Slot Loading“ (vorinstalliertes Mac OS 9.0.3)
Ältere Version; nicht mehr unterstützt: 3.7 15. März 2000 Mac OS 9.0.4 (sowohl Retail als auch Update); PowerBook „FireWire“
Ältere Version; nicht mehr unterstützt: 3.8 22. Mai 2000 Ethernet Update 1.0[7]
Ältere Version; nicht mehr unterstützt: 4.6.1 iMac „Sommer 2000,“ Power Mac G4 „Sommer 2000“ (jeweils vorinstalliertes Mac OS 9.0.4)
Ältere Version; nicht mehr unterstützt: 4.9.1 PowerMac G4 MP „Sommer 2000“ (CPU software 2.3), PowerMac G4 „Gigabit Ethernet“ (jeweils vorinstalliertes Mac OS 9.0.4)
Ältere Version; nicht mehr unterstützt: 5.2.1 Power Mac G4 Cube (CPU software 2.4)
Ältere Version; nicht mehr unterstützt: 5.3.1 iBook (Sommer 2000, CPU software 2.5)
Ältere Version; nicht mehr unterstützt: 5.5.1 Power Mac G4 (mit Radeon-Grafikkarte, CPU software 2.6)
Ältere Version; nicht mehr unterstützt: 6.1 3. Nov. 2000 Mac OS 9.1 (sowohl Retail als auch Update)
Ältere Version; nicht mehr unterstützt: 6.6.1 PowerBook Titanium
Ältere Version; nicht mehr unterstützt: 6.7.1 Power Mac G4 „Digital Audio“ (vorinstalliertes Mac OS 9.1)
Ältere Version; nicht mehr unterstützt: 7.5.1 7. Feb. 2001 iMac „Early 2001“ und „Sommer 2001“ (jeweils vorinstalliertes Mac OS 9.1)
Ältere Version; nicht mehr unterstützt: 8.4 30. Juli 2001
Ältere Version; nicht mehr unterstützt: 9.0.1 19. Dez. 2001
Ältere Version; nicht mehr unterstützt: 9.1.1 8. Apr. 2002
Ältere Version; nicht mehr unterstützt: 9.6.1 3. Sep. 2002
Ältere Version; nicht mehr unterstützt: 9.8.1 10. Jan. 2003
Ältere Version; nicht mehr unterstützt: 10.2.1 3. Apr. 2003
Legende:
Ältere Version; nicht mehr unterstützt
Ältere Version; noch unterstützt
Aktuelle Version
Aktuelle Vorabversion
Zukünftige Version

Einzelnachweise Bearbeiten

  1. Andy Hertzfeld: We're Not Hackers! We were always dealing with memory limitations. In: The Original Macintosh – Anecdotes about the development of Apple’s original Macintosh, and the people who made it. Folklore.org, September 1983, abgerufen am 9. November 2016 (englisch): „…as we started to get some software going on the prototype, it became increasingly clear that we didn't have enough RAM for the kind of graphic intensive applications that we wanted to build; … Burrell added another row of 8 memory chips, doubling the RAM size to 128K … ROM is half the price per bit of RAM, so it makes sense to use as much as we can. … Fortunately, we had started to use the resource manager to load objects like fonts and drivers, so we had some flexibility about keeping stuff on disk instead of the ROM. … But code on floppy disk is much slower to load, and it also would reduce the effective size of each disk.“
  2. David Craig: 3rd Party Developers and Macintosh Development. Some Comments about Developing Applications for the Apple Macintosh 128 Computer from a 20 Year Perspective. In: The Original Macintosh – Anecdotes about the development of Apple's original Macintosh, and the people who made it. Folklore.org, Januar 1984, abgerufen am 9. November 2016 (englisch): „…Sophisticated Macintosh applications required more resources than the Macintosh 128 provided. The original Macintosh's 128K bytes of memory and 400K byte disk drive were on the small size when it came to sophisticated applications (I recall reading that even in Apple there was lots of discussion about this). The original Macintosh was really around a 90K byte memory machine since the screen took 22K bytes of memory and a bit of memory was devoted to system code such a ROM patches and file system buffers. I recall my Investor application was around 200K bytes in size and though it ran on the original Macintosh it was slow due to constant application code segment swapping. …“
  3. netneurotic.de
  4. Mac OS: Matching Mac OS ROM File To Mac OS Version. Apple Computer, Inc., 20. Februar 2012, abgerufen am 7. Mai 2017 (englisch).
  5. Mac-on-Linux enthält die Textdatei /Doc/NewWorld-ROM, abrufbar z. B. hier
  6. Power Mac G4 Mac OS ROM 1.8.1. Apple Computer, Inc., 18. Oktober 1999, abgerufen am 7. Mai 2017.
  7. Ethernet Update 1.0 Document and Software. Apple Computer, Inc., 30. Mai 2000, archiviert vom Original (nicht mehr online verfügbar) am 20. April 2001; abgerufen am 7. Mai 2017 (englisch): „Dieses Update ersetzt die Datei „Mac OS ROM“ durch die neuere Version 3.8.“

Literatur Bearbeiten

Weblinks Bearbeiten