いまある材料でLionを予想(Rosetta編)

海上忍
2010-12-02 18:12:20
  • このエントリーをはてなブックマークに追加
最新特集【一覧】

 Snow LeopardではPowerPCのサポートが打ち切られたが、それはOSとしての話。PowerPCマシンではブート不可になったというだけで、大半のPowerPCアプリケーションは変わらず実行できる。それを支えているアーキテクチャが「Rosetta」だ。

 Rosettaは一種のバイナリトランスレータで、PowerPCバイナリをジャストインタイムにIntelバイナリへと変換する機能を持つ。エミュレータのようにCPU命令単位で変換するわけではなく、かといってアプリケーションに含まれるバイナリ全体をまとめて変換することもない、臨機応変に対象サイズを上下させることが特徴だ。

 ダイナミックローダなどライブラリを呼び出すときには、Mac OS Xネイティブの機構がそのまま利用される。Snow Leopardからは、/var/db/dyldディレクトリ以下にキャッシュファイル(dyld_shared_cache_*)およびマップファイル(dyld_shared_cache_*.map)が作成され、あらかじめ主要なダイナミックリンカ(dyld)のリンクと読み込みを完了させておくことで、起動時間とメモリ消費量を節約するしくみを採用しているが、Rosettaもこれと同じ。Rosetta導入済みの環境であれば、/var/db/dyld以下に「dyld_shared_cache_rosetta」と「dyld_shared_cache_rosetta.map」を確認できるはずだ。

 そのようにPowerPCバイナリまで実行環境の足腰が鍛えられたSnow Leopardだが、PowerPCはビッグエンディアン、Intelはリトルエンディアンというバイトオーダーの違いからは逃れられない。いわばメモリアクセスに重石が付けられた状態のため、今後もPowerPCバイナリのパフォーマンスを劇的に改善することは難しいのではなかろうか。

 そもそも、Snow Leopardの時点から、Rosettaは標準装備の機能ではなくなっている。扱いとしてはQuickTime 7と同様で、必要とされたときにAppleのサイトからRosettaのパッケージをダウンロードする仕組みだ。QuickTime 7はQuickTime Xに取って変わられた技術、すなわち星になる運命--Mac OS 9のコードネームがMoonlightからLimelight、そしてStarlightへと変化していったことを覚えているだろうか--ということは、Rosettaもそれに近い存在という認識で間違いないだろう。

 Rosettaが「星になる」時期がいつかは不明だが、Intelアーキテクチャへの移行が発表されてから、そろそろ5年になろうとしている。Lionがそのタイミングになる可能性は高いのではないかと思うが、どうだろう?

Rosettaのダウンロードを促すダイアログ Snow Leopard導入後はじめてPowerPCアプリケーションを起動すると、このようにRosettaのダウンロードを促すダイアログが現れる
  • 新着記事
  • 特集
  • ブログ