描述
內容簡介
|
作者簡介
劉盼盼
有十多年專案工作經驗,包括手機、汽車、晶片,目前就職於晶片大廠,任Google開發者社區優秀講師,騰訊技術訓練營導師,科技公司合夥人,善於挖掘技術背後的本質。 |
目錄
第1 章 記憶體管理
1.1 記憶體管理的機制 1.1.1 分段機制 1.1.2 分頁機制 1.2 CPU 存取記憶體的過程 1.2.1 PN/PFN/PT/PTE 1.2.2 MMU 中的TLB 和TTW 1.2.3 一級分頁表映射過程 1.2.4 為什麼使用多級分頁表 1.3 記憶體架構和記憶體模型 1.3.1 Linux 記憶體模型 1.3.2 Linux 記憶體映射 1.4 memblock 實體記憶體的初始化 1.4.1 early boot memory 1.4.2 memblock 的資料結構 1.4.3 memblock 的初始化 1.5 memblock 實體記憶體的映射 1.5.1 paging_init 函式 1.5.2 create_pgd_mapping 函式 1.6 實體記憶體的軟體劃分 1.6.1 劃分的資料結構 1.6.2 劃分的初始化 1.7 分頁幀分配器的實現 1.8 分頁幀分配器的快速分配之水位控制 1.8.1 水位的初始化 1.8.2 水位的判斷 1.9 分頁幀分配器的快速分配之夥伴系統 1.9.1 相關的資料結構 1.9.2 夥伴演算法申請分頁 1.9.3 夥伴演算法釋放分頁 1.10 分頁幀分配器的慢速分配之記憶體回收 1.10.1 資料結構 1.10.2 程式流程 1.11 分頁幀分配器的慢速分配之記憶體碎片規整 1.11.1 什麼是記憶體碎片化 1.11.2 規整碎片化分頁的演算 1.11.3 資料結構 1.11.4 規整的三種方式
第2 章 處理程序管理 2.1 核心對處理程序的描述 2.1.1 透過task_struct 描述處理程序 2.1.2 如何獲取當前處理程序 2.2 使用者態處理程序/ 執行緒的建立 2.2.1 fork 函式 2.2.2 vfork 函式 2.2.3 pthread_create 函式 2.2.4 三者之間的關係 2.3 do_fork 函式的實現 2.3.1 copy_process 函式 2.3.2 wake_up_new_task 函式 2.4 處理程序的排程 2.4.1 處理程序的分類 2.4.2 排程相關的資料結構 2.4.3 排程時刻 2.4.4 排程演算法 2.4.5 CFS 排程器 2.4.6 選擇下一個處理程序 2.4.7 處理程序上下文切換 2.5 多核心系統的負載平衡 2.5.1 多核架構 2.5.2 CPU 拓撲 2.5.3 排程域和排程組 2.5.4 何時做負載平衡 2.5.5 負載平衡的基本過程
第3 章 同步管理 3.1 原子操作 3.2 自旋鎖 3.3 訊號量 3.4 互斥鎖 3.5 RCU
第4 章 檔案系統 4.1 磁碟 4.1.1 磁碟類型 4.1.2 磁碟讀寫資料 4.2 磁碟的分區 4.3 磁碟上資料的分佈 4.4 查看檔案系統的檔案 4.4.1 檔案系統物件結構 4.4.2 查看分區資訊 4.4.3 查看超級區塊 4.4.4 查看區塊群組描述符號 4.5 ext4 檔案系統 4.5.1 磁碟版面配置 4.5.2 ext3 版面配置 4.5.3 ext4 中的inode 4.5.4 ext4 檔案定址 4.6 查詢檔案test 的過程 4.7 虛擬檔案系統 4.7.1 檔案系統類型(file_system_type) 4.7.2 超級區塊(super_block) 4.7.3 目錄項(dentry) 4.7.4 索引節點(inode) 4.7.5 檔案物件(file)
第5 章 系統呼叫 5.1 系統呼叫的定義 5.2 系統呼叫的處理流程 5.2.1 使用者態的處理 5.2.2 核心態的處理
第6 章 SoC 啟動 6.1 Uboot 啟動前的工作 6.1.1 連結指令稿和程式入口 6.1.2 鏡像容器 6.1.3 SPL 的啟動 6.1.4 ATF 的啟動 6.2 Uboot 的初始化過程 6.2.1 Uboot 的啟動 6.2.2 Uboot 驅動的初始化 6.2.3 Uboot 的互動原理 6.3 kernel 的初始化過程 6.3.1 核心執行的第一行程式 6.3.2 head.S 的執行過程 6.3.3 內核子系統啟動的全過程
第7 章 裝置模型 7.1 裝置模型的基石 7.1.1 裝置模型是什麼 7.1.2 裝置模型的實現 7.2 裝置模型的探究 7.2.1 匯流排、裝置和驅動模型 7.2.2 裝置樹的出現 7.2.3 各級裝置的展開
第8 章 裝置樹原理 8.1 裝置樹的基本用法 8.1.1 裝置樹的結構 8.1.2 裝置樹的語法 8.2 裝置樹的解析過程 8.3 裝置樹常用of 操作函式 8.3.1 查詢節點的of 函式 8.3.2 查詢父/ 子節點的of 函式 8.3.3 提取屬性值的of 函 8.3.4 其他常用的of 函式
第9 章 電源模組 9.1 電源子系統的power domain 9.1.1 power domain 的硬體實現 9.1.2 power domain 的軟體實現 9.2 電源子系統的runtime pm 9.2.1 runtime pm 在核心中的作用 9.2.2 runtime pm 的軟體流程 9.2.3 suspend/resume 的過程
第10 章 時鐘模組 10.1 時鐘控制器的硬體實現 10.1.1 Clock Source 10.1.2 Clock Root 10.1.3 Clock Gate 10.2 時鐘控制器的驅動實現 10.3 時鐘子系統的實現 10.3.1 時鐘子系統之Clock Provider 10.3.2 時鐘子系統之Clock Consumer
第11 章 接腳模組 11.1 IOMUX 控制器的工作原理 11.1.1 IOMUX 控制器的硬體實現 11.1.2 接腳的使用 11.2 pinctrl 驅動和client device 使用過程 11.2.1 pinctrl_desc 結構 11.2.2 IOMUX 控制器驅動初始化 11.2.3 client device 使用過程
第12 章 時間模組 12.1 計時器和計時器的初始化 12.1.1 local timer 的初始 12.1.2 system counter 的初始化 12.2 計時器的應用 12.2.1 高解析度計時器 12.2.2 低解析度計時器 12.2.3 sched_timer
第13 章 中斷模組 13.1 中斷控制器(GIC)硬體原理 13.1.1 GIC v3 中斷類別 13.1.2 GIC v3 組 13.1.3 中斷路由 13.1.4 中斷處理狀態機 13.1.5 中斷處理流程 13.2 中斷控制器的驅動實現 13.3 中斷的映射 13.3.1 資料結構 13.3.2 中斷控制器註冊irq_domain 13.3.3 外接裝置硬中斷和虛擬中斷編號的映射關係 13.4 中斷的註冊 13.5 中斷的處理 13.5.1 保護現場 13.5.2 中斷處理 13.5.3 恢復現場 |
序
|