Das 64 Bit Mysterium

Das 64 Bit Mysterium

Grundsätzlich sind 64 Bit alles andere als eine neue Entwicklung. Schon lange vor 2002 – seit damals gibt es x86-Prozessoren mit 64 Bit Befehlssatz aus dem Hause AMD – existierten solche Prozessoren. Allerdings waren sie dort zu finden, wo auch damals schon mehr Speicher als 4 GB benötigt wurden, das heißt in Großrechnern und teuren Workstations. Natürlich war das weder für Heimbenutzer noch für die Hersteller populärer Betriebssysteme wirklich interessant, zumal diese Systeme nicht mit der »normalen« Intel-Architektur kompatibel waren. Für Intel waren 64 Bit lange Jahre gar kein Thema, aber als AMD einen solchen Prozessor auf den Markt brachte, zog Intel einige Monate darauf (gezwungenermaßen) nach.

Die verdoppelte Bitanzahl klang wie ein großer Schritt nach vorne, aber es fehlte lange an den passenden Betriebssystemen, um die neuen Fähigkeiten der Prozessoren auszuschöpfen. Als erstes waren diverse Linux- und BSD-Varianten am Start, doch auf die kommerziellen Systeme musste man noch länger warten. Windows XP x64 (2005) war das erste Betriebssystem von Microsoft, welches die neuen Features verwenden konnte. Allerdings war diese Version vornehmlich für Entwickler gedacht – das erste für Endkunden vorgesehene 64 Bit System aus Redmond war Windows Vista. Dieses erschien Anfang 2007 und damit ganze fünf Jahre nach den ersten Prozessoren mit 64 Bit.

Bei Mac OS X ist schon seit Version 10.4 (2005) die Unterstützung für 64 Bit Prozessoren mit dabei. Im Gegensatz zu Linux, BSD und Windows, wo man (damals wie heute) die Wahl zwischen 32 und 64 Bit bot, ging Apple einen anderen Weg. Schrittweise wurden immer mehr Komponenten auf 64 Bit umgestellt und der Anwender merkte davon eigentlich kaum etwas. Darauf, wie das im Detail passierte, gehe ich später noch genauer ein. Bereits auf der PowerPC-Plattform waren 32 und 64 Bit vertreten, weswegen hier viel Wissen und Technologien auf die Intel-Hardwarebasis mitgenommen werden konnten.

Viel wichtiger ist es jetzt einmal, die sich meinen Lesern aufdrängende Fragen zu beantworten: »Was bringt mir das? Und was ist der Haken an der Sache?« Im großen und ganzen gibt es zwei wesentliche Vorteile von 64 Bit. Zum einen lassen sich damit ohne spezielle Tricks mehr als 4 GB Speicher adressieren. Zum anderen bieten entsprechende Prozessoren einen erweiterten Befehlssatz mit mehr Registern an, die gewisse Rechenoperationen immens beschleunigen. Ein Nachteil dabei ist allerdings der erhöhte Speicherverbrauch. Einige Variablentypen belegen bei 64 Bit den mehr Speicher und auch Pointer (Zeiger auf Speicheradressen) sind plötzlich doppelt so lang. Nachdem Speicher immer günstiger wird, ist das nicht das Hauptproblem.

Wesentlich kritischer ist es, wenn es darum geht, 32 und 64 Bit zu mischen. 32 Bit Programme (beispielsweise Browser) brauchen 32 Bit AddOns – 64 Bit Programme benötigen solche mit 64 Bit. Analog dazu verhält es sich mit dem Kernel und Gerätetreibern bzw. KEXTs (Kernel Extensions). Warum ist das so? Treiber und AddOns sind spezielle Programme, die einem »Hauptprogramm« zur Hand gehen. Dabei müssen sie natürlich auch auf die Daten des Hauptprogramms, also dessen Speicherbereich, zugreifen können. Da 64 Bit Programme keine 32 Bit Adressen verstehen (und umgekehrt), ist dies nicht möglich.

Wie schon angesprochen, hat Apple es recht geschickt gemacht, dem Anwender früh die Vorteile von 64 Bit zu ermöglichen, ohne einen Bruch in der Kompatibilität zu älteren Software-Stücken zu riskieren. Ich stelle mal die folgende Grafik (die ich von AppleInsider adaptiert und übernommen habe) zur Schau, die ich im Detail noch erklären werde:

Sanfte Einführung von 64 Bit in Mac OS X

Bei Tiger war der Großteil der Komponenten noch in 32 Bit mitgeliefert. Lediglich das UNIX-System und direkt darauf aufsetzende Programme (Konsolenprogramme, Systemdienste) konnten die Vorteile der 64 Bit Architektur ausnutzen. Der große Vorteil hier ist, dass der Kernel weiterhin alte Extensions und Treiber verwenden kann. Trotzdem kann das System dank 64 Bit Speicherverwaltung schon auf mehr als 4 GB Speicher zugreifen. Gerätetreiber und Kernel müssen sich zwar mit den ersten vier Gigabyte begnügen, aber das bringt in der Praxis keinen wirklichen Nachteil. Mangels passender Frameworks war damals an Programme mit grafischer Oberfläche, die 64 Bit fähig waren, noch nicht zu denken und damit waren Anwendungsprogramme auch auf maximal 4 GB Adressraum pro Prozess beschränkt.

