dyld库的版本和架构
- dyld库的版本和架构
- 历史版本
- 最新:
dyld4
- 之前:
dyld3
- 更早:
dyld2
- 对比
- dyld2 vs dyld3
- 图
- 文字
- dyld2 和 dyld3 的主要变化体现在源码上就是 dyld-400 和 dyld-600的版本,比如较低版本的模拟器采用的仍然是 dyld-433 的版本,而 iOS12 之后的真机基本上都采用 dyld-655 以后的版本
- dyld3 在很早就引入,但是一开始只用于 Apple 相关的 App 或者系统库(库还是 App 有待考究)。而在 iOS13 之后,dyld3 正式替代 dyld2,用于加载所有的 App
- dyld-433 版本的源码是比较纯粹 dyld2 的逻辑,而 dyld-655 就能看到很多 dyld3 的优化代码了。dyld3 在流程上有所改进,且源码上也有了很多变化,但是 dyld2 仍然是基础,源码的参考价值仍然比较高,因此本文采用 dyld-433.5 的版本研究 dyld2 的基础流程。偶尔也会对比 dyld-655.1.1 和 dyld-733.6的版本
- 最新:
dyld4
- 源码
- dyld模型
dyld
:包括绝大多数运行时的代码逻辑
libdyld.dylib
:代码量较少,瘦身设计
- 源码结构
- dyld/doc/dyld4.md at main · apple-oss-distributions/dyld
dyld/
- the code that contributes to dyld
libdyld/
- the code that contibutes to libdyld.dylib
cache-builder/
- code for tools such as dyld_usage
, dyld_info
, dyld_shared_cache_builder
, etc
other-tools/
- code for tools such as dyld_usage
, dyld_info
, dyld_shared_cache_builder
, etc
common/
- common code shared between dyld
and cache-builder
include/
- public headers
testing/
- everything used to test dyld
doc/
- man pages and other documentation
configs/
- xcconfig files used by targets
build-scripts/
- shell script phase scripts