1

特别是,我正在阅读 OS X 上 Intel 32 的 Mach-O 二进制文件格式。在 FAT 标头之后,在第一个存档的偏移量之前有一大堆填充。所有这些填充有什么意义?

更具体地说,在 FAT 头和第一个存档(特别是 mach_header)之间有超过 4000 字节的填充。为什么要包含所有这些额外的字节?!OS X 是否喜欢在其所有通用二进制文件中添加 4 KB?

4

1 回答 1

6

我的猜测是添加它是为了确保下一段从 4096 字节边界开始,即 x86 上虚拟内存页面的大小。x86(和 PCC)上的虚拟内存是按块分配的,块的大小是 4kB 的倍数。保持磁盘格式与内存页面大小兼容使得按需加载更容易实现。

于 2010-12-27T23:06:35.930 回答