アップルのARMベースMacは旧アプリをエミュレート、iOSアプリも動かせる

Apple(アップル)はMacの大きな方向転換を発表した。同社は将来、Intel製CPUをARMアーキテクチャーに基づくアップル独自のチップに置き換える。デベロッパーや特殊なエンタープライズアプリを動かしている人なら、今後どうなっていくのか気になることがたくさんあるだろう。

まず、アプリはIntelベースのMacとARMベースのMacの両方で動作するようにコンパイルできる。その両方の実行可能コードを含むアプリは、Universal 2と呼ばれる新しいフォーマットを使って配布される。Macをしばらく使っている人なら、アップルがPowerPC CPUからIntel CPUに切り替えた時にも同じ方式をとったことを覚えているだろう。1つのアプリに2つの実行ファイルが入る。

最適化されないソフトウェアもそのまま動作可能だが、性能はARM対応のネイティブアプリより劣る。アップルは、新しいMacで旧アプリを動かすためのエミュレーションレイヤーであるRosetta 2(ロゼッタ2)を提供する。

ARMベースのMacに古いアプリをインストールすると、システムがアプリを調べてARMプロセッサーに最適化しようと試みる。こうしてユーザーがアプリを開く前からある程度の最適化が行われる。

しかし、ウェブブラウザーや複雑なアプリなど実行時コンパイルする場合はどうなるのか?Rosetta 2は、アプリの実行時にもx86の命令をARMの命令へとリアルタイム変換する。

そして、サーバー上で動くコードを作っているデベロッパーのために、アップルはバーチャル化ツールも準備している。LinuxとDockerをARM Macで動かせる。

おまけとして、Macユーザーはこれまでになく大きなアプリライブラリーを利用できるようになる。「Macユーザーは初めて、iOSとiPadOSのアプリをMacで動かせるようになる」とアップルのCEOであるTim Cook(ティム・クック)氏は語った。

詳しくは語られなかったが、iOSアプリのmacOSへの移植を容易にするアップル自身のフレームワークであるCatalystを使うことで、デベロッパーがmacOS向けに最適化していないアプリでもユーザーはダウンロードして実行できる。

移行には時間がかかり、おそらく2年程度は必要だろう。最初のARMベースMacは2020年末に出荷される予定だ。ARM Macへのアプリ移植に興味のあるデベロッパー向けに、クイックスタートプログラムが用意される。ドキュメントとプライベートフォーラムに加えて、アップルはA12Zシステムオンチップ搭載のカスタム版Mac Miniを提供する。こうしてデベロッパーは実際にARMチップが載ったMacで自分のアプリをテストできる。

[原文へ]

(翻訳:Nob Takahashi / facebook