关于Mach-O类型文件那点事
Mach-O文件简介 Mach-O是一种文件格式,是Mach Object文件格式的缩写。 它通常应用于可执行文件,目标代码,动态库,内核转储等中。 Mach-O作为大部分基于Mach核心的操作系统所使用。 如:NeXTSTEP,Darwin和Mac OS X等系统使用这种格式作为其原生可执行文件,库和目标代码的格式。 在NeXTSTEP和Mac OS X中,可以将多个Mach-O文件组合进一个多重架构二进制文件中,以用一个单独的二进制文件支持多种架构的指令集。这种称为胖二进制文件(即:Fat binary文件)。 Mach-O文件类型众多,常见的一些Mach-O文件类型如下: MH_OBJECT 目标文件,平时.o结尾的文件 MH_EXECUTE 可执行文件,我们平时编译后的包中的执行文件 MH_DYLIB 一些动态库,该文件夹下很多/usr/lib/xxx.dylib MH_DSYM 符号文件,编译成功后XXX.app.dSYM Mach-O文件结构布局 Mach-O主要有三部分组成: Header 部分主要描述当前Mach-O文件什么架构,是否Fat二进制文件,CUP类型等等; Load commands 部分主要描述: 1.Mach-O文件中在虚拟内存中空间是如何分配的,从哪个内存地址开始到哪个内存地址结束。 2.不同段在Mach-O文件中的位置,大小分布。 Data