Mach-O

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Mach-O
拡張子 なし、.o.dylib
種別 バイナリ実行可能オブジェクト共有ライブラリコアダンプ
テンプレートを表示

Mach-O(まーく・おー)はコンパイラが生成するオブジェクトファイルおよび実行ファイルファイルフォーマットである。NEXTSTEPに由来し、Mac OS Xで標準のバイナリファイルフォーマットとして採用されている。

複数アーキテクチャバイナリを保持する事が可能である。(ファットバイナリ)

以下のような構造になっている。

FatHeader
アーキテクチャの数をふくむ。なくてもよい。
fat_arch
FatHeaderの後に続く。CPUの種類などをふくむ。FatHeaderがある場合のみ存在する。
MachHeader
CPUの種類、ファイルの種類、ロードコマンドの数をふくむ。
ロードコマンド
MachHeaderの後にロードコマンドがいくつか続く。これはセグメントの情報や実行されるときのレジスタの初期値を指定する。

実行ファイルとして体をなすにはロードコマンドは少なくともセグメントコマンドとスレッドコマンドが必要である。

Carbonアプリケーションではオブジェクトファイル・実行ファイルのフォーマットとしてPreferred Executable Format(PEF)とMach-Oの双方を利用できるが、Mac OS Xの機能を利用するにはMach-Oが最も適する。