ファットバイナリ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
2013年6月27日 (木) 15:08時点におけるCharHigh (トーク)による版 (実装例)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

テンプレート:出典の明記 ファットバイナリ (FAT Binary) とはコンピュータソフトウェアバイナリ形式の一種で、一つのソフトを、互換性のない複数のCPUで実行できるように各CPU用のコードを同時に格納した形式をいう。

ファットバイナリの用途

ファットバイナリが利用されるのは次のような場合である。

このような場合、アーキテクチャを気にせずソフトを運用できるので、配布や管理面に優れる。ただし、使用されないアーキテクチャのコードを内蔵するためバイナリのサイズが大きくなる(このことがFATと呼ばれる所以である)。通常そのような領域を削除するユーティリティなどを利用する場合が多い。

実装例

Mac OSでは、旧来よりリソースフォークのCODEリソースに実行ファイルが収められており、PowerMacではデータフォークに収めるというスタイルを採ることで実現している。一方のUniversal Binaryは、Mac OS Xにおいてリソースフォークをあまり使わない方針となったため、一ファイルに複数アーキテクチャのバイナリを収め、JavaによるプログラムでCPUを判定し、適切なバイナリを実行しているテンプレート:要出典。JavaプログラムはJavaバイトコードとしてコンパイルされたものが、これら複数のバイナリの先頭に配置されている。そのため実行ファイルをバイナリエディタなどで表示すると、Javaのバイトコードであることを示すマジックナンバー (0xCAFEBABE) と各アーキテクチャ用のマジックナンバーが確認できる。

テンプレート:Asbox