Linux für Apple-Computer gibt es schon lange, es fristet allerdings eher ein Schattendasein. Emulatorprogramme machen es möglich, das das beliebte Mac OS X unter Linux zu betreiben. Damit kommt zusammen, was zusammen gehört.
Die einfachste Variante, Mac-Programme unter Linux zu betreiben, stellt die freie Software Mac-on-Linux [1] dar. Da sie keine Hardware emuliert, also auch keinen Prozessor, setzt sie allerdings einen Apple-Computer voraus. Mac-on-Linux funktioniert zwar prinzipiell auch mit anderen PowerPC-Architekturen [2], zum Beispiel [3]. Auf diesen das Apple-Betriebsystem MacOS zu installieren, verstieße allerdings gegen dessen Nutzungsbedinungen.
Linux für Apple
Bleiben also nur Apple-Computer wie iMac, iBook, Power Mac oder oder Power Book. Daher muss sich auch das verwendete Linux für PowerPC [4] eignen. Entsprechende Distributionen gibt es zur Zeit von Fedora Core 3 (noch im Test, [5]), Gentoo [6], Debian [7], Ubuntu [8], und Yellow Dog (siehe Artikel auf S. 67).
Mac-on-Linux emuliert keine Hardware, sondern reicht Befehle an den Prozessor durch. Außerdem enthält es, ähnlich wie VMware, eigene Gerätetreiber, die für den Einsatzzweck optimiert sind. Deshalb arbeitet diese Lösung um einiges schneller als eine reine Emulation.
Mac OS als Linux-Programm
Mac-on-Linux bootet ein normales Betriebssystem als Linux-Programm. Es erfordert also ein auf der Festplatte installiertes Apple-System, in unserem Beispiel das aktuelle Mac OS X. Alternativ beherrscht Mac-on-Linux auch ältere Varianten wie System 9, das heute durchaus auch noch eingesetzt wird.
Gentoo-User downloaden und kompilieren Mac-on-Linux wie bei ihrer Distribution üblich mit emerge mol. Yellow Dog liefert das Programm schon mit.
Wir verwendeten die Ubuntu-Distribution für PowerPC, da auf dem iBook G4/800 mit der Grafikkarte Radeon Mobility 9200 weder Gentoo noch das kommerzielle Yellow Dog eine funktionierende grafische Oberfläche zustande brachten.
Die Installation gestaltet sich mit Ubuntu etwas anders als bei RPM-basierten Systemen, denn es benutzt das unter Debian übliche Paketwerkzeug apt-get, das die nötigen Dateien aus dem Internet herunterlädt.
Mac-on-Linux verlangt für das laufende PPC-Linux einige Kernel-Module, die Sie selbst kompilieren müssen. Dazu benötigen Sie einige Tools, die nicht zwangsläufig schon installiert sind. Folgender Befehl lädt die nötigen Pakete herunter und installiert sie:
sudo apt-get install build-? essential linux-headers-2.6-? powerpc
Werden Sie dabei nach einem Passwort gefragt, geben Sie dasjenige ihres Benutzer-Accounts ein, denn normalerweise gibt es bei Ubuntu keinen Administrator root (siehe [8]). Stattdessen ruft man Befehle, die root-Rechte verlangen, mit sudo auf.
Die Mac-on-Linux-Dateien fehlen leider im Standard-Repository von Ubuntu. Deshalb müssen Sie das Multiverse-Verzeichnis hinzufügen, das auch Pakete enthält, die nicht zum Standardumfang Ubuntus gehören. Ergänzen Sie dazu die Datei /etc/apt/sources.list um die beiden Zeilen aus Kasten 1.
Kasten 1: Ergänzungen von /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu warty multiverse deb-src http://archive.ubuntu.com/ubuntu warty multiverse
Um das lokale Verzeichnis verfügbarer Software zu aktualisieren, führen Sie sudo apt-get update aus. Dann installieren Sie den Quellcode der Kernel-Module für Mac-on-Linux:
sudo apt-get install mol-? modules-source
Mit einem Editor öffnen Sie eine Header-Datei dieses Pakets, um einen Fehler zu beheben, der die erfolgreiche Kompilierung verhindert. Wollen Sie statt Vi einen anderen Editor verwenden, setzen Sie dessen Befehlsnamen an seine Stelle.
sudo vi /usr/src/linux-? headers-2.6.8.1-4-powerpc/? include/asm/setup.h
Löschen Sie die Zeile #include <asm-m68k/setup.h> und speichern Sie die Datei wieder. Dann wechseln Sie in das Verzeichnis, in dem sich unter Linux üblicherweise die Linux-Kernel-Quellen befinden und entpacken das Archiv, das apt-get dort abgelegt hat.
cd /usr/src sudo tar xzvf mol-modules.tar.gz
Damit die Version von laufendem Kernel und Modulen übereinstimmen, müssen Sie noch einige Umgebungsvariablen setzen:
export KVERS="$(uname -r)" export KSRC="/usr/src/linux-? headers-$(uname -r)" export KDREV="ubuntu0"
Wechseln Sie in das Mac-on-Linux-Unterverzeichnis und rufen Sie dort das Übersetzungs-Skript auf:
cd modules/mol sudo debian/rules build
Nach kurzer Wartezeit sollte der Compile beendet sein (siehe Abbildung 1), und Sie können aus den enstandenen Dateien ein Debian-Paket machen:
sudo debian/rules binary-? mol-modules
Das Endprodukt finden Sie im Verzeichnis /usr/src. Wechseln Sie dorthin und installieren Sie es in ihrem Ubuntu-System:
sudo dpkg -i mol-modules-? 2.6.8.1-3-powerpc_0.9.70+? ubuntu0_powerpc.deb
Nun sind endlich die Voraussetzungen erfüllt, um die restlichen Pakete von Mac-on-Linux recht einfach zu komplettieren:
sudo apt-get install mol mol-? drivers-macosx
Der Paketmanager löst Abhängigkeiten selbst auf und installiert zusätzlich zu mol und mol-drivers-macosx noch mol-drivers-linux, das nur derjenige braucht, der in Mac-on-Linux wieder ein PPC-Linux laufen lassen will.
Starten Sie das Programm mit der Option --loadonly, zeigt es an, ob das Kernel-Modul geladen wird (Abbildung 2). Die häufigste Fehlerquelle ist, dass Kernelversion und Modulversion nicht zusammenpassen. Der Parameter -a erlaubt zwar unterschiedliche Versionsnummern, aber das dürfte in den wenisten Fällen funktionieren.

