MachO格式

MachO格式MachO(MachObject)格式文件可在Mac及iOS环境上执行,类似于windows上的PE格式文件(PortableExecutable轻量级执行文件),linux系统上的elf格式文件(Executable

MachO(MachObject)格式文件可在Mac及iOS环境上执行,类似于windows上的PE格式文件(Portable Executable轻量级执行文件),linux系统上的elf格式文件(Executable and Linking Format)
file/pod体系脚本命令
xxx体系脚本命令
交互环境型应用

轻量级执行文件

Mac/iOS系统:MachO(MachObject)格式文件
windows系统:PE(Portable Executable)格式文件
linux系统:elf(Executable and Linking Format)格式文件


MachO格式轻量级执行文件:用于可执行文件/目标代码/动态库。

文件遵循MachO格式
目标代码
目标文件.o

库文件
.a
.dylib
.Framework

可执行文件
dyld
.dsym

终端Bash语法脚本命令

File指令(file体系脚本命令)eg: file -v/file –help
通过约定标记file进行文件类型操作符操作。

通用二进制文件(Universal binary)
苹果公司提出的程序码文件,能同时适应多种架构的二进制文件。
同一个程序包中通过各种二进制文件为多种架构提供最理想的性能。
平台通用型二进制编码程序包通常会比单一型特定平台的二进制编码程序包容量要大,但由于不同架构间有共通的非执行资源,所以通用型程序包并不会达到单一版本的两倍多
而且由于运行时特性实际执行时只调用一部分代码并开辟该部分代码对应数据写入所需要内存空间,不需要额外多余的内存占用。


lipo命令(lipo体系脚本命令)
lipo -info //-info指令符查看MachO格式文件中涉及到的架构引入

$lipo -info MachO 文件

lipo -thin拆分某种架构

$lipo MachO 文件 -thin架构 -output 输出文件路径

lipo -create 合并多种架构

$lipo -create MachO1 MachO2 -output 输出文件路径

MachO格式文件结构分层
MachO格式文件本身是一种带有某种MachO格式的文件
在这里插入图片描述
MachO格式的结构分层如图所示(总体3层):
Header区域包含该二进制文件的一般特性信息:字节顺序,架构类型,加载指令的数量等。可以快速确认一些特性信息,如当前文件用于32还是64位/对应的处理器是什么/文件类型是什么。

LoadCommands加载命令集(包含很多内容的 命令符号表):涉及区域的位置/符号表/动态符号表。

今天的文章MachO格式分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/72684.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注