| ロゼッタ | |
|---|---|
Rosetta 2 インストールプロンプト | |
| 開発者 | アップル社 |
| オペレーティング·システム | Mac OS X 10.4.4–10.6.8 (Intelホスト、PowerPCをエミュレート) macOS 11.0以降 (ARMホスト、Intelをエミュレート) IntelをエミュレートするARM Linuxゲスト[ 1 ] |
| タイプ | バイナリ変換、エミュレーション |
| Webサイト | https://support.apple.com/en-us/102527 |
Rosettaは、 Apple社がmacOS向けに開発した動的バイナリトランスレータであり、異なる命令セットアーキテクチャ間のアプリケーション互換性レイヤーです。ソフトウェアを自動変換することで、新しいハードウェアへの移行を可能にします。名前は、エジプトの象形文字の翻訳を可能にした遺物であるロゼッタストーンに由来しています。[ 2 ]
Rosettaの最初のバージョンは、MacのPowerPCプロセッサからIntelプロセッサへの移行の一環として、 2006年にMac OS X Tigerで導入されました。これにより、 PowerPCアプリケーションをIntelベースのMacで実行できるようになりました。Rosettaのサポートは、2011年の Mac OS X Lion (10.7)で廃止されました。
Rosetta 2は2020年にmacOS Big Surのコンポーネントとして、またMacのIntelプロセッサからApple Siliconへの移行の一環として導入され、IntelアプリケーションをApple SiliconベースのMacで実行できるようになりました。 [ 3 ] Rosetta 2のほとんどの機能は、2027年にmacOSバージョン28で削除される予定です。
Macintoshは、 Motorola 68000シリーズ、PowerPC、Intel x86、そしてApple SiliconのARM64など、複数の異なる命令セットアーキテクチャ(ISA)を搭載したCPUを採用してきました。各ISAには互換性がないため、後継ISA上で以前のISAを エミュレートするためのソフトウェアレイヤーに基づく移行計画が必要でした。
Power Macintoshの発売に伴い、System 7 .1.2 以降にはMac 68K エミュレータが搭載されました。このエミュレータは PowerPC の機能を利用し、オペレーティングシステムの最下層にMac OS ナノカーネルと統合されて組み込まれています。つまり、ナノカーネルは PowerPC 割り込みをインターセプトし、それを 68K 割り込みに変換し(必要に応じて混合モードへの切り替えも行う)、68K コードを実行して割り込み処理を行うことができます。これにより、68K コードと PowerPC コードを同じファットバイナリ内に混在させることができます。
| MacのIntelプロセッサへの移行 |
|---|
Appleは、MacがPowerPCからIntelプロセッサに移行した2006年にRosettaをリリースしました。Rosettaは、 x86ベースのMacの発売開始バージョンであるMac OS X Tiger 10.4.4 "Tiger"に搭載されており、多くのPowerPCアプリケーションをそのままIntelベースのMacコンピュータで自動的に実行できます。RosettaはQuickTransitテクノロジに基づいています。[ 4 ]グラフィカルユーザーインターフェースがなく、透過的に起動するため、AppleはRosettaを「これまでに見たことのない最も素晴らしいソフトウェア」と評しました。[ 5 ] RosettaはMac OS X 10.6 "Snow Leopard"にオプションでインストールできます。[ 6 ] Rosettaは、 Mac OS X 10.7 "Lion"(2011年リリース)以降には含まれておらず、サポートもされていません。 [ 6 ]
IntelプロセッサとPowerPCプロセッサ間のアーキテクチャの違いが大きいため、Rosettaは68000エミュレータよりも高いレベルで動作し、ユーザーレベルのコードを傍受してエミュレートすることしかできないユーザーレベルプログラムである。G3 、G4、AltiVec命令は変換できるが、G5は変換できない。PowerPCベースのMac向けの市販ソフトウェアのほとんどはこれらの要件と互換性があり、G4システムも依然として広く使用されていたが、開発者はG5固有の命令に依存するアプリケーションをRosettaで動作するように更新する必要がある。Appleは、ユーザーとのやり取りは多いが計算の必要性は低いアプリケーション(ワードプロセッサなど)がRosettaでの使用に最適であり、計算の必要性が高いアプリケーション(ゲーム、AutoCAD、Photoshopなど)は適していないとアドバイスした。[ 7 ]
| MacのApple Siliconへの移行 |
|---|
2020年、AppleはMacのApple Siliconへの移行を支援するため、macOS Big SurにRosetta 2をバンドルすると発表しました。このソフトウェアにより、 x86-64ベースのプロセッサ専用にコンパイルされた多くのアプリケーションをApple Siliconで実行できるように変換することが可能になります。[ 3 ] [ 8 ]
Rosetta 2は、ジャストインタイム(JIT)翻訳サポートに加えて、事前コンパイル(AOT)も提供しており、ユニバーサルバイナリのないアプリケーションをApple Silicon Macにインストールすると、x86-64コードが一度だけ完全に翻訳されます。[ 9 ]
Rosetta 2の性能は高く評価されています。[ 10 ] [ 11 ]いくつかのベンチマークでは、x86-64のみのプログラムは、M1上のRosetta 2上でネイティブx86-64よりも優れたパフォーマンスを示しました。Rosetta 2がこれほど高い変換効率を実現している主な理由の一つは、M1 SoCにおけるx86-64メモリオーダリングのサポートです。 [ 12 ]このSoCには、x86フラグを計算するための専用命令も搭載されています。[ 13 ]
macOS Ventura以降、Linuxゲストオペレーティングシステム仮想マシンは、 Rosetta 2をゲストランタイムバイナリとしてインストールしてx86-64 Linuxアプリを実行できます。[ 14 ] [ 15 ]
WWDC 2025で、Appleは2027年にmacOSバージョン28でRosetta 2のほとんどの機能が削除され、サポートはメンテナンスされていないゲームに限定されると述べました。[ 16 ]
2はアプリのインストール時に翻訳するため、すぐに起動し、瞬時に応答できます。Rosetta 2は必要に応じてコードをオンザフライで翻訳することもできます。
ARMフラグ操作拡張機能…Appleの秘密の拡張機能…