–loadonly, protokolliert es das Laden der nötigen Module.” width=”300″ height=”55″ />
Abbildung 2: Startet man Mac-on-Linux mit der Option--loadonly, protokolliert es das Laden der nötigen Module. Ist das Modul geladen, geht es an die Konfiguration der Grafikkarte (Video configuration). Der Befehl sudo molvconfig startet das enstprechende Programm, das entweder selbst die richtigen Betriebsmodi ausprobiert oder sich manuell einrichten lässt. Im Test funktionierten beide Varianten mit den Default-Einstellungen.
Bei der Tastenbelegung hilft wieder startmol selbst. Mit dem Parameter --keyconfig startet es ein interaktives Programm. Es zeigt den Namen einer Taste an (zum Beispiel Return oder Apple-Key) und fordert den Benutzer zum Drücken derselben auf.
Nach Abschluss der Konfiguration starten Sie Mac OS X im Fenster mit sudo startmol -X. Es findet selbst die Installation auf der Festplatte und “bootet” das System. Im Terminalfenster gibt Mac-on-Linux Meldungen aus, die den Start dokumentieren. Dauerhaft speichert es sie in einer Datei in /var/log. Schauen Sie also dort nach, sollte etwas nicht funktionieren.
Netzwerktunnel
Die Einrichtung des Netzwerks gestaltet sich etwas schwieriger, aber auch hier hilft die smarte Software nach Kräften. Schalten Sie in der Datei /etc/mol/molrc.net das Tunnel-Interface ein, lädt es automatisch das richtige Kernel-Modul und gibt ihm eine IP-Adresse. Dazu entfernen Sie das Kommentarzeichen # in der Zeile netdev: tun0 -tun. Unter den Startmeldungen sollten Sie dann eine Zeile wie Ethernet Interface 'tun-<tun0>' @ 00:00:0D:EA:DB:EE finden.
In Mac OS X taucht eine neue Festplatte auf, die Sie mit einem Doppelklick öffnen. Dort finden Sie spezielle Treiber, die Mac OS X nur im “emulierten” Modus benutzt, um auf das Netz zuzugreifen. Diese installieren Sie, indem Sie auf das Pkg-Paket klicken und den Anweisungen folgen.
Vermutlich wollen Sie mit Mac-on-Linux nicht nur auf den echten Rechner zugreifen, sondern auch aufs Internet. Damit dieser den Datenverkehr weiterleitet, passen Sie das Skript /etc/mol/tunconfig an, das von startmol aufgerufen wird. Die mitgelieferte Variante von tunconfig startet einen DHCP-Server und konfiguriert die Umsetzung der IP-Adressen mithilfe des Programms iptables.
Wir haben im Test ein alternatives tunconfig mit fest eingestellten IP-Adresse verwendet, siehe Kasten 2. In Mac OS X geben Sie dazu dem Netzwerk-Interface en3 die Adresse 192.168.40.2 und tragen als Router 192.168.40.1 ein.
Kasten 2: /etc/mol/tunconfig
#!/bin/bash /sbin/ifconfig tun0 192.168.40.1 /sbin/iptables -D POSTROUTING -t nat -s 192.168.40.0/24 -d ! 192.168.40.0/24 -j MASQUERADE /sbin/iptables -t nat -s 192.168.40.0/24 -d ! 192.168.40.0/24 -A POSTROUTING -j MASQUERADE /sbin/iptables -t filter -P FORWARD ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward
Nach dieser, etwas aufwendigeren Konfiguration steht in Mac-on-Linux der Internetzugang zur Verfügung (Abbildung 3).
Beschleunigung
Um Mac-on-Linux unter X im Vollbildmodus zu starten, ändern Sie in der Datei /etc/mol/molrc.video in der Zeile enable_xvideo: ... den Wert yes auf no. Damit läuft Mac OS X deutlich schneller, denn viele umständliche Grafikoperationen fallen weg. Laut Yellow-Dog-Dokumentation beträgt die Geschwindigkeit “fast 100%” eines direkt auf der Hardware laufenden Systems. Dasselbe Ergebnis erhalten Sie, wenn Sie Mac-on-Linux gleich auf einer Textkonsole (also kein Terminalfenster in X) starten. Mehr Details dazu finden Sie unter [10].
Ein Schwachpunkt soll nicht unerwähnt bleiben: Es ist nicht möglich, beim Start von Mac-on-Linux eingelegte CD-ROMS während des Betriebs zu wechseln. Hier muss der Anwender auf zukünftige Versionen hoffen – oder selbst zum Programmierwerkzeug greifen.
Mac OS ohne Apple-Hardware
Wer keinen Apple-Computer besitzt, aber dennoch einen Blick auf das bunte Betriebssystem werfen möchte, muss andere Wege finden. Er braucht einen echten Emulator, der Mac OS X die Existenz von Apple-Hardware vorspiegelt. Außerdem benötigt der experimentierfreudige Linux-User einen Satz Installations-CDs des Mac OS X.
PearPC implementiert einen PowerPC-Prozessor und einen Satz an nötigen Peripheriegeräten. Die Installation gestaltet sich denkbar einfach:
tar xfj pearpc-0.3.1.tar.bz2 cd pearpc-0.3.1 ./configure --enable-ui=sdl ? --enable-cpu=jitc_x86 make su -c 'make install'
In diesem Fall benutzt PearPC die Bibliothek SDL zum Zeichnen der grafischen Oberfläche. Alternativ verwenden Sie --enable-ui=x11.
Nach der hoffentlich erfolgreichen Übersetzung legen eine leere Datei an, die PearPC als virtuelle Festplatte verwendet. Folgender Befehl legt eine 3 GByte große Datei mit dem Namen macosx.img an:
dd if=/dev/zero of=macosx.? img bs=516096 seek=6241 count=0
Anders als in der PearPC-Dokumentation beschrieben, können Sie die virtuelle Festplatte auch ohne das Darwin-OS partitionieren.
Um die Übersicht über die Dateien zu behalten, legen Sie am besten ein neues Arbeitsverzeichnis für den Emulator an, zum Beispiel ppc. Kopieren Sie dorthin die mitgelieferte Beispielkonfigurationsdatei:
cp pearpc-0.3.1/ppccfg.? example ppc/ppcfg
Um die Grafikkarte zu imitieren, braucht PearPC ferner die Datei video.x, die Sie ebenfalls in das Verzeichnis kopieren. Verschieben Sie noch das vorher angelegte Festplattenimage macosx.img dorthin, haben Sie alle Dateien beisammen.
Die Konfigurationsdatei ppccfg editieren Sie mit einem Texteditor. Für den Anfang genügen die meisten der vorhandenen Einträge. Lediglich der Name des Festplattenimages ist anzupassen. Ändern Sie dazu die entsprechende Zeile der Datei folgendermaßen:
pci_ide0_master_image =? "macosx.img"
Der Eintrag prom_bootmethod legt fest, wie PearPC bootet. Der voreingestellte Wert auto verwendet die erste bootbare Partition. Ändern Sie diesen auf select, bleibt der Emulator stehen und wartet auf Ihre Auswahl (Abbildung 4).
Legen Sie die erste Installations-CD von Mac OS X ein, um mit der Installation zu beginnen. Befinden Sie sich noch nicht im Verzeichnis ppc, wechseln Sie dorthin und starten Sie den Emulator mit der Konfigurationsdatei als Parameter:
ppc ppccfg
Wählen Sie die CD zum Booten aus, erscheint prompt der Startbildschirm von Mac OS X (Abbildung 5). In den Vollbildmodus und zurück zu Fensterdarstellung wechseln Sie mit der Tastenkombination [Alt-Eingabe].