Leopard ging hier einen Schritt weiter und lieferte Cocoa, die Basis vieler moderner Mac-Anwendungen, in einer Version für 64 Bit mit. Damit war es möglich, auch 64 Bit Programme mit grafischer Benutzeroberfläche zu verwenden. Allerdings machen davon die mitgelieferten Applikationen wenig Gebrauch – lediglich Chess und Xcode liegen auch in 64 Bit vor. Wie schon vom Intel-Umstieg bekannt, kommen auch hier wieder Universal Binaries zum Einsatz. In den Dateiinformationen der entsprechenden Anwendung lässt sich ein Haken setzen (siehe auch Titelbild des Artikels), der die Ausführung der 32 Bit Variante forciert. Was beim Schachspiel nutzlos erscheint, ist bei anderen Programmen durchaus sinnvoll – darauf komme ich später noch zu sprechen.

Mit Snow Leopard wurde die Umstellung auf 64 Bit so gut wie abgeschlossen. Sämtliche Programme im Lieferumfang des Betriebssystems sind jetzt dafür ausgelegt. Selbstverständlich lassen sich aber weiterhin auch alte 32 Bit Programme ausführen. Mit der Ausnahme von Xserve-Systemen wird auch weiterhin standardmäßig der Kernel im 32 Bit Modus gestartet. Warum das so ist? Wie schon erwähnt, könnte man beim 64 Bit Kernel keinerlei alte KEXTs und Treiber mehr laden. Da die Vorteile des neuen Kernels im Desktopbereich sowieso noch gering sind, hat sich Apple aus Gründen der Kompatibilität so entschieden. Vermutlich wird das aber irgendwann mit einem Update oder spätestens mit Mac OS X 10.7 noch geändert.

Wer trotzdem einmal den 64 Bit Kernel ausprobieren möchte, kann das – sofern von der Hardware unterstützt – recht einfach tun. Dazu müssen während dem Hochfahren von Snow Leopard die Tasten »6« und »4« auf der Tastatur gehalten werden. Analog dazu lässt sich durch Halten der Tasten »3« und »2« der 32 Bit Kernel erzwingen. Je nach dem, welche Kernel Extensions und Gerätetreiber man installiert hat, kann es passieren, dass ein paar Dinge dann nicht funktionieren. Immerhin einen Vorteil hat die Sache: Während der 32 Bit Kernel lediglich 32 GB Speicher verwalten kann, sind es beim 64 Bit Kernel schon 16 TB. Obwohl es zum aktuellen Zeitpunkt keine Apple-Hardware gibt, die so viel Speicher verwenden kann, ist das nur noch eine Frage der Zeit, bis man davon profitieren kann.

Probleme sind auch zu erwarten, wenn man vor hat, für seinen Safari ein PlugIn (beispielsweise Safari AdBlock oder Glims) zu installieren. Die meisten Vertreter hiervon gibt es noch nicht in einer 64 Bit Ausführung. Also bleiben vorerst nur zwei Möglichkeiten. Entweder man verzichtet auf die PlugIns, bis es entsprechend adaptierte Versionen gibt. Oder man setzt bei den Dateiinformationen von Safari – wie vorher am Beispiel von Chess schon gezeigt – den Haken, sodass das Programm im 32 Bit Modus gestartet wird. Damit können zwar vom Browser »nur noch« 4 GB Speicher adressiert werden, aber ich denke das ist für die Übergangszeit verschmerzbar.

Trotz der Probleme, die durch 64 Bit auf uns zukommen (oder schon vorbei gezogen sind, je nach dem), ist das eindeutig die Zukunft. Speicherbedarf und -verfügbarkeit werden in nächster Zeit weiter rapide steigen und damit verschwinden 32 Bit immer mehr aus dem Bereich des sinnvoll Nutzbaren. Im Gegensatz zu Windows und Linux, wo es beim Umstieg eigentlich nur ein Entweder-Oder gibt, hat Apple diese Umstellung sehr vorbildlich gemeistert. Vorteile waren früh nutzbar und Nachteile, wie beispielsweise die Treiberproblematik, wurden lange geschickt umgangen. Anders als beim brandneuen Windows 7 gibt es in der Apple-Welt weder Anreiz noch Möglichkeit, weiterhin strikt auf 32 Bit zu setzen.

Abschließend muss ich mich bei meinen Lesern noch entschuldigen bzw. rechtfertigen: Im Text stecken die Wörter »32 Bit« und »64 Bit« leider sehr oft drinnen. Aus Gründen von Verständnis und Lesbarkeit habe ich allerdings trotzdem darauf verzichtet, Synonyme wie AMD64, x64, x86, x86_64, x32 und EM64T zu verwenden.

  1. Super Beitrag. Hat spaß gemacht den zu lesen!

  2. SonicHedgehog

    Wieder ein super Artikel. Schön gestaltet, daher angenehm zum Lesen. Danke 🙂

  3. Danke für die ausführlichen Erklärung! Sehr interessant!

  4. Pingback: Mac OS X – Snow Leopard | Technikpraktikant

  5. gelu2487

    Endlich einmal sauber definierte Anwendungen. Fortsetzung für OSX11 wärmewünschenswert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.