iOS之深入解析App启动dyld加载流程的底层原理
生活随笔
收集整理的這篇文章主要介紹了
iOS之深入解析App启动dyld加载流程的底层原理
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
dyld 簡介
一、什么是dyld?
- dyld 是英文 the dynamic link editor 的簡寫,意為動(dòng)態(tài)鏈接器,是蘋果操作系統(tǒng)的一個(gè)重要的組成部分。
- 在 iOS/Mac OSX 系統(tǒng)中,僅有很少量的進(jìn)程只需要內(nèi)核就能完成加載,基本上所有的進(jìn)程都是動(dòng)態(tài)鏈接的,所以 Mach-O 鏡像文件中會(huì)有很多對外部的庫和符號(hào)的引用,但是這些引用并不能直接用,在啟動(dòng)時(shí)還必須要通過這些引用進(jìn)行內(nèi)容的填補(bǔ),這個(gè)填補(bǔ)工作就是由 動(dòng)態(tài)鏈接器dyld 來完成的,也就是符號(hào)綁定。
- 動(dòng)態(tài)鏈接器 dyld 在系統(tǒng)中以一個(gè)用戶態(tài)的可執(zhí)行文件形式存在,一般應(yīng)用程序會(huì)在 Mach-O 文件部分指定一個(gè) LC_LOAD_DYLINKER 的加載命令,此加載命令指定了 dyld 的路徑,通常它的默認(rèn)值是 /usr/lib/dyld 。
- 系統(tǒng)內(nèi)核在加載 Mach-O 文件時(shí),都需要用 dyld(位于 /usr/lib/dyld )程序進(jìn)行鏈接。
- dyld 源碼下載地址:dyld 源碼。
二、dyld
總結(jié)
以上是生活随笔為你收集整理的iOS之深入解析App启动dyld加载流程的底层原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS之深入解析objc_msgSend
- 下一篇: iOS之深入解析dyld与ObjC关联的