特别是,我正在OS X上读取Intel 32的Mach-O二进制文件格式。在FAT头之后,在第一个存档的偏移之前有一大堆填充。所有这些填充的重点是什么?
更具体地说,FAT标头和第一个存档(特别是mach_header)之间有超过4000字节的填充。为什么包括所有这些额外的字节?! OS X是否喜欢为所有通用二进制文件添加4 KB?
答案 0 :(得分:6)
我的猜测是添加它是为了确保下一个段以4096字节边界开始,即x86上虚拟内存页面的大小。 x86(和PCC)上的虚拟内存以块大小分配,块大小为4kB。保持光盘格式与内存页面大小兼容,使需求加载更容易实现。