元麻布春男の週刊PCホットライン

Snow Leopard導入のメリット



 2009年9月中という、当初の予定を前倒しにして、8月28日にAppleの新しいMac OS X バージョン10.6「Snow Leopard」が発売になった。これまでMac OSのコード名(正式リリース分)には、Cheetah、Puma、Jaguar、Panther、Tiger、Leopardと、大型の猫族の名前が用いられてきた。今回の新版が、Leopardの名前を継承したSnow Leopardになったことについて、AppleはLeopardをより洗練させたもの、という意味を込めているようだ。

MacBookにクリーンインストール直後のSnow Leopard。この画面でLeopardとの違いが分かる人はほとんどいないだろう

 確かに、クリーンインストールされたSnow Leopardの、起動直後の画面を見て、従来のLeopardと区別がつく人がいたら、それは相当なMac通だろう(実は背景のオーロラはLeopardから変わっている)。ソフトウェアで利益を上げる必要があるMicrosoftは、バージョン毎にUIを変えて、新しいもの、今までとは違うもの、良くなったもの、というイメージを打ち出さなければならないのに対し、必ずしも(それこそが最大の強みだとしても)ソフトウェアで利益を上げる必要のないAppleは、見た目を変える必要はない、ということなのだろう。

 実際Snow Leopardの、1ユーザーアップグレードが3,300円、5ユーザーまでのファミリーアップグレードが5,600円という価格設定から、今回のアップグレードで利益を上げようという印象は受けない。ほとんど実費配布に近い価格設定だ。いくらSnow Leopardの見た目がLeopardとほとんど変わらないからといって、後述のように内部的には大きな変化がもたらされており、相当の開発費がかかっている。もしAppleがMicrosoftのようにソフトウェアをビジネスにしている会社であれば、それなりの価格を設定できるよう、見た目をドラスティックに変える必要があっただろう。このあたりの相違は、両社の立ち位置の違いからくるものだ。

 さて、Snow LeopardにおけるMac OSの変化は、ほとんどユーザーの目には見えない。が、実際はかなり大規模なものだ。Vistaのカーネルの上で、UIなどユーザーに見える上位レイヤーの改善に力を注いだWindows 7に対し、UIなどユーザーに見える部分は変えずに、カーネル等の刷新に力を入れたSnow Leopardと言えるかもしれない。もちろん、これはどちらが望ましいということではなく、長期的にOSを開発していく上では、どちらも必要なフェーズ。たまたま2009年は両社が揃ってOSを革新するタイミングにあたり、それぞれのフェーズがこうだった、ということに過ぎない。

 さてSnow Leopardで大きく変わったことの1つは、PowerPCプラットフォームのサポートが廃止され、Intelプラットフォームのみのサポートになったことだ。これまでMac OS X自身を含むMacのソフトウェアは、PowerPCの32bitと64bit、Intelの32bitと64bitの計4通りに対応したバイナリであった。Snow LeopardはIntel専用となったことで、OS自体のコードサイズが大幅に削減された。

 筆者が使っているMacBook Airは、初代SSDモデルであるため、容量が59.68GBしかない。Snow Leopardを導入する前は、空きが8.4GB足らずで、出張等で写真を大量に撮る必要がある時など、残容量がはなはだしく心許なかった(Snow Leopardへのアップグレードには5GBの空き容量が必要)。しかしSnow Leopardにアップグレードしたところ、空き容量が19.4GBにまで拡大、これでしばらくはやりくりしていけるな、と思っているところだ。また、これだけ空き容量が増えるということ自体が、このSnow Leopardがメジャーアップデートであることの証かもしれない。 

 これまでAppleは、PowerPC向けとIntel向け、それぞれのバイナリを1つのパッケージにするユニバーサルバイナリ戦略をとってきた。Intelプラットフォーム上でPowerPC用アプリケーションを動作させるためのエミュレーター(Rosetta)の提供を含め、極力ユーザーに意識させることなくPowerPCからIntelへのプラットフォーム移行を進めようとしてきたわけだ。そして、それは成功だったと思うものの、コードサイズの点では大きな犠牲を払っていたのだと実感する。

 SSDなどというデバイスが出現しなければ、この痛みに気づくことさえなかったのかもしれないが、PowerPCサポートがなくなることで10GB以上ディスクスペースが節約されるのは嬉しい。逆に古いPowerPCベースのシステムを使っているユーザー(一応、筆者の手元にもPowerPCベースのMacはあるのだが)からすると、喜べないことだと思うが、Appleが最初のIntel Macをリリースしてからすでに3年半以上が経過した。そろそろ潮時、ということだと理解するべきなのだろう。

 ちなみに光学ドライブを持たないMacBook AirへのSnow Leopard導入だが、必ずしも純正のSuperDriveを用意する必要はない。今回筆者はパナソニックのLF-P767Cという外付けUSBドライブでアップグレードを実施したが、バルクの薄型BD/DVDコンボドライブを市販のUSBケースに収めたドライブを使ったこともある(Appleが動作の保証をしてくれるわけではないが)。SuperDriveをAir以外の他のMacやPCに接続することはできないが、その逆(汎用のUSB光学ドライブをAirで使うこと)は問題がないことが多い。Snow Leopardを導入して動かなくなったのはイーモバイルのUSBモデムくらいで、ATOKはそのまま動いているし、WiMAXのアダプタ(UD01SS)はユーティリティの再インストールで動いている。

 PowerPCサポートの廃止は、いわゆるレガシーとの決別だが、将来を見据えて施された大きな変化が64bit、Grand Central Dispatch、OpenCLの3つだ。これらは技術的には大きな変化であり、将来のMac環境に大きな恩恵をもたらすものになるハズだが、必ずしも大きな現世利益をもたらすものではない。

 まず64bitだが、Snow Leopardで64bit対応というと、何かLeopard(10.5)の時も同じようなことを聞いたような、と思い出す人もいるかもしれない。その記憶は全く正しい。実はAppleはその前のTiger(10.4)の時にも、64bit対応をうたっている。2004年6月のWWDCでTigerのプレビューを行った際に出されたプレスリリースには、

