Binary 填充的意义是什么?

Binary 填充的意义是什么?,binary,universal,machine-code,mach-o,Binary,Universal,Machine Code,Mach O,特别是,我正在阅读操作系统X上英特尔32的Mach-O二进制文件格式。在FAT头之后,在第一个存档的偏移量之前有一大堆填充。这些填充物有什么意义 更具体地说,FAT头和第一个归档文件(特别是mach_头)之间有超过4000字节的填充。为什么要包含所有这些额外的字节?!OS X喜欢在其所有通用二进制文件中添加4KB吗?我猜添加4KB是为了确保下一段以4096字节边界开始,即x86上虚拟内存页的大小。x86和PCC上的虚拟内存以块的形式分配,块大小为4kB的倍数。保持光盘格式与内存页大小兼容使按需加

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


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

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

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

4000字节只差4KB,而不是4MB。4000字节只差4KB,而不是4MB。啊,我明白了。你准时到了。第一个存档从0x1000开始,十进制为4096。这很有道理,谢谢!啊,我明白了。你准时到了。第一个存档从0x1000开始,十进制为4096。这很有道理,谢谢!