ハードウェアの大幅な移行において、最大の課題の 1 つはアプリのサポートです。特定のプロセッサで実行するように開発されたアプリは、再コーディングして再コンパイルしない限り、別のプロセッサでは実行できません。 Apple は、Rosetta 2 でこの問題を解決しました。macOS ビッグサー

アップルシリコン移行は 2022 年後半にほぼ完了するため、Apple は開発者が次の環境で動作するソフトウェアを構築することを期待しています。Mシリーズプロセッサをネイティブにサポートします。 Rosetta 2 はまだ動作しますが、ユーザーは Apple がそれを削除することを期待する必要があります。macOSある時点で。

ロゼッタ2とは

これは、Intel ベースの Mac 設計からの Apple の移行の一環として、macOS Big Sur の舞台裏の機能です。これは、Intel ベースの Mac アプリを変換して、ソース コードを変更せずに Apple Silicon Mac 上で実行できるようにするために使用されます。

ティム・クック氏が Apple の Intel ベース Mac からの移行について説明

具体的には、x86_64 プロセッサ命令 (別名 64 ビット インテル) を、M1 チップを搭載した Mac でデビューした ARM ベースの Apple シリコン用に変換します。これはネイティブ アプリを置き換えることを目的としたものではなく、開発者に Mac ですでに提供されているアプリの「ユニバーサル バイナリ」を作成する時間を与えることを目的としています。

Rosetta 2 は、Mac を通じて配布される Intel ベースのアプリで動作しますアプリストア外部ソースからダウンロードしてインストールされるデスクトップ アプリケーション。

ロゼッタ 2 の仕組み

オリジナル バージョンと比べた Rosetta 2 の大きな違いは、非ネイティブ アプリが実行時ではなく、インストール時に自動的に翻訳されることです。これにより、追加の処理オーバーヘッドが発生しないため、アプリの全体的なパフォーマンスが向上します。ただし、Web ブラウザーのジャストインタイム (JIT) JavaScript コンパイラーのように、必要に応じてコードをオンザフライで変換します。

Rosetta 2 を使用した Mac 用 Maya

PowerPC への移行中、ユーザーがアプリを起動すると、オペレーティング システムのカーネル (コア) はアプリにネイティブ バイナリがあるかどうかを確認しました。そうでない場合、カーネルは Rosetta を使用してバイナリを実行します。ロゼッタとアプリはどちらも同じ処理スレッドで実行され、前者はアプリケーション コードのブロックを迅速に変換し、その特定のブロックを実行できました。この方法は、ジャストインタイム (JIT) コンパイルと呼ばれます。

Apple のドキュメントには、Rosetta がまだ変換していないルーチンの呼び出しに遭遇すると、必要なルーチンを変換して実行を継続したと記載されています。このプロセスにより、「翻訳と実行の間のスムーズかつ継続的な移行」が保証されました。また、Rosetta は、非ネイティブのハードウェアでもネイティブに近いエクスペリエンスを提供するために、翻訳されたコードを最適化しました。

開発者がユニバーサル バイナリ形式を使用してアプリをコンパイルすることを選択した場合、ユーザーには、Rosetta を使用して非ネイティブの実行可能ファイルを実行するオプションがありました。これにより、Intel の CPU アーキテクチャをネイティブにサポートしていない古い PowerPC ベースのプラグインを使用できるようになりました。

macOS Big Sur の Rosetta 2 は、「最も複雑な Pro アプリとそのプラグイン」をサポートします。

Appleシリコンへの移行

Apple は 2006 年に PowerPC プロセッサから Intel に切り替え、ハードウェアに大幅な移行を行いました。 Apple が単に CPU を交換して先に進んだわけではないので、これは注目に値します。 PowerPC と Intel は 2 つの異なるプロセッサ設計を使用し、異なる処理命令を実行します。

Apple Silicon for Macはarm64アーキテクチャに基づく

当時、これは、Mac 所有者が、リアルタイム翻訳するか、別の Intel ベースの言語を「話す」ようにコードを書き換えない限り、PowerPC マシン用に設計されたソフトウェアを Intel ベースの PC (別名 x86) でネイティブに実行できないことを意味していました。どちらの方法にも長所と短所がありました。

Apple は現在、Intel プロセッサから ARM の CPU アーキテクチャに基づくプロセッサへの移行において、同じ問題に直面しています。 AppleがIntelのチップを中心にMacを再設計した最初の移行とは異なり、Appleは現在、Arm Holdingsからライセンス供与されている基本設計を使用して自社プロセッサを製造している。後者の企業はチップを製造するのではなく、コア技術を設計し、CPU メーカーが独自の機能を組み込めるようにライセンス供与します。

Apple は、搭載されているすべての自社プロセッサに ARM の設計を使用しています。iPhone、iPad、iPod Touch、アップルTVアップルウォッチ、そしてHomePod。そのほとんどはモバイル デバイスであり、現在 AMD と Intel によって飽和している PC 市場において ARM は強力な足場を築いていません。 Apple が参入する前、ARM ベースの PC は、AMD および Intel ベースの PC よりも著しく遅かった。ただし、Apple の M1 チップは、すべての Intel ベースの Mac および多くの Mac デスクトップよりも高速であることが証明されています。

