私は10A432を実行している4GBのメモリを搭載したMacBookPro(5,1)を持っていますが、32ビットカーネルを実行しています。
64ビットモードで実行されない理由と、そのようにするにはどうすればよいですか?
JonSiracusaによるSnowLeopardのレビューで、彼は 64ビット遷移について説明しています 。
短いバージョンは次のとおりです。 「混合モード」がないため、64ビットカーネルには64ビットカーネル拡張とドライバーが必要です。
それらはまだ広く利用可能ではないので、Appleは、多くのものを壊さないように、デフォルトで32ビットを選択しました。
記事からの指示:
すべてのK64対応Macで、「6」キーと「4」キーを同時に押しながら起動して、64ビットカーネルを選択します。より永続的な解決策として、nvramコマンドを使用して
Arch=x86_64
をboot-args
文字列に追加するか、ファイル/Library/Preferences/SystemConfiguration/com.Apple.Boot.plist
を編集してArch=x86_64
をカーネルフラグ文字列に追加します。
...
<key>Kernel</key>
<string>mach_kernel</string>
<key>Kernel Flags</key>
<string>Arch=x86_64</string>
...
32ビットカーネルに戻すには、起動時に「3」キーと「2」キーを押し続けるか、上記のいずれかの方法を使用して、「x86_64」を「i386」に置き換えます。
他のほとんどのオペレーティングシステムとは異なり、SnowLeopardで64ビットカーネルを実行するメリットはあまりありません。 WindowsおよびLinuxでは、64ビットアプリケーションを実行するには64ビットカーネルが必要です。 OS Xでは、32ビットカーネルで64ビットアプリケーションを実行できます。
ほとんどの人は、OS Xで32ビットカーネルを実行すると、マシンのパフォーマンスや機能が制限されることを懸念しているようですが、実際には、これによる重大な影響はありません。 32ビットカーネルは64ビットアプリケーションの実行をサポートし、それらのアプリはカーネルによって36ビットPAEアドレス空間にマップされる仮想64ビットアドレス空間を持っているため、64ビットの場合と同じように動作します。ビットカーネル。メモリ使用量がより制限され、メモリマップされたI/Oが使用可能な範囲になります。 Appleが32ビットカーネルでこのアドレス空間を処理する方法は、物理メモリに32 GBの制限をもたらし、PAEで4GBの32ビットの制限を破ります。パフォーマンス面ではありません。 32 GB以下のメモリを搭載した64ビットカーネルを使用して測定可能なものがある場合は、多くの利点があります。必要に応じて、64ビットカーネルで強制起動するときに、いくつかのベンチマークを自分でテストできます。を保持することによって 6 そして 4 起動時のキー。パフォーマンスに大きな違いが見られるとは思えません。
もう1つの問題は、デバイスドライバー、カーネル拡張、およびデバイスのファームウェアとの互換性です。デバイスドライバーとカーネル拡張機能の場合、ビット数を一致させるか、再コンパイルするか、書き直す必要があります(特に、これらのタイプのコードで一般的な部分であるアセンブリがある場合)。 AppleのEFIは元々32ビットのみで提供されていましたが、最近では一部のモデルに64ビットのファームウェアが搭載されています。オペレーティングシステムがファームウェアと通信するには、カーネルとEFIのビット数が一致している必要があります。 EFIとの通信に関連するのは、起動ディスクやいくつかの電源管理コントロールの選択などです(たとえば、複数のOS Xがインストールされていて、バッテリーがなくなった後にスリープから復帰する必要がある場合など)。
では、64ビットカーネルはメリットになるでしょうか?パフォーマンスに関しては実際にはそうではなく、互換性を高めるためにSnowLeopardを実行しているほとんどのマシンで32ビットカーネルを使用するApple)の知恵を見ることができます。
MacRumorsにリークされた内容によると(公式文書はNDAの下にあるため)( ソース )、64ビットカーネルの実行をサポートしているのは次のコンピューターのみです。
XServesのみがデフォルトで64ビットカーネルを使用します。
あなたが保持しているコンピュータを起動する場合 6 そして 4 キーは64ビットカーネルを起動するか、別のキーに従って ソース それらを壊しますNDA編集できます/Library/Preferences/SystemConfiguration/com.Apple.Boot.plist
カーネルフラグを追加するか、nvramで実行します。
ジェイソンの残念ながら難読化された リンク 非常に有用な情報を隠しました:
ioreg -l -p IODeviceTree | grep firmware-abi
64ビットEFIMacは報告します
| | "firmware-abi" = <"EFI64">
Snow Leopardがリリースされるまで、どのシステムが64/32ビットモードをサポートするかはわかりません...しかし、すべての兆候は、SnowLeopardがカーネルサポートで透過的になることです...
しかし、残念ながら、「ダウナー」になって申し訳ありません。Appleseedの登録メンバーの場合、Appleseedフォーラムでは、カーネルを64ビットモードに強制する方法について説明しています。それ以外の場合、他の場所でSnow Leopardを受け取った場合でも、心配する必要はありません。
SnowLeopardのリリースはもうすぐです...
それは大丈夫です、理由はここにあります:
32ビットSLは64ビットアプリを実行します。 SLは、起動するカーネルバージョンに関係なく、64ビット互換です。
SLは、32ビットカーネルで起動した場合でも、64ビットアプリを実行し、4GBを超えるRAMに対応できます。
64ビットカーネルが必要な理由は、カーネルが32GBを超えるRAM(Xserveではデフォルト)をアドレス指定する必要がある場合、または64ビットのみのkext(開発者)を使用している場合)です。
64ビットカーネルは、コンピュータを魔法のように高速化するものではありません。 32GBを超えるRAM(とにかくIOWのみXserves))が必要な場合を除いて、アドレス指定の理由からも必要ありません。
コンシューマーシステムで32ビットをデフォルトにし、プロと開発者に64ビットカーネルオプションを提供することによりAppleは最大の互換性と最大の柔軟性を維持しています
64ビットは主に開発者向けオプションです。これを使用して、新しい64ビットドライバー/ kextをテストし、64ビットカーネルで動作することを確認できます。