文章目录
前言
dyld 这种格式的表示是动态链接,编译的时候不会被编译到执行文件中,在程序执行的时候才 link,这样就不用算到包的大小里,而且也能够不更新执行程序就能够更新库。
动态库加载器/usr/lib/dyld,
__DATA segment
的__dyld 是section占位符,用于动态链接器。
Fixup chain 是 Apple 在 iOS15 系统上所应用的一种新的动态链接技术,Fixup chain 可以看作是一个链表,其中每个节点存储了一条如何进行 rebase / bind 操作的信息,并且还带有指向下一个链表地址的信息;dyld 可以逐个节点遍历这条链表,对每个节点根据其提供的信息进行 rebase / bind,最终完成整个 rebase / bind过程。
All programs and dylibs built with a deployment target of macOS 12 or iOS 15 or later now use the chained fixups format. This uses different load commands and LINKEDIT data, and won’t run or load