1
A
回答
2
沒有一個,這不是如何ramdisks工作。
對於初學者來說,內核使用ramdisk進行操作,而不是相反。對於我迄今在任何平臺上看到的任何內核ramdisk對都是如此。
此外,從iOS的ramdisk二進制文件是所有用戶態二進制,這意味着:
- 它們依賴於動態連接器(
/usr/lib/dyld
)和系統庫。 - 他們依靠系統調用。
- 它們依賴於文件系統的可用性。
- 它們運行在EL0(「userland」),最低特權處理器模式。
如果任何那些想加載內核,將有一系列的問題與:
- 內核在運行EL1。如果你在EL0中運行,那麼你沒有權限訪問EL1中的任何東西,因此不能在那裏放置任何內核。
- 鏈接庫和系統調用在EL1工作非常不同:
- 系統庫中未提供EL1。我想他們可能是可用,但由於在任何給定時間只能有一個在EL1中執行的二進制文件,這聽起來像是一個巨大的矯枉過正。
- iOS中存在EL1的鏈接器(KXLD),但是它是iOS內核的一部分,其設計用於將內核擴展鏈接到內核。它不在用戶級二進制文件上運行。
- 儘管在技術上你可以從EL1中產生一個例外,並且使用
svc
指令來激活EL1,但你自己會被調用來處理它,這意味着在加載內核之前,你的是的內核。 Userland二進制文件不能爲此準備。
這就是說,我不知道你的圖像所要表達的。我最好的猜測是,這意味着表示的虛擬盤是傳遞給內核的。無論如何,iBoot是加載和設置內核的一個。
相關問題
- 1. 定期更新虛擬機時間
- 2. 強制更新虛擬CListCtrl
- 3. 更新二進制文件信息
- 4. 更新iOS二進制不更新MainView NIB
- 5. 更新定製活動二進制文件的更好方法
- 6. 無法將平面二進制文件加載到內核中
- 7. iOS減少App Store更新中的二進制大小
- 8. 使用C++更新二進制文件中的記錄
- 9. PowerCLI調度虛擬機硬件更新?
- 10. 通過下載更新Plist文件iOS
- 11. 通過/ dev/mtd進行內核更新
- 12. 從AppStore拒絕更新的二進制
- 13. 讓gdb自動從核心文件加載二進制文件
- 14. 用C++更新二進制文件的一部分
- 15. 更新boost庫而不影響現有的二進制文件
- 16. 使用Python更新二進制文件的值
- 17. JPA - 更新二進制數據
- 18. 回購二進制更新CM
- 19. 在html頁面中更新javascript並在更新後強制重新加載?
- 20. iOS不更新JavaScript文件
- 21. 如何在Linux shell中更新二進制文件中的一個字節?
- 22. MySQL:在更新期間添加數字
- 23. iTunes:如何更新二進制文件並上傳到Appstore?
- 24. 更新二進制文件沒有覆蓋它 - 「ç
- 25. 更新我的網站/虛擬主機?
- 26. ELMAH在虛擬主管上尋找二進制文件
- 27. Linux中的二進制文件加載時間
- 28. 內核開發新手:內核中的「虛擬」輸入驅動程序?
- 29. Java:更新jar文件時加載類
- 30. 下載期間使用swingworker更新JProgressBar
但是我聽說iBEC在恢復模式啓動(更新)期間加載內核。 –
你沒有錯,但是在iBEC和iBoot或iBSS和iLLB之間進行二進制比較(你可以從任何32位iOS 10 IPSW中獲得未加密的) - 唯一不同的是標識符('ibec'和' ibot'或'ibss' vs'illb'),其餘的100%是相同的。所以iBEC _is_ iBoot。 – Siguza