64bit完全対応が売り物の次期Mac OS X 10.6 "Snow Leopard"だが、利用中のMacが仮に64bitプロセッサを搭載していたとしても、64bitカーネルでSnow Leopardを動作させることはできないかもしれない。これはハードウェア的な問題、そしてAppleがSnow Leopardに課そうとしている制限によるものだ。

このSnow Leopardの64bit問題についてはOSNewsの18日(米国時間)付けの記事が詳しい。9月発売を目標に開発の最終段階に入っているSnow Leopardは、現在工場出荷直前のGold Masterの段階にある。そのGold Master候補の1つ(Build 10A432)をテストしたユーザーらが、Snow Leopardを64bitカーネルで起動できないという現象を多数報告している。調査の結果、Snow Leopardが「デフォルトで64bitカーネルが起動する(Default)」「通常は32bitだが、64bitカーネルでも起動できる(Capable)」「32bitでしか起動できない」という3種類のパターンがハードウェアによって生じることがわかった。64bit起動可能なマシンの一覧についてはOSNewsの記事を参照していただきたい。

これでわかるのは、Snow Leopardのインストールで64bitカーネルがデフォルト状態で起動するのは「XServe」のみである。それ以外のMac Pro、iMac、MacBook Proは「Capable」のステータスであり、デフォルトでは32bitカーネルでSnow Leopardが起動する。64bit動作させるには、起動時に「6」と「4」のキーを押したままにして64bitカーネルをロードさせるしかない。あるいは「com.apple.Boot.plist」のファイルを書き換えて起動時のデフォルト起動モードを64bitに変更してしまう。この場合、「3」と「2」のキーを押して起動したときのみ32bitモードになる。

この一覧に載っていないマシン、例えばMacBookや旧世代のIntel Macはすべて32bitカーネルでしか起動できない。理由は2点あり、1つはMacのブートシステムであるEFIが32bitであること、もう1つはAppleが意図的に64bit動作に制限をかけていることにある。現行Macはほぼ64bit EFIとなっているが、旧世代Macは32bit EFIを搭載している。32bit EFIのMacではSnow Leopardの64bitカーネルを起動できない。EFIが32bitか64bitかの確認は、Terminalで下記のコマンドを入力することで調べられる。

ioreg -l -p IODeviceTree | grep firmware-abi

このEFI制限が理由で、例えば初代Mac Proは64bitカーネルが利用できないことになる。逆に、世代的にも新しく、64bit EFIを搭載するという条件を満たしていても、MacBookは現時点で64bitカーネルを利用できない。OSNewsの推測によれば、これはAppleが意図的に課した制限の可能性が高いという。MacBookを32bitに限定する一方で、MacBook Proを両対応にすることで差別化を図っているというのだ。

64bitカーネルのメリットの1つはパフォーマンスだ。特にXServeをはじめ、Mac ProやMacBook Proのハイエンドマシンのユーザーには必要な機能だろう。現行のLeopardでも64bitアプリケーションの動作は可能で、Snow Leopardの32bitカーネルでも動作自体は可能だ。だが総合的なパフォーマンスでは64bitカーネルに軍配が挙がるだろう。

ではなぜ、64bitカーネルのデフォルト動作をXServeに限定するのか? その理由の1つはサードパーティのドライバに起因するとみられる。特に周辺機器は現時点で対応が完了していないベンダーが多く、それらの互換性問題が拡大するのを防ぐために、一時措置としてデフォルト起動を禁止しているというのだ。周辺機器問題の影響が少ないサーバ製品のみ許可しているのは、そうした点にあるのだろう。

将来的に64bitカーネルがデフォルト起動に変更されるのか、また32bit EFIを持つユーザーへのファームウェアアップデートやMacBookユーザーへの救済措置は用意されるのか。今後のAppleの対応を待ちたい。