「Tigerは64ビット処理をネイティブに実行できるため、データベース、エンジニアリング、および科学向けアプリケーションは、膨大なメモリにアクセスし、その性能を引き出すことができるかたわら、既存の32ビットアプリケーションも全く問題なく同時に動かすことができます」。

との一文がある(Tigerの発売は翌2005年4月)。同様に、2006年8月のWWDCでLeopardをプレビューした際のプレスリリースには、

「64ビットをネイティブでフルサポートしています。既存の32ビットアプリケーションやドライバとの互換性と性能はそのままに、64ビット処理を最大限に活用できます」。

と書かれている。じゃあいったい、いつ64bitになったんだよ、ということだが、AppleはMac OS Xの64bit化を、少しずつ段階を踏みながら行なってきた。Tigerの段階で行なわれた64bit化は、ユーザー空間を64bitへ拡張し、64bitアプリケーションの実行を可能にしたが、GUI等をつかさどる主要なAPIであるCocoaが32bitのままだった。

 Leopardでは、Cocoaが64bit化され、64bitのGUIアプリケーションを作成することが可能になる。そして今回のSnow Leopardでは、64bitのカーネルが導入されると同時に、SafariやFinderなどMac OS X標準添付のアプリケーションやユーティリティの多くが64bit化されている。

 ここでややこしいのは、Snow Leopardで64bitカーネルが導入されたことで、ユーザーの利用環境が上から下まで、完全に64bit化されるわけでは必ずしもない、ということだ。むしろ、ほとんどのユーザーは、64bitカーネルを利用することはないと思われる。

 Leopardのプレスリリースからの引用にあるように、Leopardは既存の32bitドライバと互換性を持っている。だが、64bitのカーネルは32bitのドライバと原則として互換性を持たない。これは32bit版Windowsと64bit版Windowsでドライバの互換性がないことと同じで、Appleといえども魔法は使えない。

 ではなぜアプリケーションは64bitで動くのか。Appleはこのあたりの仕組みについて語ろうとしないが、おそらく64bitのユーザーから32bitのカーネルやカーネル拡張を呼び出すこと(サンク)を行なっているのだと思われる。実はこれに類似したことをMicrosoftもWindows 3.0~Windows 9xで行なっていた。ただし、ここで行なわれていたのは、32bitのユーザーから16bitのカーネルあるいはデバイスドライバを呼び出すというやり方で、Mac OS Xとは一世代完全に異なる。そして、16bitのメモリ空間は当時としてもすでに手狭で、Windows 9xはリソースの不足による安定性の問題にいつも悩まされていた。

 Mac OS Xの場合、サンク先である32bitは、Windows 95時代の16bitほど手狭にはなっていない。もしそうなら、x86版のWindowsもリソース不足による不安定性に悩んでいるハズだが、特にそのような話は聞かない。

 おそらくもう1つ違うのは、かつてのWindowsが32bitのユーザーから32bitのカーネルサービスと16bitのカーネルサービスの両方を利用するハイブリッド構成だったのに対し、Mac OS Xは、32bitのカーネルを呼び出す場合と64bitのカーネルを呼び出す場合が完全に分かれている(両方を同時に利用することはない)のではないか、と思われる点だ。こうすることで、32bitカーネルと64bitカーネルをシンプルに保つことができる。反面、環境間の移行は難しくなるが、Snow Leopard対応のカーネル拡張は、32bitカーネル用と64bitカーネル用を1つのパッケージに入れる、といった形で、極力ユーザーに意識させないようにするのではないかと思う。この場合、デベロッパーの負担が増えるが、Macの場合、基本的にハードウェアの大半はApple製であり、カーネルモジュールの大半を書くのはAppleである。そもそも拡張スロットを持ったマシンも、Mac Proに限られるくらいだから、多種多様なハードウェアが混在するWindows PCとは事情が違う。

