【開発・提供】Apple(アップルジャパン)
【対応プラットフォーム】Mac OS X
【公式サイト】
Created Date: 07/10/18
Modified Date:
【解説】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(カーネルエクステンション)」を必要とするアプリケーション
尚、PowerPC、Intel、両アーキテクチャ間には、
- 命令アラインメントに関する各種のルール
- エンディアンの相違:「Big Endian(ビッグエンディアン)」「Little Endian(リトルエンディアン)」
- 整数型におけるゼロ除算
- C言語におけるABIのハンドリング