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. 更新二進制文件信息
- 5. Java更新大型二進制文件
- 6. 更改純虛擬到虛擬,保持二進制兼容的
- 7. 更新iOS二進制不更新MainView NIB
- 8. 更新定製活動二進制文件的更好方法
- 9. 無法將平面二進制文件加載到內核中
- 10. 虛擬內存中ELF二進制文件的佈局
- 11. iPhone:更新後的版本不會更新應用程序二進制文件?
- 12. 更新TFS源代碼管理中的二進制文件
- 13. 如何更新二進制文件中的結構項目
- 14. 更新J2ME中的.txt文件位於二進制包
- 15. 使用C++更新二進制文件中的記錄
- 16. iOS減少App Store更新中的二進制大小
- 17. VMWare如何防止虛擬機更新其日期和時間
- 18. PowerCLI調度虛擬機硬件更新?
- 19. 在用戶配置文件更新期間設計強制更新密碼
- 20. Windows Azure虛擬機,附加新磁盤
- 21. 我想在大二進制文件上更新atime
- 22. 通過/ dev/mtd進行內核更新
- 23. 更改二進制文件
- 24. 從AppStore拒絕更新的二進制
- 25. 讓gdb自動從核心文件加載二進制文件
- 26. 通過下載更新Plist文件iOS
- 27. 在循環期間更新UIProgressBar進度
- 28. 用C++更新二進制文件的一部分
- 29. iTunes上傳新的二進制文件有任何更改。
- 30. 使用Python更新二進制文件的值
但是我聽說iBEC在恢復模式啓動(更新)期間加載內核。 –
你沒有錯,但是在iBEC和iBoot或iBSS和iLLB之間進行二進制比較(你可以從任何32位iOS 10 IPSW中獲得未加密的) - 唯一不同的是標識符('ibec'和' ibot'或'ibss' vs'illb'),其餘的100%是相同的。所以iBEC _is_ iBoot。 – Siguza