ユニバーサルへの移行

2 つの異なる CPU 設計にアプリを提供する 1 つの方法は、ユニバーサル バイナリ形式を使用して複数の実行可能ファイルを含むアプリをコンパイルすることです。たとえば、アプリには 32 ビットおよび 64 ビットの Intel プロセッサ用の実行可能ファイルが含まれる可能性があります。アプリのヘッダーには実行可能ファイルに関する情報が含まれているため、親オペレーティング システムはどれを実行するかを認識します。

Apple の新しい Universal 2 ファイル形式

Apple は、PowerPC から Intel チップへの移行中にこの方法を強制し、現在のアプリではなく新しいアプリが両方の設計でネイティブに動作できるようにしました。ユニバーサル ファイル形式に基づくアプリは、特定の CPU アーキテクチャ用にコンパイルされたアプリよりも大きくなります。 x86_64 と arm64 実行可能ファイルを組み合わせるための新しい形式は、Universal 2 と呼ばれます。

これら 2 つの形式では、完全に異なる CPU 設計を備えた Mac 上ですでに公開されているアプリを実行するという問題は解決されません。たとえば、Intel プロセッサを搭載した Mac 用に設計されたアプリは、Mac ではネイティブに実行できません。macOSARM ベースのチップ用に変更されました。舞台裏で何かがアプリを「変換」する必要があります。クロスプラットフォーム仮想化の登場です。

このテクノロジーは、1 つの CPU アーキテクチャ用に設計されたバイナリを「変換」し、別のオペレーティング システムまたはプロセッサで実行できるようにします。あるプロセッサ設計と別のプロセッサ設計の間のコードの違いを考慮して、すべてのオペレーティング システム呼び出しを再マップします。 Rosetta 2 の背後にあるテクノロジーである Transitive Corporation の QuickTransit は、この方法を使用しています。

Apple の開発者移行キット

DTK は、開発者が現在のアプリを Apple Silicon Mac および macOS Big Sur に導入するための Apple のユニバーサル アプリ クイック スタート プログラムの一部です。このプログラムには、次のベータ版が含まれていますXcodeおよび macOS、開発者ラボやハードウェア フォーラム、専用のテクニカル サポート、リソース、アプリをリアルタイムでテストするためのハードウェア キット (DTK) へのアクセス。

Intel ベースのアプリを Apple Silicon に導入するための Apple のハードウェア キット

キットは、マックミニ以下の仕様で:

  • プロセッサ:A12Z バイオニック
  • メモリ: 16GB
  • ストレージ: 512GB SSD
  • I/O: 2x USB-C (10Gbps)、2x USB-A (5Gbps)、1x HDMI 2.0
  • 接続性: WiFi 5、Bluetooth 5.0、イーサネット (1GB)

このキットの A12Z Bionic チップは、2020 iPad Pro に搭載されているものと同じです。最初の Apple Silicon Mac は、A12Z よりも高速な M1 プロセッサを搭載しています。

Apple のユニバーサル アプリ クイック スタート プログラムに登録するには、返金不可の 500 ドルがかかります。このプログラムは、開発者が Apple の条件に同意し、料金を支払ってから 1 年後に終了します。 DTK は、プログラムの有効期限が切れるか終了してから 30 日以内に返却する必要があります。

初期のベンチマークが明らかになり、Rosetta 2 を使用するアプリのパフォーマンスが低下する可能性が示されました。非ネイティブの Geekbench 4 に基づいて、DTK の Apple の A12Z Bionic チップは、シングルコア テストで平均 828、マルチコア テストで平均 2,931 を記録しました。コアテスト。ベンチマークには、2.4GHz でアンダークロックされた 4 つの「大きな」コアのみがリストされています。これは、翻訳されたアプリがハードウェアを正しく識別しない可能性があることを意味します。

比較すると、Apple の最新 iPad Pro に搭載されている A12Z Bionic チップのスコアは、シングルコア テストで平均 1,123 点、マルチコア テストで平均 4,701 点です。ここで Geekbench は ARM ベースのハードウェアでネイティブに実行され、変換は必要ありません。アプリには 8 つのコアすべてもリストされています。

返品

2021 年 2 月、Apple は開発者に対し、開発者移行キットを返却するよう奨励しました。同社は当初、200ドルのAppleクレジットと2021年5月31日の返却期限を提供していました。しかし、PowerPCからIntelへの移行に比べて払い戻しが比較的低いことに開発者が不満を抱いたため、Appleはオファーを500ドルのストアクレジットに増額しました。

2021 年初め、Apple は開発者にキットを返品して M1 Mac を購入するよう奨励するストア クレジットを提供しました。

