このページの本文へ

もっと知りたい! Snow Leopard ― 第3回

Snow Leopardの深層・その1

やっぱりスゴい! Snow Leopardの「64bit対応」

2009年09月01日 12時00分更新

文● 千種菊里

  • この記事をはてなブックマークに追加
  • 本文印刷

その2:カーネルを64bit化

なぜ64bitカーネルを使わない?

 Snow Leopardにおけるもうひとつの64bit化は「カーネル」だ。

 カーネルとはOSの中核部分で、OSの起動時にメモリー上に読み込まれる。デバイスドライバーを通じてIOデバイスを管理したり、各プログラムにCPUやメモリーを振り分けたり、不適切な操作でシステムが破壊されないようにセキュリティーを確保するといった役割を担っている。

 Leopardまでで64bit化された「Cocoa」や「Carbon」といったフレームワークと、Snow Leopardで64bit化されたアプリケーションに加えて、カーネルも64bit対応を果たしたことで、上から下まですべてが64bitのシステムになったわけだ。

 そうした状況がありながら、Snow Leopardは、ほとんどのMacにおいて32bitカーネルで起動するようにしている。

 64bitカーネルを使うには、64bitカーネルの起動に対応したEFIをファームウェアに持つMacを用意して、「6」と「4」のキーを押しながら起動することになる(例外として、最新のXserveのみ64bitカーネルで起動する)。64bitカーネルを扱えるのは、2008年以降の比較的新しい機種に限られる。

機種 リリース時期 機種ID 64bitを
標準使用
Mac Pro Early 2008 MacPro3,1
Xserve Early 2008 Xserve2,1
Macbook Pro 15/17インチ Early 2008
Late 2008
MacBookPro4,1
iMac Early 2008 iMac8,1
MacBookPro 15インチ
(ユニボディ)
Late 2008 MacBookPro5,1
MacBookPro 17インチ
(ユニボディ)
Early 2008 MacBookPro5,2
Mac Pro Early 2009 MacPro4,1
iMac Early 2009 iMac9,1
Xserve Early 2009 Xserve3,1
機種IDは「システムプロファイラ」で「ハードウェア」の項目を確認すると分かる。2008年より前の機種は、残念ながら64bitカーネルでの起動は難しい。最近のMacBookPro、iMac、MacPro、Xserveならば可能性はあるが、MacBookとMac miniは非対応のようだ

高速化の反面、デメリットも

 では32/64bitのカーネルでは、どれぐらい性能差があるだろうか? Mac OS Xでお馴染みのベンチマークソフト「Xbench」、数値計算を主体としたオープンソースのツール「iBench」、UNIXでディスクIOのベンチマークとしてよく利用される「Bonnie」という3本でベンチマークを試してみた。iBenchとBonnieについては32bit版/64bit版の双方で取得している。

 6P目にまとめたテスト結果を見ると、XbenchやiBenchではほとんど性能差が見られない。これは、通常の演算ではほとんどカーネルが介在しないからだ。一方、Bonnieでは明らかに64bitカーネルの方が速い。ディスクIOはカーネル内部で処理しているため、それがベンチマークに現れた形だ。

 もちろんカーネルの64bit化は、アプリケーションの64bit化と同じく高速化という点では意味がある。だからこそハイパフォーマンスが必要なXserveでは、64bitカーネルが標準で動作するようになっている。

 一方で、カーネルを64bit化したデメリットもある。先ほどもアプリケーションのところで少し触れたが、64bitカーネルを使うためには、カーネルに組み込まれる IOKitデバイスドライバーやカーネル拡張(KEXT)も64bit化されていないといけない。「OSをアップグレードしたらデバイスが使えなくなった」では非常に困るだろう。

 また、例えば仮想化ソフトウェアの「VMware Fusion」は、仮想化を実現するために、カーネルにいくつかのKEXTを組み込んでいる。現時点ではこれは32bitのみのため、64bitカーネルで起動すると仮想化環境が動作しなくなる。

 大半のMacが32btiカーネルを標準で使う理由は、性能向上というメリットより、デバイスやVMware Fusionのような便利なソフトウェアが動かなくなるデメリットが大きいと判断されたからなのだ。

64bitカーネル使用時に「VMware Fusion」を起動すると、警告が現れる

この特集の記事

ASCII.jp RSS2.0 配信中