Warum läuft mein Mac OS X 10.6-Kernel im 32-Bit-Modus?

10751
Chopper3

Ich habe ein MacBook Pro (5,1) mit 4 GB Arbeitsspeicher, auf dem 10A432 ausgeführt wird - aber es läuft der 32-Bit-Kernel.

Irgendwelche Ideen, warum es nicht im 64-Bit-Modus läuft und wie kann ich es dazu bringen?

9
Ich verstand, dass der eigentliche Zweck von 10.6 darin bestand, die Kernkomponente umzuschreiben, um die Verwendung von 64 Bit zu maximieren. Damit sagen Sie also, es wird meistens auf 32 Bit optimierter Code laufen? ... OscarRyz vor 11 Jahren 0
Keine Ahnung, der meiste Code ist eindeutig 64 Bit, aber der Kernel scheint es für mich sowieso nicht zu sein Chopper3 vor 11 Jahren 0

6 Antworten auf die Frage

11
Lake

In Jon Siracusas Review of Snow Leopard diskutiert er den 64-Bit-Übergang .

Tiger Leopard Schneeleopard

Die kurze Version lautet: Da es keinen "Mixed-Mode" gibt, erfordert ein 64-Bit-Kernel 64-Bit-Kernel-Erweiterungen und -Treiber .

Da diese noch nicht allgemein verfügbar sind, hat sich Apple für 32-Bit entschieden, um zu vermeiden, dass viele Dinge beschädigt werden.

Anweisungen aus dem Artikel:

Booten Sie bei allen K64-fähigen Macs, während Sie gleichzeitig die Tasten "6" und "4" gedrückt halten, um den 64-Bit-Kernel auszuwählen. Für eine dauerhaftere Lösung verwenden Sie den Befehl nvram, um arch=x86_64Ihre boot-argsZeichenfolge hinzuzufügen, oder bearbeiten Sie die Datei /Library/Preferences/SystemConfiguration/com.apple.Boot.plistund fügen Sie sie arch=x86_64zur Zeichenfolge "Kernel Flags" hinzu:

... <key>Kernel</key> <string>mach_kernel</string> <key>Kernel Flags</key> <string>arch=x86_64</string> ... 

Um wieder zum 32-Bit-Kernel zu wechseln, halten Sie die Tasten "3" und "2" während des Startvorgangs gedrückt, oder verwenden Sie eine der oben genannten Techniken und ersetzen Sie "x86_64" durch "i386".

Vielen Dank an Gareth für die Bearbeitung. (Wiederhergestellte Bildlinks zu imgur von arstechnica und zitierte relevante Anweisungen aus dem Artikel). Lake vor 8 Jahren 0
7
Chealion

Nach dem, was MacRumors durchgesickert ist (da die offiziellen Dokumente NDA sind) ( Quelle ), unterstützen nur die folgenden Computer den 64-Bit-Kernel:

  • Anfang 2008 Mac Pro (MacPro 3,1)
  • Anfang 2008 Xserve (Xserve 2,1)
  • MacBook Pros (15 "/ 17") (MacBookPro 4,1)
  • 2008 iMacs (iMac 8,1)
  • Unibody MacBook Pros (MacBookPro 5.1 und 5.2)
  • Anfang 2009 Mac Pro (MacPro 4,1)
  • 2009 iMacs (iMac 9,1)
  • Anfang 2009 Xserve (Xserve 3,1).

Nur die XServes verwenden standardmäßig den 64-Bit-Kernel.

Wenn Sie den Computer starten, die halten 6und 4Schlüssel werden Sie die 64-Bit - Kernel starten, oder nach einer anderen Quelle zu brechen ihre NDA können Sie bearbeiten das /Library/Preferences/SystemConfiguration/com.apple.Boot.plistHinzufügen eines Kernel - Flag oder tun es im NVRAM.

Das habe ich auch gesehen, deshalb habe ich meinen Modellcode eingefügt. Chopper3 vor 11 Jahren 0
Beginnend mit [6] [4] wird der Job erledigt, aber was ist der Vorteil, wenn der Kernel auf 64 Bit läuft? ... OscarRyz vor 11 Jahren 0
@Oscar Reyes: Sie können dann 64-Bit-Treiber verwenden und Prozesse können auf mehr als 4 GB Arbeitsspeicher zugreifen. Also jetzt? Keine, es sei denn, Sie führen eine serverseitige Anwendung aus, die mehr als 4 GB Arbeitsspeicher verwenden kann - daher die 64-Bit-Standardeinstellung für Xserves. Chealion vor 11 Jahren 0
6
Lara Dougan

Im Gegensatz zu den meisten anderen Betriebssystemen bietet die Verwendung eines 64-Bit-Kernels in Snow Leopard keinen großen Vorteil. In Windows und Linux benötigen Sie einen 64-Bit-Kernel, um 64-Bit-Anwendungen auszuführen. Unter OS X können Sie 64-Bit-Anwendungen mit dem 32-Bit-Kernel ausführen.