x64互換ではないCore DuoでもSnow Leopardは動作するSnow Leopardではシステムプロファイラに64bit化されたバイナリであるかどうかを示すフィールドが用意されるが、これは64bitでそのアプリケーションが動いていることを示しているのではない。あくまでも64bitで動作可能であるかどうかを示したものだ

 おそらくSnow Leopardの世代において、64bitカーネルを利用することになるのは、サーバー(Xserve)とデベロッパくらいで、Macをクライアントとして利用する一般ユーザーのほとんどは、32bitカーネルを利用することになるだろう。そうでなければ、従来の周辺機器、アプリケーションとの互換性を確保できない。Snow Leopardの64bitカーネルは、将来の完全移行を睨んだ布石、ということなのだと思う。

 そういう意味で、一般ユーザーに最も身近な64bit化は、SafariやFinderなどアプリケーションレベルの64bit化ということになるだろう。が、だからといってSnow Leopardは64bit専用のOSではない。今回、PowerPCのサポートがなくなったものの、すべてのIntel MacがSnow Leopardでサポートされる。言うまでもなく初期のIntel Macには64bitを持たないCore Duoプロセッサが採用されており、こうしたシステムでもSnow Leopardは稼働する。

 Grand Central Dispath(GCD)は、プログラマーがスレッドを記述するのではなく、スレッド可できる場所をプログラムに指定しておき、実際にスレッドをディスパッチするかどうかはOSの判断に任せる、というアイデアだ。そもそもプログラマは、ソースコードを記述する際に、利用環境を想定できない。書いたプログラムはデュアルコアのMac miniでも、8コアのMac Proでも、等しく効率よく動作する必要がある。プログラムを実行する際に、何個のコアが使えるかを判断可能なのは、動作しているOSだけであり、そこにスレッドのディスパッチを任せるのは正しいアプローチだ。またGCDはスレッド数のダイナミックな縮退もサポートしており、実行時は20スレッドを利用するものの、最小化されてアイドルの時はリソースを解放し4スレッドだけを消費する、といった動作もできる。Snow Leopardに付属する標準アプリケーションのうち、FinderやSafariなど64bit化されたものの多くが、同時にGCD対応にもなっているという。Appleでは、FinderにおけるアイコンのリフレッシュがLeopard比で1.8倍等と性能向上をうたっているが、それは64bit化とGCD対応の両方が貢献してのものなのだろう。

 残ったOpenCLのサポートは、現時点で最も評価の難しい技術だ。OpenCLは、GPUベンダに依存せず、グラフィックス処理以外の部分にGPUの演算能力を生かそうというものだが、なかなか使い方が難しい。GPUに処理させるコード、パラメータ、データをメインメモリ上で用意して、それをドンとGPUのローカルメモリに転送し、GPUにひたすら計算させてその結果をもらう、というやり方は、科学技術計算や大規模シミュレーション等には適していても、日常的なパーソナルコンピューティングには適切な用途がなかなか見つからない。AppleもこのOpenCLについては、今回のSnow Leopardで具体的な使用例を挙げていない。サードパーティのアイデアに期待するとともに、次のiLife(に含まれるiMovie)に期待かなぁ、というところだ。

 というわけでSnow Leopardだが、今すぐ何かにすごく役立つ機能がある、というわけではない。特に32bitモードしか持たないCore Duo世代のIntel Macでは、64bit化されたアプリケーションの恩恵も受けられない。逆に必須だと思うのは筆者と同じ初代MacBook Airのユーザーで、アップグレードにかかる3,300円でSLC SSDが10GB手に入る(実際にどのくらい増えるかはユーザーにより異なるが)。さらに同じパッドのハードウェアを使いながら、2代目以降のMacBook Airでしかサポートされなかった4本指のスワイプが初代でも可能になる。これはお薦めだ。

MailやiCalがExchangeクライアント(Microsoft Exchange Server 2007)になるのはSnow Leopardの新機能の1つ。果たして企業ユーザーの獲得につながるだろうかSnow Leopardでは、初代MacBook Airでも4本指の操作が標準的にサポートされるx64互換のCore 2 Duoプロセッサだからといって、自動的に64bitカーネルが動作するわけではない

 その他の一般的なIntel Macの場合、アップグレードする価値がどれくらいあるかは難しいところだが、3,300円あるいは5,600円ならそれほど悪い話ではない。将来に向けた布石という感の強いアップデートだが、3,300円に値しないとも思えないからだ。Appleのことだから、こうした部分も踏まえて今回の特別価格を設定したのだろう。

 そうはいっても、この世知辛い世の中で、たとえ将来への布石であるとしても、3,300円という値札をつけることになるOSに2年間をかけたのだから、Appleもすごいことをする。MicrosoftがWindows Vistaでストールしていた時間を使って、普段なかなかやれないことを片付けさせてもらいました、ということなのかもしれないが、かなりの先行投資だ。これもiPhoneやiPod/iTunesが稼いでくれているおかげだろうか。