じゃあ何が完全なというか真なる64bitのOSなんだと言われるとあれですが。Mac OS Xは10.4あたりから一部64bit化(主にUnixレイヤーを。当時はカーネルも含めて64bit化かと思ってましたがUNIXレイヤー部分のみだったんですね・・・)が始まり10.5で基本的には64bit化(アップル64bit紹介ページ)が完了し32bit、64bit双方扱えるOSとなりました。一方WindowsやLinuxの場合だと32bit版と64bit版は別扱い。
出来るものならLinuxだろうがWindowsだろうが過去のアプリケーションはそのまま動いて欲しいだろうしドライバも互換性があった方が良いだろうけどそれらが出来なくてMac OS Xだと出来る、ちゅうのは凄いなと思っていたんだけどLeopardではカーネル空間を32-bit モードに据え置いていてKernelから完全64bitというわけじゃないみたいですな。
GrayRecordのG.O.R.Nさんからコメントいただきそれを知りました。
MacOS X の場合、32/64 bit を議論するとややこしくなります。Kernel そのものは 32bit の世界で動いていますからね。Windows の場合、64bit のものはKernel から 64 bit で走っています。 Kernel を 64 bit に移行した弊害として、ドライバの非互換という問題が起きています。ただ、Kernel を 32bit で留め置くと、User-land のアプリケーションからデバイスにデータを送る場合、一旦、32 bit 空間に転送してそこからとなりますからパフォーマンスでは不利になりますね。 この辺は得失をどこで帳尻合わせるかという問題になるので正解はないと思います。ただ、Apple の場合、開発リソースの関係でドライバの作り直しという展開は避けたかったと思います。 ただ、Windows、Linux ともに 64 bit の系譜では Kernel から 64bit 化するのものが多いので世間的には Kernel からというのが多数派のようではあります。まあ、Xserve ならともかく、Mac の方ではドライバの作り直しはつらいでしょう。各種デバイスのベンダに任せられる Microsoft、文殊の知恵ができる Linuxはともかく、ドライバの作り直しなんてやっていたら Leopard の発売が遅れるでは済まないでしょうから。
そう考えると、アップルのとった Kernel land を 32bit アドレッシングのままにするは他にはないでしょうね
これを見てググって見ると
★OS X 64bit 版のカーネルは 32bit で動作(渋木宏明(ひどり) blog)
★なぜ Intel Mac のドライバには 64-bit 化の問題が起きなかったのか?(NyaRuRuの日記)
なるほど。
これだとピーク時には性能に差が出ちゃいそうですわな(変換による時間のロスとかで)。一応現段階でも「仮想メモリで最大16エクサバイト、物理メモリで4テラバイトの64ビットアドレス指定」という事でMacProなんかは32GBメモリ搭載とか出来ますしOSが一応64ビット対応という事で3GB、4GBの32bitの壁も(マシンによってはあるのでしょうが)なさそうだし。
-2009/05/09追加-
★Road to Mac OS X Snow Leopard: 64-bit to the Kernel(appleinsider)
10.4の64bit化開始から10.6の完全64bit化までわかりやすい図があります。
--
関連
★ユーザーがほとんど意識する事なく真なる64bitOSに移行出来るMac OS X v10.6 Snow Leopard その2(2009年06月16日 (火曜日))
★Mac OS X v10.6 Snow Leopardで今度こそ、完全64bit化?
★Mac版の64bit版とOpenGL 2.0のサポート見送り「LightWave 8.5」
★アドビ、次期「Photoshop」を64ビット化--ただしWindows限定