Universal Binary

Universal Binary（ユニバーサルバイナリ）は、Appleが開発した、互換性のない複数種類のCPU（例えばPowerPCとx86、もしくはx64とARM64など）でソフトウェアを動作させることができるようにするためのバイナリである。自社で販売しているパーソナルコンピュータ「Macintosh」に搭載されているCPUを、PowerPCからインテルのx86に移行するにあたって発表された。さらにmacOSにおける32ビットと64ビットの過渡期（当時の名称はMac OS X）においては、32ビットバイナリと64ビットバイナリを混在させるためにも利用されている。

ユニバーサルバイナリに対応したアプリケーションソフトウェアであれば、ユーザー側は実行環境のCPUアーキテクチャを気にすることなく（CPUに応じた個別のパッケージをダウンロードすることなく）、単一のアプリケーションパッケージを統一的に利用し、かつ（Rosettaのような）変換層を介さずCPUのネイティブ性能を発揮させることができる。欠点としては、各アーキテクチャに応じた複数のバイナリを含むため、単一のアーキテクチャ専用のバイナリと比べるとファイルサイズが増大してしまうことなどが挙げられる。

インテル系プロセッサ向けx86_64とAppleシリコン向けarm64のネイティブコードを含むバイナリフォーマットは「Universal 2」と呼ばれ、WWDC 2020で「Rosetta 2」とともに発表された【笠原一輝のユビキタス情報局】IntelからArmへのシームレスな移行を実現する「macOS Big Sur」 - PC Watchユニバーサルバイナリ再登板ということは「lipo」の出番かも - 新・OS X ハッキング!(268) | マイナビニュース。

 lipo 
macOSではlipoというコマンドラインツールが標準提供されているBuilding a Universal macOS Binary | Apple Developer Documentation。このツールを使用することで、複数の異なるアーキテクチャ向けバイナリを結合してユニバーサルバイナリを生成したり、ユニバーサルバイナリに格納されているアーキテクチャの種別を確認したり、特定のアーキテクチャ向けバイナリのみを取り除いたりすることができる。

脚注

関連項目
 Rosetta
 ファットバイナリ
 Mach-O
 Classic (ソフトウェア)

外部リンク
Universalアプリケーション

Category:Mac OS