このページの本文へ

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

Snow Leopardの深層・その1

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

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

文● 千種菊里

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

その3:Windowsの64bit化は?

 OSの64bit化は、マイクロソフトのWindowsやLinuxなどでも避けられない未来となっている。

 特にマイクロソフトは、Windows Server 2003/Windows XPから64bit版を導入して普及に努めている。さらには Exchange Server 2010などの次期サーバー製品では64bit版しか提供しないという「鞭」をふるって、64bitへの移行を進めようとしている。

 彼らにとって64bit化が急務なのは、32bit OSの寿命が尽きようとしているからだ。

 メモリー管理ひとつを見ても、例えばWindows XPやWindows Server 2003 Standard Editionの32bit版では約4GBまでの物理メモリーしか利用できない。昨今、2GBのDIMMがわずか数千円、4GBのメモリーなど1万円もかからずに実装できるにもかかわらず、OSが認識しないためそれが十分に利用できないのだ。

 もちろんWindows Serverでは、Enterprise版以上を購入して、「PAE」というx86のメモリー管理の拡張機能を使用することで、4GBを越えるメモリーを使えるようになる(エディションにもよるが32〜128GB、関連リンク)。

 ただ、そのためだけに上位エディションを選択して、コストが十数万増えるというのは頭が痛いところだ。しかもPAEはオーバーヘッドのある仕組みのため、万能の解決策ではない。

 動作速度の向上やより多くのメモリーを使用可能にするためにも64bit化を急ぎたいが、Snow Leopardと同じくデバイスドライバーの問題があるため、なかなか普及しないというのが実情だ。


64bitカーネルを急ぐ必要のないアップル

 一方、OS Xはそこまで崖っぷちには立たされていない。TigerやLeopardといった過去のMac OS Xは、言ってみれば「エセ64bit OS」だったからだ。

 これはCPUの動作モードに関わってくる。Intel CPUの場合、単純に32bit、64bitというモードがあるのではなく、CPUの内部には歴史的に積み重ねられた何種類ものモードがある。

x86 CPUのもつモードと、Mac OS X/Windowsでの利用状況。IA-32eはIntel64による64bitサポートのときに用意された。Windowsがそうしたx86の歴史に付き合ってきたのに対し、Mac OS XはIntel64をサポートするIntel Coreをターゲットに移植されたため、IA-32eの使用を前提に開発できたという違いがある

 Intelのx86 CPUは、16bit CPUだった「8086」から拡張を重ねてきたため、いくつもの互換モードを持つ。 リアルモードは8086のころの互換、プロテクトモードは32bit CPUとしての機能を整えたときに成立したものだ。

 Intel64による64bit対応で追加されたのが「IA-32e」というモードで、この中には本当に64bitで動作する「64bitモード」と32bitで動く「互換モード」がある。互換モードは64bit OSで過去の32bitのソフトウェアを使うためのもので、このふたつは非常に高速に切り替えられる。一方、従来の32bitモードである「プロテクトモード」からIA-32eへの切り替えはコストがかかる。

 Windowsの場合、32bit版OSはプロテクトモードで、64bit版OSはIA-32eの64bitモードで実行するという素直な作りになっている。このため、32bit版では64bitのアプリケーションの実行もできなければ、4GBを越える物理メモリーの対応も難しい。

 一方、Mac OS Xは、32bitのはずのLeopardでもOSの起動直後にIA-32eモードに切り替え、互換モードと64bitモードをこまめに切り替えて実行している。

 メモリー管理は64bitモードに切り替えることで、4GBを越える物理メモリーを扱うことが可能になる。また32bit OSの上で64bitのアプリケーションが動かすことができるのも、そもそもCPUをIA-32eモードで動作させているからだ。

 互換モードをメインに使いつつ64bitモードを「64bitアプリケーションとの互換用」として利用する──。Intelの意図とは逆の使い方をすることで、無理なく4GBを越える物理メモリーに対応したのだ。

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中