Die meisten Leute scheinen besorgt zu sein, dass die Ausführung des 32-Bit-Kernels unter OS X die Leistung oder die Fähigkeiten ihrer Maschinen einschränkt. In der Praxis hat dies jedoch keine wesentlichen Auswirkungen auf das System. Der 32-Bit-Kernel unterstützt die Ausführung von 64-Bit-Anwendungen, und diese Apps verfügen über einen virtuellen 64-Bit-Adressraum, der vom Kernel einem 36-Bit-PAE-Adressraum zugeordnet wird. Daher verhalten sie sich genauso wie auf einem 64-Bit-Kernel. Bit-Kernel, nur mit eingeschränkter Speicherauslastung und E / A-Speicherzuordnung für den nutzbaren Bereich. Die Art und Weise, wie Apple diesen Adressraum im 32-Bit-Kernel handhabt, führt zu einer Beschränkung von 32 GB für den physischen Speicher, wodurch die Grenze von 4 GB für 32-Bit mit PAE durchbrochen wird. Wenn man einen 64-Bit-Kernel mit 32 GB Arbeitsspeicher oder weniger verwendet, gibt es keinen großen Nutzen, wenn es einen messbaren Vorteil gibt. Wenn du möchtest,6und 4Schlüssel beim Start. Ich bezweifle, dass Sie einen signifikanten Unterschied in der Leistung sehen würden.

Das andere Problem ist die Kompatibilität mit Gerätetreibern, Kernel-Erweiterungen und der Firmware des Geräts. Für Gerätetreiber und Kernel-Erweiterungen müssen sie auf die Bit-Ness passen, neu kompiliert oder neu geschrieben werden (insbesondere wenn sie über eine Assembly verfügen, deren Teile in diesen Codetypen üblich sind). Ursprünglich war Apples EFI nur in 32-Bit erhältlich, und in letzter Zeit haben einige Modelle eine 64-Bit-Firmware. Damit das Betriebssystem mit der Firmware kommunizieren kann, müssen die Bitiness des Kernels und der EFI übereinstimmen. Zu den Themen, die mit EFI sprechen, gehören beispielsweise die Auswahl einer Startdiskette oder einige Steuerelemente für die Energieverwaltung (z. B. wenn Sie mehr als eine OS X-Installation haben und nach dem Entladen des Akkus aus dem Ruhezustand aufstehen müssen).

Wäre also ein 64-Bit-Kernel von Vorteil? In Bezug auf die Leistung ist dies in der Praxis nicht wirklich der Fall, und ich kann die Weisheit erkennen, dass Apple 32-Bit-Kernel für die meisten Maschinen verwendet, auf denen Snow Leopard ausgeführt wird, um die Kompatibilität zu verbessern.

5
Justin Love

Jasons leider verschleierter Link hat eine sehr nützliche Information versteckt:

ioreg -l -p IODeviceTree | grep firmware-abi 

Die 64-Bit-EFI-Macs werden berichtet

| | "firmware-abi" = <"EFI64"> 
1
Benjamin Schollnick

Bis zur Veröffentlichung von Snow Leopard wissen wir nicht, welche Systeme den 64/32-Bit-Modus unterstützen werden. Aber alles deutet darauf hin, dass Snow Leopard mit der Kernel-Unterstützung transparent ist ...

Aber leider tut es mir leid, ein "Wermutstropfen" zu sein. Wenn Sie ein registriertes Appleseed-Mitglied sind, wird im Appleseed-Forum erläutert, wie Sie den Kernel in den 64-Bit-Modus zwingen können. Ansonsten, wenn Sie Snow Leopard anderswo erhalten haben, machen Sie sich keine Sorgen.

Die Veröffentlichung von Snow Leopard ist gleich um die Ecke ...

0
random

Es ist okay, hier ist warum:

  • 32-Bit-SL WILL 64-Bit-Apps ausführen; SL ist 64-Bit-kompatibel, unabhängig davon, welche Kernel-Version Sie starten

  • Selbst wenn SL mit dem 32-Bit-Kernel gebootet wird, können 64-Bit-Apps weiterhin ausgeführt werden und adressieren mehr als 4 GB RAM

  • Der Grund, aus dem Sie den 64-Bit-Kernel benötigen, ist, wenn der Kernel mehr als 32 GB RAM (also der Xserve-Standard) adressieren musste, oder wenn Sie nur einen 64-Bit-Kext haben (Entwickler).

  • 64-Bit-Kernel machen Ihren Computer nicht magisch schneller. Sofern Sie nicht mehr als 32 GB RAM benötigen (IOW ohnehin nur Xserves), benötigen Sie ihn auch nicht aus Gründen der Adressierung

  • Indem Sie 32-Bit-Standard für Consumer-Systeme festlegen und Profis und Entwicklern die 64-Bit-Kernel-Option geben, behält Apple maximale Kompatibilität und maximale Flexibilität

  • 64 Bit ist hauptsächlich eine Entwickleroption. Sie können damit ihre neuen 64-Bit-Treiber / -Kexte testen, um sicherzustellen, dass sie mit dem 64-Bit-Kernel funktionieren

Paraphrased und zitiert aus Snow Leopard lädt standardmäßig den 32-Bit-Kernel