ファットバイナリ From Wikipedia, the free encyclopedia ファットバイナリ(fat binary)とは、コンピュータソフトウェアのバイナリ形式の一種で、一つのソフトを、互換性のない複数のCPUで実行できるように各CPU用のコードを同時に格納した形式をいう。 ファットバイナリが利用されるのは次のような場合である。 OSがベースCPUを変更した際に後方互換性を維持するため(MacintoshからPower Macintoshのケース) バイナリ互換はあるが異なる最適化を持つ(PowerPC G5用の64ビットコードと32ビットコード) OSが複数のアーキテクチャをサポートする(NEXTSTEPのx86、SPARC、68kサポートなど) ただしAppleが採用した、PowerPCアーキテクチャとx86アーキテクチャ (Intel Mac) をサポートするバイナリはUniversal Binaryと呼ばれる このような場合、アーキテクチャを気にせずソフトを運用できるので、配布や管理面に優れる。ただし、使用されないアーキテクチャのコードを内蔵するためバイナリのサイズが大きくなる(このことがFATと呼ばれる所以である)。通常そのような領域を削除するユーティリティなどを利用する場合が多い。 実装例 Mac OSでは、旧来よりリソースフォークのCODEリソースに実行ファイルが収められており、Power Macではデータフォークに収めるというスタイルを採ることで実現している。一方のUniversal Binaryは、macOSにおいてリソースフォークをあまり使わない方針となったため、一ファイルに複数アーキテクチャのバイナリを収め、JavaによるプログラムでCPUを判定し、適切なバイナリを実行している[要出典]。JavaプログラムはJavaバイトコードとしてコンパイルされたものが、これら複数のバイナリの先頭に配置されている。そのため実行ファイルをバイナリエディタなどで表示すると、Javaのバイトコードであることを示すマジックナンバー (0xCAFEBABE) と各アーキテクチャ用のマジックナンバーが確認できる。 この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。表示編集 Related Articles