(Translated by https://www.hiragana.jp/)
Mach-O - Wikipedia コンテンツにスキップ

Mach-O

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
Mach-O
拡張子かくちょうしなし、.o.dylib
種別しゅべつバイナリ実行じっこう可能かのうオブジェクト共有きょうゆうライブラリコアダンプ

Mach-O(まーく・おー)はコンパイラ生成せいせいするオブジェクトファイルおよび実行じっこうファイルファイルフォーマットである。NEXTSTEP由来ゆらいし、macOS標準ひょうじゅんバイナリファイルフォーマットとして採用さいようされている。

複数ふくすうアーキテクチャバイナリ保持ほじすること可能かのうである。(ファットバイナリ)

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

FatHeader
アーキテクチャのかずふくむ。なくてもよい。
fat_arch
FatHeaderののちつづく。CPU種類しゅるいなどをふくむ。FatHeaderがある場合ばあいのみ存在そんざいする。
MachHeader
CPU種類しゅるい、ファイルの種類しゅるい、ロードコマンドのかずふくむ。
ロードコマンド
MachHeaderののちにロードコマンドがいくつかつづく。これはセグメント情報じょうほう実行じっこうされるときのレジスタ初期しょき指定していする。

実行じっこうファイルとしてからだをなすにはロードコマンドはすくなくともセグメントコマンドとスレッドコマンドが必要ひつようである。

Carbonアプリケーションではオブジェクトファイル・実行じっこうファイルのフォーマットとしてPreferred Executable Format (PEF) とMach-Oの双方そうほう利用りようできるが、macOSの機能きのう利用りようするにはMach-Oがもっとてきする。