Abbildung 5: Die Installation von Mac OS X startet in PearPC, als ob es sich um einen echten Computer handelte.
Nach einer kurzen Weile erscheint schließlich das Installationsprogramm. Absolvieren Sie die nötigen Schritte, müssen Sie irgenwann das “Zielvolume” auswählen, doch leider steht keines zur Auswahl. Sie müssen erst noch die virtuelle Festplatten partitionieren. Das nötige Programm starten Sie mit Installer | Festplatten-Dienstprogramm.
Dort klicken Sie auf den Reiter Partitionieren und wählen anschließend unter Volume-Schema die Option 1 Partition aus. Klicken Sie auf Partitionieren und bestätigen Sie den folgenden Dialog. Das Programm partitioniert die virtuelle Disk und formatiert gleich die neue Partition. Beenden Sie das Programm, sollte die Partition im Installer erscheinen.
Beschwert sich der Installer über mangelnden Speicherplatz, wählen Sie einige Pakete ab: zum Beispiel die Sprachpakete und Zusätzliche Stimmen. Haben Sie die Pakete ausgewählt, kopiert der Installer sie auf die virtuelle Festplatte. Ist er damit fertig, beenden Sie PearPC und legen Sie die zweite Installations-CD ein. Beim Neustart wählen Sie die vorher angelegte Partition zum Booten aus. Der Installier kopiert noch einige weitere Dateien, dann ist die Installation abgeschlossen (Abbildung 6). Die abschließenden Fragen zu Benutzerregistierung können Sie auch überspringen.
Netzwerk für Profis
Um das Netzwerk in Mac OS X unter PearPC zu benutzen, passen Sie in der Konfigurationsdatei Sie den Eintrag für die Netzwerkkarte an:
pci_rtl8139_installed = 1
Beim Neustart beschwert sich der Emulator eventuell über das fehlende Netzwerktunnel-Interface /dev/net/tun. Laden Sie in diesem Fall das Kernel-Modul als Administrator mit modprobe tun.
In Mac OS X taucht die virtuelle Ethernet-Karte automatisch auf, wenn Sie unter den Systemeinstellungen die Netzwerkkonfiguration auswählen. Vergeben Sie manuell die Adresse 192.168.1.1, die PearPC in der Datei scripts/ifppc_up vorgesehen hat. Die Router-Adresse ist 192.168.1.80. Einen funktionierenden Nameserver finden Sie auf dem Linux-System in /etc/resolv.conf.
Wie Mac-on-Linux konfiguriert auch PearPC das virtuelle Netzwerk im Hintergrund weitgehend selbst und startet sogar die Umsetzung der Datenpakete (Network Address Translation, NAT). Dazu braucht es einige Dateien, die sich im Software-Verzeichnis finden. Kopieren Sie einfach das ganze Unterverzeichnis scripts an die richtige Stelle:
cp -R pearpc-0.3.1/scripts ppc
Da die Programme die Linux-Netzwerkeinstellungen verändern, brauchen Sie dafür root-Rechte. Sie müssen PearPC also entweder als Administrator starten oder den Programmen ifppc_up.setuid und ifppc_down.setuid so genannte SUID-Root-Rechte verpassen (chmod +s).
Per Default legt PearPC auf dem Linux-System ein Netzwerk-Interface mit dem Namen ppc und der Adresse 192.168.1.80 an, was Sie mit /sbin/ifconfig ppc überprüfen können.
Eine glückliche Allianz
Mac-on-Linux und PearPC beeindrucken durch Funktionsumfang, Bedienkomfort und Geschwindigkeit. Dass Mac-on-Linux am Ende den Konkurrenten weit hinter sich lässt, darf nicht verwundern: Es handelt sich nicht um einen Emulator im strengen Sinn, sondern ein Programm, das Mac OS X (und andere) unter Linux ausführt. Es ist sogar so schnell, dass mit einem modernen PC ernsthaftes Arbeiten möglich ist.
Ein kleines Manko stellt der Umgang mit CD-ROMs dar. Weder Mac-on-Linux noch PearPC lassen nach dem Start das Wechseln der Scheiben zu, was die Arbeit doch etwas erschwert.
Dass die Netzwerkkonfiguration sich etwas komplizierter gestaltet, ist den beiden Programmen kaum anzulasten. Es liegt eher an der Komplexität der nötigen Funktionen unter Linux. Dass es auch ohne Paketübersetzung (NAT) geht, zeigt allerdings der Verwandte QEMU, von dem in dieser Beziehung beide Projekte lernen können.
Glossar
-
PowerPC
-
Eine zu den Intel/AMD-Prozessoren alternative Prozessorfamilie. Neben den Apple-Computern nutzen auch verschiedene Server von IBM einen PowerPC. Der PowerPC G5 arbeitet wie die neueste Generation von Intel/AMD mit 64 Bit.
-
Repository
-
Häufiger Begriff für eine Sammlung von Software auf einem Server im Internet.
-
Darwin-OS
-
Die freie Version des Apple-Betriebssystems Mac OS X. Allerdings enthält es nur dessen textbasierten Unterbau. Die grafische Oberfläche und andere Kernkomponenten fehlen.
Infos
[1] Mac-on-Linux: http://www.maconlinux.org
[2] PowerPC-Prozessor: http://www.ibm.com/chips/products/powerpc
[3] Pegasos-Computer http://www.pegasosppc.com
[4] Linux-PPC-Homepage: http://www.penguinppc.org
[5] Fedora Core 3 PPC: http://fedoraproject.org/fedorappc/FC-3
[6] Gentoo PPC: http://www.gentoo.org/doc/en/handbook/handbook-ppc.xml
[7] Debian PPC: http://www.debian.org/ports/powerpc
[8] Ubuntu: http://www.ubuntulinux.org
[9] Die freie Distribution Ubuntu, LinuxUser 02/05, S.65
[10] Vollbildmodus in Mac-on-Linux: http://www.maconlinux.org/userguide/cvideo.html
[11] PearPC: http://pearpc.sourceforge.net








