2007年10月18日

Rosetta【ロゼッタ】

【属性】トランスレータ(PowerPCバイナリトランスレータ)
【開発・提供】Apple(アップルジャパン)
【対応プラットフォーム】Mac OS X
【公式サイト】
Created Date: 07/10/18
Modified Date:
【解説】
MacintoshコンピュータにおけるPowerPC→Intelアーキテクチャへの移行に際して、Appleが「Universal Binary」と共にデベロッパ各位に提唱した移行支援テクノロジの一つ。Mac OS Xにおける基盤技術の一つに位置付けられる。PowerPCバイナリの互換性維持を主目的としたPowerPCバイナリトランスレータ(PowerPC実行環境)としてMac OS X for Intelに実装されており、既存のPowerPCアプリケーション(PowerPCネイティブコードのみをバンドルするバイナリパッケージ)をIntelプロセッサ上にて実行可能な形式に迅速、且つ透過的に変換する役割を果たしている。「CFM(Code Fragment Manager)」「Mach-O」ABI(Application Binary Interface、アプリケーションバイナリインターフェイス)によるPowerPCバイナリをIntel用コード(x86コード)に適宜変換すべくした「Dynamic Recompilation」と称される変換プロセスがアプリケーション起動時よりバックグラウンドにて自動的に実行されるため、ユーザはアーキテクチャの相違(或いは変換プロセス)等を意識する事なく既存のソフトウェアリソースをシームレスに利用可能となっている。

「Rosetta」は「Velocity Engine(AltiVec)」に対応した「PowerPC G4」互換環境として実装されており、PowerPC環境のエミュレーションを行っている訳ではないため、Rosetta上で動作する各種アプリケーションが機能的な制限を受ける事は少ない。また、米国時間2006年9月29日付にてリリースされた「Mac OS X 10.4.8」では、パフォーマンス全般の大幅な向上が示されている。

互換性面に関しては以下のアーキテクチャ、及び環境等が未サポートとなっている。
  • 「PowerPC G5」ネイティブコードを包含するアプリケーション
  • Classic環境を含む「Classic Mac OS」対応アプリケーション全般
  • 「JNI(Java Native Interface)」APIを使用しているJavaアプリケーション
  • Javaバイトコードを内包するPowerPCバイナリ
  • 「System Preference(システム環境設定)」における一部プログラム等、非アプリケーションのバイナリ
  • PowerPCコードとx86コードの混在したプロセス
  • PowerPC用の「Kernel Extension(カーネルエクステンション)」を必要とするアプリケーション
その他にも「Final Cut Pro」「Motion」「Soundtrack Pro」「DVD Studio Pro」「Aperture」「Logic Pro」「Logic Express」「Final Cut Express」等、Appleプロアプリケーションの一部のPowerPCバイナリは「Rosetta」のサポート対象外となっている。また、任意のアプリケーション上でPowerPC対応のプラグイン(エクステンション)を使用する際には、アプリケーション自体を「Rosetta」上で実行させる必要がある(「Universal Binary」としてビルドされているアプリケーションも「File」>「Get Info」>「Open using Rosetta」オプションを用いる事により「Rosetta」上にて起動可能)。

尚、PowerPC、Intel、両アーキテクチャ間には、
  • 命令アラインメントに関する各種のルール
  • エンディアンの相違:「Big Endian(ビッグエンディアン)」「Little Endian(リトルエンディアン)」
  • 整数型におけるゼロ除算
  • C言語におけるABIのハンドリング
等、命令レベルにおける互換性はない(「Rosetta」によるバイナリ変換には、エンディアンを統一するプロセスが含まれる)。また「Cocoa」フレームワークはエンディアンの相違を透過的に吸収するが、許容限度が低いグラフィックAPI、及び「External C(外部C)」「C++」APIを使用する際には注意が必要。カスタムリソースを使用する「Carbon」フレームワークは、エンディアン処理を適切に行うべくして再編成する必要が生じるケースもある(「Metrowerks CodeWarrior」にて作成されたCarbonアプリケーションは「Xcode 2.1」以降に移行後に然るべき調整と再コンパイルが必要となる)。

タグ:apple
posted by Flipper at 17:54 | 【R】