# SheepShaver

SheepShaver ist ein freier Apple-Power-Macintosh-Emulator für Unix mit X11 (Linux und BSD), macOS (PowerPC und Intel), Windows und BeOS als Wirtsystem. Als PowerPC-Emulator unterstützt SheepShaver Mac OS 7.5.2 bis 9.0.4 als Gastsysteme.

## Geschichte

Da die Virtualisierungslösung für klassische 68k-Macintosh ShapeShifter und dessen Weiterentwicklung Basilisk II als 68k-Macintosh-Emulator ausgelegt sind, können damit nur Mac-OS-Betriebssysteme für 68k-Macintosh-Rechner als Gast ausgeführt werden. Das letzte Mac OS, das diese Rechnerarchitektur unterstützt, ist Mac OS 8.1. Um auch neuere Versionen von Mac OS emulieren zu können, bedurfte es daher eines PowerPC-Emulators. Zusammen mit Teilen des Programmcodes von Basilisk II entstand 1998 SheepShaver für BeOS zuerst als Shareware, später als Teil von BeDepot.
Der Name SheepShaver ist eine Anspielung auf ShapeShifter, den 68K-Macintosh-Emulator für den Amiga. Bereits ShapeShifter wie auch Basilisk I und Basilisk II stammen in großen Teilen von Christian Bauer.
Nachdem BeOS nicht erfolgreich gewesen war, wurde SheepShaver 2002 als Open Source unter der GPL veröffentlicht. Gwenolé Beauchesne, ein Entwickler bei Mandriva Linux, der bereits 1999 zu Basilisk II beigetragen hatte, erweiterte den PowerPC-G4-Emulator ab 2003 um “Just-In-Time translation” und portierte den Emulator von BeOS nach Linux, Mac OS X und Windows. 2008 stellte er die Arbeit an SheepShaver ein.
SheepShaver war der erste und bis Ende 2005 der einzige verfügbare PowerPC-Emulator mit G4-Prozessor- und AltiVec-Unterstützung. Am 20. Dezember wurde PearPC in Version 0.4.0 ebenfalls mit AltiVec-Unterstützung freigegeben.
Mit dem Entfernen der Classic-Umgebung in Mac OS X 10.5 „Leopard“ hat Apple die eingebaute Möglichkeit, alte Mac-Programme auf neuer Apple-Hardware zu nutzen, auch auf PowerPC-Macs genommen. Auf Intel-basierten Macs gab es bereits in der ersten Mac OS X-Version für diese Architektur, 10.4 „Tiger“, kein Classic Environment mehr. SheepShaver schließt diese Lücke: Es ist derzeit (Stand: 2014) die einzige Möglichkeit, für Mac OS geschriebene Programme auf Intel-basierten Macs sowie auf allen Macs, auf denen Mac OS X 10.5 und neuer läuft, zu nutzen. Dabei ist es sowohl auf PowerPC- als auch auf x86-Rechnern stabil und ausreichend schnell.

## Unterstützte Gastsysteme

Als stabil gelten Mac OS 7.5.2 bis 8.6, jedoch wird auch Mac OS 9.0.4 experimentell unterstützt. Die neueren Mac-OS-Betriebssysteme Mac OS 9.1 bis 9.2.2 sind nicht lauffähig, da diese eine MMU voraussetzen, die von der PowerPC-Emulation nicht bereitgestellt wird. macOS ist nicht lauffähig.
Zur Ausführung von Mac OS benötigt SheepShaver ein Abbild von einem Mac OS ROM, in dem sich der Macintosh-Baukasten befindet, wobei das verwendete ROM-Abbild die Kompatibilität zu einer bestimmten Mac-OS-Version festlegt. Bei älteren Macintosh-Computern (später als “Old World” bezeichnet) war das ROM in seiner Gesamtheit noch fest in einem ROM-Chip auf der Hauptplatine des Computers untergebracht. Dieses kann auf der originalen Hardware ausgelesen und in eine Datei gespeichert werden, die ShapeShifter, Basilisk II und SheepShaver als ROM-Datei verwenden können. Bei neueren Macs (von Apple “New World” bezeichnet) wurde eine Trennung zwischen Boot-ROM (“Low-Level” ROM) und “Mac OS ROM” (“Higher Level ROM”) eingeführt. Diese ROM-Dateien werden von SheepShaver benötigt, um ein damit unterstütztes Mac OS starten zu können. Das Mac-OS-ROM (“Higher Level ROM”) ist ab Mac OS 8.5 für “New World”-Macs bereits Bestandteil des Betriebssystems. Das noch benötigte Boot-ROM (“Low-Level ROM”) könnte zwar von einem existierenden Power Mac ausgelesen werden, jedoch bietet Apple auch offizielle ROM-Updates an, aus denen das jeweilige ROM als Abbild ebenfalls entnommen werden kann.

## Technik

SheepShaver emuliert generische PowerPC-Hardware; um zu Mac OS kompatibel zu sein, werden die originalen Macintosh-ROMs benötigt. Damit bietet SheepShaver folgende Funktionen:
* kompatibel mit den Gastsystemen Mac OS 7.5.2 bis 9.0.4 (je nach verwendetem Mac OS ROM)
* PowerPC-G4-Emulation, mit JIT translation auf IA-32 (32-Bit-x86, i386), x64 (64-Bit-x64, auch x86-64 oder amd64) und MIPS
* native Ausführung auf PowerPC-G4-Hardware (Virtuelle Maschine)
* Kopieren und Einfügen zwischen Gast- und Wirtsystem
* Dateiaustausch über das Unix-Symbol auf dem Schreibtisch im Gastsystem
* Ändern der Auflösung sowie Anpassung des Farbraums an das Wirtsystem zur Laufzeit
* QuickDraw-2D-Videobeschleunigung für die Funktionen BitBlt und FillRect
* Audio-Ausgabe in Stereo mit CD-Qualität
* Netzwerk: Internet- und LAN-Verbindung über Ethernet und PPP mit allen Mac-OS-Programmen, die Open Transport unterstützen
Durch die JIT-Emulation erreicht SheepShaver auf Nicht-PowerPC-Systemen eine annehmbare Geschwindigkeit von in etwa einem Achtel des Wirtssystems. Verglichen mit einem Power Mac G4 mit 400 MHz läuft Mac OS auf einem 32-Bit-x86-System mit 3,2 GHz sogar etwas schneller.

## Distribution

Die ursprünglichen Entwickler, Christian Bauer und Marc Hellwig, stellen auf ihrer Homepage nur sehr alte Versionen zur Verfügung. Auch auf der Homepage von Gwenolé Beauchesne, die inzwischen nicht mehr erreichbar ist, ist die letzte Version aus dem Jahr 2008.
Auf E-Maculation gibt es eine aktive Entwicklergemeinde, die aktuelle Builds für verschiedene Betriebssysteme bereitstellt. Mit Stand 2014 wird sogar OS X 10.9 als Wirtsystem unterstützt.
Da SheepShaver unter der GPL steht, können viele Entwickler zum Fortbestand des Emulators beitragen. Derzeit wird Basilisk II und SheepShaver (die Teile des Quelltextes gemeinsam verwenden) auf GitHub bereitgestellt.
Neben den Builds für Linux (PowerPC sowie x86, 32-Bit und 64-Bit), Mac OS X (PowerPC und Intel, 32-Bit) und Windows (32-Bit) gibt es auch Binaries für Darwin, FreeBSD, Mac OS X (64-Bit, Intel), NetBSD und Windows (64-Bit).