看了一下維基
iOS
Darwin (作業系統)
微架構
接下來先暫停程式部分,想來了解計算機組織和這些專有名詞。
來學習計算機組織,和看懂維基百科的每一行。
以下內容全部來自維基百科 ,之後就是看一些文章,整理一下覺得是重點的部分
iOS的主要硬體為ARM架構
在iOS 7之前的版本只能在具有32位元ARM處理器的裝置上運行iOS(ARMv6或ARMv7-A架構)。
隨著Apple A7晶片的推出後,他們正在轉而使用64位元ARMv8-A處理器
iOS 7發布時提供了完整的64位元的支援(包括本機64位元核心、程式庫、驅動程式以及所有內建應用程式)
位址空間組態(ASLR)是一種防止記憶體損壞的攻擊的低階技術,例如是緩衝區溢位。
iOS是使用ARM架構下的Execute Never(XN)功能。此容許某些部分的記憶體被標記為不可執行,它與ASLR一起防止緩衝區的溢位攻擊,包括Return-to-libc攻擊。
iOS越獄(英語:iOS Jailbreaking)是獲取iOS裝置的Root權限的技術手段
人們需要進行越獄的原因有很多,包括:
1 獲得進入檔案系統的權限
2 安裝自訂的裝置主題
3 修改SpringBoard
4 可以啟用盜版應用程式的安裝。
在某些裝置上,越獄也可以用於安裝替代作業系統,例如是Android和Linux核心。
使用Root用戶進行的進程於進程樹中的PID為0。
程式員會在iOS中挖掘到一些可以把進程提權至PID0的漏洞(例如Task For PID0)。
利用Root用戶進行的進程意味著可以任意讀取裝置中的APFS分割區表和核心快取位址。
擁有一個用戶可以隨意控制的PID0進程還不能稱之為一個完整的越獄。
隨後還需要利用Bypass(旁路)手段繞過蘋果公司於iOS系統中設定的其他安全防護措施:
把APFS或HFS+檔案系統中的ROOTFS分割區重新掛載(Remount)為可讀寫(R/W),從而達到添加二進制檔案及守護進程的目的。
進行了「不完美越獄(Tethered Jailbreak)」,裝置將於重啟後失去越獄環境,需要用特定的軟體重新進入越獄環境。
iOS的核心是以Darwin的XNU。
Darwin是由蘋果公司於2000年所釋出的一個開放原始碼作業系統。
Darwin是一種類Unix作業系統,包含開放原始碼的XNU核心,其以微核心為基礎的核心架構來實作Mach
Darwin也有對稱多處理器的優點,高效能的網路設施和支援多種整合的檔案系統。
Darwin的核心是XNU,它是一種混合核心。
混合核心設計使其具備了了微核心的靈活性和單核心的效能
微架構(英語:microarchitecture),也被叫做計算機組織,微架構使得指令集架構(ISA)可以在處理器上被執行。
流水線化的電路藉由允許多個指令在同一時間,在電路上不同的位置進行不同的工作。例如,處理器可以在最後一個指令等待結果寫回時對另一個指令解碼。這使得處理器在同一時間可以處理四個指令,使處理器的效能增加了四倍。
每個階段花費1個cycle的時間。處理器使用了有如工廠流水線的設計,當指令由一邊進來的同時就有另一個指令從另一邊出去。由於RISC流水線是降低複雜度的設計,使得流水線核心跟指令快取可以被裝置在同一個晶片內,這是精簡指令集較為快速的原因。早期的裝置,例如SPARC和MIPS比Intel和Motorola的CISC還快10倍。
發展RISC處理器是一個好的策略,可以將指令給簡化。這樣的指令容易在管線內被擷取,解碼與執行,由於指令頻繁的被使用,快取便被頻繁的使用,這樣就使記憶體存取的時間降低。
Zen 2微架構 - AMD在2019年推出的微架構,CPU晶片採用7奈米製程。
接下來先以這系列教學,來學習
Gate Computer Organization-1 | Introduction to Computer Organization