Rosetta

Rosetta（ロゼッタ）は、特定のアーキテクチャのプログラムコードを持つバイナリを、別のアーキテクチャに適宜変換 (:en:Dynamic recompilation) することでバイナリの互換性を維持するAppleの技術。

 Rosetta 
2004年、MacintoshがPowerPCからインテルアーキテクチャへ移行することに伴い、従来のバイナリの互換性を維持するためにPowerPC用プログラムコードをインテル用コードに変換するRosettaが開発され、Appleの発注を受け仮想化ミドルウエア開発で実績のある米Transitive（2009年にIBMが買収）の技術が導入された86系に乗り換えるApple社の秘策，「Rosetta」の概要が明らかに。

インテルアーキテクチャ向けに対応し、2006年にリリースされたIntel版Mac OS X v10.4.4に初搭載され、Mac OS X v10.6 "Snow Leopard"ではインストールが任意化話題のユキヒョウを追う「Snow Leopard、ココに注目」(3) - 互換性の謎を解く及び最後の対応となり、Mac OS X Lionで廃止された新機能のポイントをチェック! アップル「OS X Lion」速攻レビュー(後編)。

 仕組みとパフォーマンス 
どの程度のサイズのバイナリコードが変換されるかは動的に変化する（キャッシュメモリと同じような概念で、必要なプログラムコードを任意の容量読み込んだ上でx86コードに変換するため、逐一命令を変換するエミュレータとはいささか趣を異にする）。アプリケーションのコード全体をインテル用コードに変換してから実行する機能はない。ユニバーサルバイナリ対応のソフトでは自動的にインテル用コードが実行される。

Rosetta環境下で実行されるPowerPCバイナリはx86コードへと変換され、ユーザ側からはCPU種別を意識することなくアプリケーションを実行できる。ただし、前述の動作方法ゆえに速度の低下は避けられず、シングルコアG5より高速と言われるIntel Core Duoで同クロックのG4の50～80%以下の速度になる(メモリ容量や周辺ハードウェアの違いに左右されるため一概には言えない)といわれている。

Rosettaを利用した場合、たとえ最新のCore i7でも、PowerPC時代のPower Macと比べても性能はそれほど伸びない。PowerPCアプリケーションのほぼ全てがエンディアンをビッグエンディアンに揃えていて、それをIntelシステム上で動くコードに置き換えるとき、メモリの読み書きはCPUにとって基本的な機能であり、そこに足かせがつけられてしまうのはアプリケーション性能に重大な影響を与えてしまう。逆を言えばバイトスワップが発生しないバイトオーダーの処理がメインのアプリケーションでは非常に優れたパフォーマンスを発揮し得る。しかしそのようなソフトウエアは少なく、例えば画像処理など基本的にバイトオーダーで処理するソフトウエアでもワードアクセスした後バンドル処理を行うといったチューニングが施されているため、Rosettaの上で動かそうとすると裏目に出る結果となる。

なお、RosettaはClassic環境をサポートせず、スクリーンセーバやシステム環境設定など、非アプリケーションのバイナリも実行できない。PowerPCコードとx86コードの混在したプロセスも処理できず、アプリケーションソフトウェアのPowerPC対応プラグインを使用するには、アプリケーション全体をRosettaで起動しなくてはならない（なお、DashboardウィジェットはダイナミックHTMLベースであるため、CPUの違いの影響を受けない）。この点はMixed Mode Managerにより68kコードとPowerPCコードの混在したプロセスを処理可能としていたMac OSのコード変換機構と異なり、注意が必要である。

 Rosetta 2 
2020年6月に行われたWWDC 2020において、AppleはMacのアーキテクチャをインテルX86-64からAppleシリコンに移行することを発表した。Rosetta 2はAppleシリコンを搭載したコンピューターでもインテル向けアプリケーションを実行できるソフトウェアとして発表され、同年11月にリリースされたmacOS Big Surで利用可能となった。

インテル向けの従来のアプリケーションは、Xcode 12で再ビルドするだけでインテルとAppleシリコンの両方に対応したUniversal Binaryにできるとされているが、それを行っていない古いアプリケーションをAppleシリコンを搭載したMacで使用するには、Rosetta 2を経由することになる。

Rosettaとは異なりインストール時にARMプログラムに変換する機能が実装されたほかAppleシリコンの効率が高いためRosettaが不得意だった計算量の多いプロユースなソフトウェアもRosetta 2を通じてほぼ全て変換できる。Rosetta 2のインストールは任意であり、Appleシリコンを搭載したMacではじめてインテル向けのアプリケーションを起動したときにインストールできる。

Appleは、WWDC 2025時に、Intel MacのサポートはmacOS Tahoe 26までとし、macOS 27を最後にRosetta 2を廃止すると発表した。

 脚注 

 関連項目 
 - DEC Alpha向けの類似技術

Category:Appleのソフトウェア
Category:MacOS