連載
» 2009年10月06日 11時00分 公開

見えにくいSnow Leopardの明と暗元麻布春男のWatchTower(2/2 ページ)

[元麻布春男,ITmedia]
前のページへ 1|2       

64ビットカーネルを生かせるのはXServeだけ!?

 なぜ、せっかく加えた64ビットカーネルにこんなに邪険とも言える扱いをするのか。それは、64ビットカーネルを利用すると、既存のドライバやカーネル拡張との互換性が失われてしまうからだ。このあたりの事情は64ビット版のWindowsとなんら変わらない。CPUが同じである以上、アップルだけが魔法を使えるわけではないのだ。

 おそらくアップルはSnow Leopardで、一般のユーザーが64ビットカーネルを利用することを想定していない。にもかかわらず64ビットカーネルを起動可能な状態にしたのは、デベロッパには64ビット対応をうながさなければならないからだ。それにはβ版などではなく、製品としての64ビット環境が必要になる。

 Snow Leopardでカーネルの64ビット化が行われたもう1つの理由は、サーバのパフォーマンスアップだ。XServeだけはデフォルトのカーネルが64ビットになることでも、その狙いは明らかである。64ビットのユーザーから32ビットカーネルサービスを用いる場合、データをいったん4Gバイト以下のアドレス空間にコピーした後、本来のアドレスに転送するというオーバーヘッドが生じる(32ビットのカーネルモジュールは4Gバイトまでしかアドレッシングできないため)。データベースをはじめ大型のアプリケーションが動作するサーバでは、このオーバーヘッドが無視できない。また、サーバの場合、使うデバイス、アプリケーションとも、クライアントに比べれば種類が限られていること、製品やサービスの価格体系上64ビットドライバのサポートコストを吸収しやすいなど、移行しやすい要素がある。

64ビットカーネルが標準になるためには

ExposeやFinder、Font Bookなど標準アプリケーションの多くが64ビット化された。システムプロファイラで64ビット対応かどうかを確認できるのはSnow Leopardから

 さて、Snow Leopardの次の段階(次のメジャーバージョンアップ)において、Mac OSは可能なMacにおいては64ビットカーネルを利用するようになるだろう。この時点でMacで動くカーネルは32ビットと64ビットの両方が共存することになるが、ユーザーには自分が32ビットカーネルを利用しているのか、64ビットカーネルを利用しているのかなど、極力意識させたくないはずだ。アップルはOSのインストールサイズが肥大するのを覚悟で、PowerPCとインテルの両方に対応するUniversal Binaryを推進し、スムーズなアーキテクチャの移行を図った会社である。過去にもモトローラの68系CPUからPowerPCへの移行を行った、いわば移行に関しては経験の豊富な会社だ。ユーザーの目から完全に隠すことはできないにしても、今度は32ビットと64ビットの2種類のカーネルに対応した2種類のドライバやカーネル拡張を、1つのパッケージにするなどして、ユーザーにどちらを使っているのか極力意識させないようにするだろう。それがアップルらしいやり方だ。

 そして、さらに次の段階で、今度は32ビット環境をサポート対象から外す、という措置に踏み切るはずだが、それがいつになるのかは、まだ予想可能な段階にはない。何せ、64ビット環境に対応したドライバは、クライアントに関してはSnow Leopardに付属するもの以外、事実上存在しない状態だ。Macのハードウェア/ファームウェアにしても、現時点でも32ビット環境のみをサポートしたもの(EFI32対応のもの)がまだ現役で残っているだろう。少なくとも3年、ひょっとするともう少し先かもしれない。

 Snow Leopardにおけるもう1つの64ビット化は、標準アプリケーションの64ビット化だ。Snow Leopardにおいては、OSに付属するアプリケーション(iLifeは別)の大半が64ビット化されている。GCDの項でも触れたように、64ビット化とGCD対応が同時に行われているため、どの程度が64ビット化による性能向上なのか判断できないが、一定の効果はあるものと思われる。

 逆に主要な付属アプリケーションで64ビット化されていないものの例としては、iTunesとDVDプレイヤーが挙げられる。いずれもDRMあるいはそのための暗号の復号化にかかわるアプリケーションだ。こうしたアプリケーションは、暗号をセキュアな環境で扱うために、カーネルモードのモジュールを用いることが多い。そうした都合から32ビットアプリケーションのままになっているのかもしれない。といってもGrapherやFront Rowも32ビットのままだから、何かほかに理由があるのかもしれないが、アップルは理由について明らかにしていない。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.