Intel の PowerPC 向け Microsoft Word | |
| 開発者 | アップル社 |
|---|---|
| オペレーティング·システム | Mac OS X 10.4.4–10.6.8 (Intel) macOS 11.0以降 (ARM) Linuxゲスト[1] |
| タイプ | バイナリ変換、エミュレーション |
| Webサイト | https://support.apple.com/en-us/102527 |
ロゼッタは、 Apple社がmacOS用に開発した動的バイナリトランスレータであり、異なる命令セットアーキテクチャ間のアプリケーション互換性レイヤーです。ソフトウェアを自動的に変換することで、新しいハードウェアへの移行を可能にします。名前は、エジプトの象形文字の翻訳を可能にした遺物であるロゼッタストーンに由来しています。[2]
2006年にMac OS X Tigerで導入されたRosettaの最初のバージョンは、 PowerPCプロセッサからIntelプロセッサへのMacの移行の一環であり、PowerPCアプリケーションをIntelベースのMacで実行できるようにしました。Rosettaのサポートは、 2011年の Mac OS X Lion(10.7)のリリースで廃止されました。
2020年にmacOS Big Surのコンポーネントとして導入されたRosetta 2は、 MacのIntelプロセッサからAppleシリコンへの移行の一環であり、IntelアプリケーションをAppleシリコンベースのMacで実行できるようにします。[3]
背景
Macintosh は、 Motorola 68000 シリーズ、PowerPC、Intel x86、Apple シリコンのARM64など、いくつかの異なる命令セット アーキテクチャを持つ CPU を使用しています。各命令セット アーキテクチャは、その前のものと互換性がないため、以前の命令セットを後続の命令セットで エミュレートするためのソフトウェア レイヤーに基づく移行プランが必要になります。
Power Macintoshの発売に伴い、Mac 68K エミュレータはSystem 7.1.2以降の一部となりました。このエミュレータは PowerPC 機能を使用し、オペレーティングシステムの最下位レベルに埋め込まれ、 Mac OS ナノカーネルと統合されています。つまり、ナノカーネルは PowerPC 割り込みを傍受し、それを 68k 割り込みに変換し (その後、必要に応じて混合モードに切り替え)、68k コードを実行して割り込みを処理できます。これにより、68k コードと PowerPC コードを同じファットバイナリ内に混在させることができます。
ロゼッタ
Appleは、MacがPowerPCからIntelプロセッサに移行した2006年にRosettaをリリースした。これは、最初のIntelベースのMacとともにリリースされたバージョンであるMac OS X v10.4.4 "Tiger"に組み込まれ、多くのPowerPCアプリケーションをIntelベースのMacコンピュータで変更なしで実行できるようにする。RosettaはQuickTransitテクノロジに基づいている。[4]グラフィカルユーザーインターフェイスはなく、ユーザーに通知することなく必要に応じて起動するため、AppleはRosettaを「これまでに見たことのない最も素晴らしいソフトウェア」と評した。[5] Rosettaは、 Mac OS X v10.6 "Snow Leopard"にオプションでインストールできる。 [6] Rosettaは、 Mac OS X Lion(10.7) (2011年リリース)以降には含まれておらず、サポートもされていないため、PowerPCアプリケーションを実行できない。[6]
Intel プロセッサと PowerPC プロセッサのアーキテクチャの違いが大きいため、Rosetta は 68000 エミュレータよりも高いレベルで動作し、ユーザーレベルのコードを傍受してエミュレートすることしかできないユーザーレベルのプログラムである。G3 、G4、およびAltiVec命令は変換するが、G5命令は変換しない。PowerPC ベースの Mac 向けのほとんどの市販ソフトウェアはこれらの要件と互換性があったが (当時は G4 システムはまだ広く使用されていた)、G5 固有の命令に依存するアプリケーションは、Rosetta 対応の Intel ベースの Mac で動作するように開発者が修正する必要があった。Apple は、ユーザーとのやり取りは多いが計算の必要性が低いアプリケーション (ワードプロセッサなど) が Rosetta での使用に最適であり、計算の必要性が高いアプリケーション (ゲーム、AutoCAD、Photoshopなど) は適していないとアドバイスした。[7] Appleの「Pro」メディア制作アプリケーションの既存のPowerPCバージョン(Final Cut Pro、Motion、Aperture、Logic Proなど)はRosettaではサポートされていないため、 RosettaがサポートするIntelベースのMacで動作させるにはユニバーサルバイナリバージョンへの「クロスグレード」 [8]が必要です。
Rosettaは以下のものもサポートしていません: [9]
- Classic環境、つまりMac OS 9以前向けに構築された非Carbonアプリケーション
- システム環境設定パネルに設定を挿入するコード
- 正確な例外処理を必要とするアプリケーション
- スクリーンセーバー
- カーネル拡張機能とそれに依存するアプリケーション
- バンドルされたJavaアプリケーションまたは翻訳できないJNIライブラリを含むJavaアプリケーション
- Rosetta で翻訳されたアプリケーション内の Java アプレット。つまり、Java アプレットをロードするには、従来の PowerPC バージョンではなく、ネイティブの Intel Web ブラウザ アプリケーションを使用する必要があります。
ロゼッタ2
2020年にAppleは、 MacのAppleシリコンへの移行を支援するために、macOS Big SurにRosetta 2をバンドルすると発表しました。このソフトウェアにより、 x86-64ベースのプロセッサでの実行専用にコンパイルされた多くのアプリケーションを、Appleシリコンでの実行用に変換できるようになります。[3] [10]
Apple シリコンMac に Rosetta 2 をインストールするには、ターミナルを使用してプログラムを直接インストールする方法と、x86-64 用にコンパイルされたアプリケーションを開いてインストール ウィンドウを開く方法 の 2 つの方法があります。
Rosetta 2は、ジャストインタイム(JIT)翻訳サポートに加えて、事前コンパイル(AOT)も提供しており、ユニバーサルバイナリのないアプリケーションがAppleシリコンMacにインストールされると、x86-64コードが一度だけ完全に翻訳されます。[11]
Rosetta 2 のパフォーマンスは高く評価されている。[12] [13]いくつかのベンチマークでは、x86-64 のみのプログラムは、Apple M1 SOC を搭載した Mac 上の Rosetta 2 の方が、Intel x86-64 プロセッサを搭載した Mac 上でネイティブに実行するよりも優れたパフォーマンスを示した。Rosetta 2 がこれほど高いレベルの変換効率を提供する主な理由の 1 つは、Apple M1 SOC でのx86-64メモリ順序のサポートである。 [14] SOC には、x86 フラグを計算するための専用命令もある。[15]
Rosetta 2はほとんどのソフトウェアで動作しますが、一部のソフトウェアはまったく動作しない[16]か、「動作が遅い」と報告されています。[17]
最初のバージョンと同様に、Rosetta 2 は通常、ユーザーの介入を必要としません。ユーザーが x86-64 専用アプリケーションを初めて起動しようとすると、macOS は Rosetta 2 がまだインストールされていない場合はインストールするように求めます。その後の x86-64 プログラムの起動は、自動的に翻訳されて実行されます。ARM ベースのマシンでも、Rosetta 2 を介してユニバーサルバイナリを x86-64 コードとして実行するように強制するオプションもあります。[18]
macOS Ventura以降、LinuxをゲストOSとして仮想マシンを実行しているユーザーは、Rosetta 2を利用して、仮想マシン内でLinux用にコンパイルされたx86-64コードを実行できる[19]。Rosetta 2はランタイムバイナリとして動作し、ゲストOSにインストールする必要がある。少なくともARMv8.2 -A命令セットをサポートするCPUを搭載し、メモリの順序がネイティブx86とは異なることを条件に、開発者がこのランタイムバイナリをサードパーティのハードウェアにインストールする事例[20]がある。一部の開発者は、ランタイムがAppleの仮想化フレームワーク内に バンドルされているため[21]、 macOSのライセンス契約に違反する可能性があると指摘している。
macOS Sequoiaでは、AppleのGame Porting Toolkitを使用して移植されるゲームの互換性を向上させるために、IntelプロセッサからのAVX2命令の変換をサポートするようにRosetta 2が更新されました。[引用が必要]
参照
- ファットバイナリ § Appleのファットバイナリ– 両方のプロセッサでネイティブに動作する68k/PPCアプリケーションの組み合わせ
- Mac 68k エミュレータ– 680x0命令をPowerPC命令に変換する、クラシック Mac OSの同様の機能
- ユニバーサルバイナリ– 両方のプロセッサでネイティブに実行されるPPC/Intelアプリケーションの組み合わせ
- ユニバーサル 2 バイナリ– 両方のプロセッサでネイティブに実行される Intel/ARM 統合アプリケーション
参考文献
- ^ 「Rosetta を使用して Linux VM で Intel バイナリを実行する」。Apple Inc. 2022 年8 月 7 日閲覧。
- ^ Norr, Henry (2006 年 1 月 27 日)。「Core Duo iMac が高速な新チップを発表」。Macworld。
- ^ ab Warren, Tom (2020年6月22日). 「Appleは今年後半からMacを自社製プロセッサに切り替える」The Verge . 2020年6月22日閲覧。
- ^ 「AppleのRosettaの背後にある頭脳:Transitive」CNET 2005年6月8日。 2023年1月9日閲覧。
- ^ 「Rosetta」。Apple。2006年1月13日時点のオリジナルよりアーカイブ。2011年9月5日閲覧。
- ^ ab AppleInsider Staff (2011年2月26日). 「Mac OS X Lion が Front Row、Java ランタイム、Rosetta を廃止」AppleInsider . AppleInsider, Inc. 2014年4月29日時点のオリジナルよりアーカイブ。 2011年2月27日閲覧。
- ^ 「Rosetta」(PDF)。ユニバーサルバイナリプログラミングガイドライン、第2版。Apple。 2012年8月3日時点のオリジナル(PDF)からアーカイブ。 2011年9月5日閲覧。
- ^ 「ユニバーサルアプリケーション」。Apple。2016年3月3日時点のオリジナルよりアーカイブ。2019年8月5日閲覧。
- ^ 「何を翻訳できるか?」(PDF)。ユニバーサルバイナリプログラミングガイドライン、第2版。Apple。2012年8月3日時点のオリジナル(PDF)からアーカイブ。 2011年9月5日閲覧。
- ^ Mayo, Benjamin (2020年6月22日). 「Apple、MacアーキテクチャをIntelから自社製ARMチップに移行、エミュレーションパスを提供」9to5Mac . 2020年6月23日閲覧。
- ^ WWDC2020 基調講演。Apple Inc. 2020 年 6 月 22 日。イベントは 1 時間 39 分 37 秒に発生します。
アプリをインストールすると翻訳されるため、すぐに起動して即座に応答できます。Rosetta 2 は、必要に応じてコードをオンザフライで翻訳することもできます。
- ^ Evans, Jonny (2020年11月19日). 「Apple Silicon MacのRosetta 2について知っておくべきことすべて」. Computerworld . 2020年12月8日閲覧。
- ^ 「そう、AppleのM1 MacBook Proはパワフルだが、驚くべきはそのバッテリー寿命だ」。TechCrunch。2020年11月17日。 2020年12月8日閲覧。
- ^ Wrenger, Lars; Töllner, Dominik; Lohmann, Daniel (2024 年 4 月 1 日)。「Apple M1 のメモリ順序付けモデルの分析」。Journal of Systems Architecture。149 : 103102。doi : 10.1016 /j.sysarc.2024.103102。ISSN 1383-7621 。
- ^ Dougall, J (2022 年 11 月 9 日). 「Rosetta 2 が高速なのはなぜか?」 . 2023 年8 月 15 日閲覧。
ARM フラグ操作拡張機能... Apple の秘密の拡張機能...
- ^ Carlton, Sam (2020年12月8日). 「ThatGuySam/doesitarm」. GitHub . 2020年12月8日閲覧。
- ^ 「r/mac - Rosetta 2 上のアプリ」。reddit 。 2020年11月29日。 2020年12月8日閲覧。
- ^ 「Rosetta と Apple Silicon で Office for Mac を使用する」。support.microsoft.com。2021年6月 21 日閲覧。
- ^ Proven, Liam (2022年6月9日). 「Apple、macOS 13でLinuxサポートを強化」. The Register . 2023年1月6日閲覧。
- ^ Cunningham, Andrew (2022年6月7日). 「AppleはmacOS VenturaでLinux VMがRosettaを使用してIntelアプリを実行できるようにする」Ars Technica . 2023年1月6日閲覧。
- ^ 「仮想化 - Rosetta を使用して Linux VM で Intel バイナリを実行する」。Apple Developer。2023年1 月 6 日閲覧。
外部リンク
- Wayback Machineの Apple Rosetta Web サイト(2011 年 1 月 7 日アーカイブ)
- Wayback Machineの Transitive Corporation の Web サイト(2008 年 9 月 14 日アーカイブ)
- Wayback Machineの Rosetta 互換性インデックス(2006 年 2 月 8 日アーカイブ)
- ARM ですか? – Rosetta 2 互換性インデックス
