Miscellaneous Thoughts on Snow Leopard
Mac OS X 10.6 Snow Leopardの雑感をつらつらと書き留めています。
Mac OS X 10.6にバンドルされているPythonのヴァージョンは2.6.1でした。流石のAppleもPython 3.x系の採用には踏み切れなかったのでしょうか。何れにせよ、itertools.(permutations|combinations)がデフォルトで使えるようになったのは嬉しいです。
> Python 2.6.1 (r261:67515, Jul 7 2009, 23:51:51) [GCC 4.2.1 (Apple Inc. build 5646)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
Activity Monitorによると、64ビットバイナリのようですね。
最近はPython3.x系でコードを書くことが多いので、Python3.1.1をビルドしました。何も考えずにビルドしたのですが、64ビットバイナリとしてビルドされました。
> python3.1 Python 3.1.1 (r311:74480, Aug 30 2009, 19:49:56) [GCC 4.2.1 (Apple Inc. build 5646)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
ほとんど全てのプロセスが64ビット化されているMac OS X 10.6ですが、カーネルは32ビットカーネルがデフォルトです。これは、一部のプリンタドライバが64ビットカーネルでは正常動作しないための処置、ということです(64ビットカーネルを使用している方々からは起動が遅くなった、iPhoneを認識しないといった声も上がっているようですがどうなんでしょう?)。
私も是非64ビットカーネルで起動してみたかったのですが、所有しているMacBook Proではこれはかないませんでした。EFIのABIが64ビットではない、というのが理由だそうです。
私の端末は"MacBook Pro(17-inch, Core 2 Duo)"と呼ばれるモデルで、Model Identifierは"MacBookPro2,1"です。これは、System Profilerから確認することが出来ます。
以下はyebo blog - Snow Leopardは32ビットカーネルがデフォルトにて紹介されている確認方法の結果です。
> ioreg -l -p IODeviceTree | grep firmware-abi | | "firmware-abi" = <"EFI32">
また、以下はAppleがオフィシャルに出しているMac OS X Server 10.6の情報ですが、上述の理由のため、通常のMac OS X 10.6で発行したらどうなるかすらも試すことが出来ませんでした。
方法 2: ディスク上での設定 (永続的)
現在の起動ディスクで 64 ビットカーネルを選択するには、「ターミナル」で次のコマンドを使います。
sudo systemsetup -setkernelbootarchitecture x86_64
現在の起動ディスクで 32 ビットカーネルを選択するには、「ターミナル」で次のコマンドを使います。
sudo systemsetup -setkernelbootarchitecture i386
注意:この設定は /Library/Preferences/SystemConfiguration/com.apple.Boot.plist ファイルに保存されており、このディスクから起動するたびに有効になります。その他のディスクから起動した場合、そのディスクでの設定、またはハードウェアのデフォルトが有効になります。
OS X:32 ビットまたは 64 ビットカーネルで起動する - Apple サポート
追記(2009/09/04)
【レポート】話題のユキヒョウを追う「Snow Leopard、ココに注目」(2) - 64bit時代の到来 (1) アプリケーションの64bit化対応(1) | パソコン | マイコミジャーナルにて詳しく解説されていました。64ビットカーネルによる起動と制限は2頁目に記載されています。
しかし、嬉しいことに、Adobe Photoshop CSは無事インストールすることができました(突っ込んだ動作確認はしていませんが)。私の所有する唯一のPowerPCバイナリのため少々心配でしたが、なんとかなりそうです。
語られることは少ないですが、Rosettaもすごい技術ですね。