2010-12-27 9 views
0

特に、私はOS X上のIntel 32のMach-Oバイナリファイル形式を読んでいます.FATヘッダーの後に、最初のアーカイブのオフセットの前にパッディングがたくさんあります。このパディングのポイントは何ですか?パディングのポイントは何ですか?

具体的には、FATヘッダーと最初のアーカイブ(特にmach_header)の間に4000バイト以上のパディングがあります。なぜこれらすべての余分なバイトを含むのですか? OS Xは、すべてのユニバーサルバイナリに4 KBを追加したいと思っていますか?

+2

4000バイトは4KBでなく4KBです。 – NotMe

答えて

6

これは、次のセグメントがx86上の仮想メモリページのサイズである4096バイトの境界から開始するように追加されていると思います。 x86(およびPCC)上の仮想メモリは、4kBの倍数であるブロックで割り当てられます。ディスク・フォーマットをメモリ・ページ・サイズと互換性を保つことにより、デマンド・ローディングを容易に実装できます。

+0

ああ、そうだ。あなたはその点にそれを持っています。最初のアーカイブは、0x1000から始まります。これは10進数で4096です。それは感謝します、ありがとう! – ktm5124

関連する問題