特に、私はOS X上のIntel 32のMach-Oバイナリファイル形式を読んでいます.FATヘッダーの後に、最初のアーカイブのオフセットの前にパッディングがたくさんあります。このパディングのポイントは何ですか?パディングのポイントは何ですか?
具体的には、FATヘッダーと最初のアーカイブ(特にmach_header)の間に4000バイト以上のパディングがあります。なぜこれらすべての余分なバイトを含むのですか? OS Xは、すべてのユニバーサルバイナリに4 KBを追加したいと思っていますか?
特に、私はOS X上のIntel 32のMach-Oバイナリファイル形式を読んでいます.FATヘッダーの後に、最初のアーカイブのオフセットの前にパッディングがたくさんあります。このパディングのポイントは何ですか?パディングのポイントは何ですか?
具体的には、FATヘッダーと最初のアーカイブ(特にmach_header)の間に4000バイト以上のパディングがあります。なぜこれらすべての余分なバイトを含むのですか? OS Xは、すべてのユニバーサルバイナリに4 KBを追加したいと思っていますか?
これは、次のセグメントがx86上の仮想メモリページのサイズである4096バイトの境界から開始するように追加されていると思います。 x86(およびPCC)上の仮想メモリは、4kBの倍数であるブロックで割り当てられます。ディスク・フォーマットをメモリ・ページ・サイズと互換性を保つことにより、デマンド・ローディングを容易に実装できます。
ああ、そうだ。あなたはその点にそれを持っています。最初のアーカイブは、0x1000から始まります。これは10進数で4096です。それは感謝します、ありがとう! – ktm5124
4000バイトは4KBでなく4KBです。 – NotMe