このアイデアは、開発者が開発を継続するためにそのクレジットを使用して新しい M1 Mac を購入するというものでした。ただし、すでに M1 マシンを購入している人は、Apple の他の購入にクレジットを使用できます。

Apple が開発者に宛てた電子メールの全文は次のとおりです。

ユニバーサル アプリ クイック スタート プログラムにご参加いただきまして、誠にありがとうございます。

前回のメールで言及した 200 米ドルの感謝クレジットに関するフィードバックを伺いました。私たちの目的は、素晴らしいユニバーサル アプリを作成するために費やした多大な努力を表彰することでした。早期に当社と提携することで、当社のプラットフォームへの取り組みと先駆者になる意欲を示していただきました。

そこで、5 月に期限切れとなる 200 米ドルのクレジットの代わりに、500 米ドルの Apple クレジットを付与し、新しい M1 Mac を入手するためにそれを使用できる期間を年末まで延長します。すでに新しい M1 Mac を購入している場合は、Apple クレジットを利用して、アプリ開発作業に役立つ Apple 製品を柔軟に購入できます。

Developer Transition Kit (DTK) を Apple に返送する方法については、近日中に詳細をお知らせいたします。 macOS Big Sur 11.2 以降、DTK は公開されているソフトウェア アップデートを受信しなくなりますのでご注意ください。開発作業が中断されないように、できるだけ早く返却することをお勧めします。 DTK を返却すると、Apple クレジットを受け取ることができます。

M1 搭載 Mac の発売を大成功に導いていただき、改めて感謝いたします。

よろしくお願いします、

Apple 開発者関係

除去

2021 年 3 月、macOS 11.3 beta 3 でコード文字列を発見提案されたRosetta 2 は「このアップデートをインストールすると削除されます。」別のコード行では、「お住まいの地域では Rosetta は利用できなくなりました。Rosetta を必要とするアプリケーションは実行されなくなります。」と通知されました。

AppleはRosettaの削除に関して何も発表しておらず、なぜ同社がすぐに削除を行うのかは明らかではない。 2021 年 2 月の時点で、人気のあるすべての macOS アプリのほぼ半数が依然として翻訳レイヤーを必要としていました。この段階でコードを削除すると M1 Mac に不必要な負担をかけることになるため、このコードは単に遠い将来の削除を計画していた可能性があります。

ロゼッタ

Rosetta は当初、PowerPC の G3 および G4 プロセッサで動作する Mac OS X 用に構築された「現在出荷されている」アプリを翻訳するように設計されました。 Mac OS 9、Mac OS 8 などの古いオペレーティング システム用に構築されたアプリはサポートされていませんでした。また、PowerPC の G5 プロセッサ用に構築されたアプリもサポートしていませんでしたが、開発者は G5 固有のアプリ コードを変更して、Rosetta を使用して Intel ベースの Mac で実行できるようにすることができました。

ロゼッタは Mac OS X で起動

最初のバージョンは 2006 年に、Intel プロセッサを搭載した最初の Mac にインストールされた Mac OS X 10.4.4 "Tiger" として登場しました。 Rosetta は Mac OS X 10.6「Snow Leopard」には含まれていませんでしたが、手動でダウンロードしてインストールすることができました。これは、Mac OS X 10.7 "Lion" 以降には含まれておらず、提供されていませんでした。

Appleによれば、当時、3Dモデリングやレイトレーシングを扱うアプリなど、「高度なコンピューティングニーズ」を必要とするアプリはRosettaと互換性がなかったという。 「適度な量のユーザー操作」を必要とし、「高度な計算ニーズ」がある、または OpenGL を使用するワード プロセッサとアプリは、ほとんど互換性がありました。

2006 年 8 月のベンチマークでは、PowerMac G5 用に最適化された Mac アプリの実行速度が Intel ベースのアプリよりも遅いことが示されました。マックプロロゼッタを使って。比較したマシンにもよりますが、ネイティブ アプリのパフォーマンスは、Rosetta 経由で同じアプリを実行するよりも最大 2 倍優れていました。 Rosetta は、開発者が両方の CPU アーキテクチャでネイティブに動作するユニバーサル バイナリに取り組んでいる間の一時的な「修正」を目的としていました。

たとえば、Photoshop CS2 は、Intel ベースの Mac では、Rosetta 経由ではうまく動作しませんでした。アドビは、Photoshop CS3 をユニバーサル バイナリ形式で出荷し、PowerPC および Intel チップ用に個別のネイティブ バイナリを提供することで、この問題を解決しました。

クレイグ・フェデリギがロゼッタ 2 について語る

Apple ソフトウェアエンジニアリング担当上級副社長クレイグ・フェデリギ中に自慢したWWDC2020 年には、Rosetta 2 は PowerPC 用のオリジナル バージョンよりもさらに高速で、より強力で、互換性が高くなる予定です。 Maya などの重いアプリケーションやゲームシャドウ オブ ザ トゥームレイダーおそらく、Rosetta 2 を使用する Apple Silicon Mac 上で実行すると、パフォーマンスの低下は発生しません。