精通Linux內核開發( 簡體 字) | |
作者:[印度]拉古·巴拉德瓦杰(Raghu Bharadwaj) | 類別:1. -> 作業系統 -> Linux |
出版社:人民郵電出版社 | 3dWoo書號: 55104 詢問書籍請說出此書號! 有庫存 NT售價: 450 元 |
出版日:9/1/2021 | |
頁數:288 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787115566041 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第 1章 進程、地址空間和線程 1
1.1 進程 1 1.1.1 所謂地址空間的錯覺 2 1.1.2 內核空間和用戶空間 3 1.2 進程描述符 4 1.2.1 進程屬性:關鍵元素 5 1.2.2 進程關系:關鍵元素 8 1.2.3 調度屬性:關鍵元素 9 1.2.4 進程限制:關鍵元素 9 1.2.5 文件描述符表:關鍵元素 11 1.2.6 信號描述符:關鍵元素 11 1.3 內核棧 12 1.4 棧溢出問題 16 1.5 進程創建 17 1.5.1 fork() 17 1.5.2 寫時復制(COW) 18 1.5.3 exec 18 1.5.4 vfork() 19 1.5.5 Linux線程支持 19 1.6 內核線程 21 1.7 進程狀態和終止 29 1.7.1 wait 29 1.7.2 exit 29 1.8 命名空間和cgroup 30 1.8.1 掛載命名空間 30 1.8.2 UTS命名空間 31 1.8.3 IPC命名空間 31 1.8.4 PID命名空間 31 1.8.5 網絡命名空間 31 1.8.6 用戶命名空間 31 1.8.7 cgroup命名空間 32 1.8.8 控制組(cgroup) 32 1.9 小結 33 第 2章 進程調度器 34 2.1 進程調度器 34 2.2 Linux進程調度器設計 35 2.3 運行隊列 39 2.4 調度入口 41 2.5 進程優先級 43 2.6 調度類 44 2.7 完全公平調度類(CFS) 44 2.7.1 CFS計算優先級和時間片 45 2.7.2 CFS運行隊列 45 2.7.3 組調度 46 2.7.4 多核系統下的調度實體 47 2.7.5 調度策略 48 2.8 實時調度類 49 2.8.1 FIFO 49 2.8.2 RR 49 2.8.3 實時組調度 50 2.8.4 deadline調度類(零散任務模型的deadline調度) 50 2.9 調度相關的系統調用 51 2.10 進程搶占 53 2.11 小結 54 第3章 信號管理 55 3.1 信號 55 3.2 信號管理API 58 3.2.1 程序發出信號 61 3.2.2 等待排隊信號 62 3.3 信號數據結構 62 3.3.1 信號描述符 63 3.3.2 被阻塞和掛起的隊列 64 3.3.3 信號處理程序描述符 65 3.4 信號生成和傳遞 66 3.4.1 信號生成調用 66 3.4.2 信號傳遞 69 3.4.3 執行用戶模式處理程序 74 3.4.4 設置用戶模式處理程序幀 75 3.5 重新啟動被中斷的系統調用 78 3.6 小結 80 第4章 內存管理和分配器 81 4.1 初始化操作 81 4.2 區域和節點 87 4.2.1 內存區域 87 4.2.2 內存節點 89 4.3 內存分配 97 4.3.1 頁幀分配器 98 4.3.2 GFP掩碼 105 4.3.3 slab分配器 110 4.3.4 vmalloc 122 4.3.5 連續內存分配器(CMA) 124 4.4 小結 125 第5章 文件系統和文件I/O 126 5.1 文件系統—高層視圖 126 5.1.1 元數據 127 5.1.2 操作 132 5.1.3 附加功能 134 5.2 Linux內核中的文件系統 135 5.3 通用文件系統接口 138 5.4 特殊文件系統 153 5.4.1 procfs 154 5.4.2 sysfs 156 5.4.3 debugfs 157 5.5 小結 157 第6章 進程間通信 158 6.1 管道和FIFO 158 6.2 消息隊列 163 6.2.1 System V消息隊列 163 6.2.2 POSIX消息隊列 165 6.3 共享內存 167 6.3.1 System V共享內存 167 6.3.2 POSIX共享內存 170 6.4 信號量 171 6.4.1 System V信號量 171 6.4.2 POSIX信號量 173 6.5 小結 174 第7章 虛擬內存管理 175 7.1 進程地址空間 175 7.1.1 進程內存描述符 177 7.1.2 頁表 193 7.2 小結 195 第8章 內核同步和鎖 196 8.1 原子操作 196 8.1.1 原子整數操作 197 8.1.2 原子位操作 198 8.2 排斥鎖 199 8.2.1 自旋鎖 199 8.2.2 互斥鎖 207 8.2.3 信號量 217 8.2.4 順序鎖 221 8.2.5 完成鎖 223 8.3 小結 226 第9章 中斷和延遲工作 227 9.1 中斷信號和向量 227 9.2 可編程中斷控制器 229 9.2.1 中斷控制器操作 230 9.2.2 IRQ描述符表 232 9.3 高級中斷管理接口 235 9.3.1 注冊一個中斷處理程序 235 9.3.2 注銷一個中斷處理程序 237 9.3.3 線程化中斷處理程序 237 9.3.4 控制接口 240 9.3.5 中斷棧 241 9.4 延遲工作 241 9.4.1 softirq 242 9.4.2 tasklet 244 9.4.3 工作隊列 248 9.5 小結 252 第 10章 時鐘和時間管理 253 10.1 時間表示 253 10.2 硬件抽象 257 10.3 Linux計時數據結構體、宏以及輔助函數 260 10.3.1 jiffies 260 10.3.2 timeval和timespec 262 10.3.3 跟蹤和維護時間 264 10.3.4 節拍和中斷處理 265 10.3.5 節拍設備 267 10.4 軟件定時器和延遲函數 267 10.4.1 動態定時器 268 10.4.2 帶有動態定時器的競爭條件 270 10.4.3 動態定時器處理 271 10.4.4 延遲函數 271 10.5 POSIX時鐘 272 10.6 小結 273 第 11章 模塊管理 274 11.1 內核模塊 274 11.1.1 LKM的要素 274 11.1.2 加載和卸載操作 277 11.2 小結 288 《精通Linux內核開發》介紹了Linux內核、內核的內部編排與設計,以及內核的各個核心子系統等知識。本書分為11章,具體內容包括:進程、地址空間和線程;進程調度器;信號管理;內存管理和分配器;文件系統和文件I/O;進程間通信;虛擬內存管理;內核同步和鎖;中斷和延遲工作;時鐘和時間管理;模塊管理。
《精通Linux內核開發》篇幅短小精悍,通過大量代碼輔助介紹Linux內核的相關開發工作。通過學習本書,讀者可以深入理解Linux內核的核心服務與機制,了解這個集中了集體智慧的Linux內核在保持其良好設計的同時,是如何保持其優雅特性的。 《精通Linux內核開發》適合Linux內核開發人員、底層開發人員閱讀,還適合希望深入理解Linux內核及其各組成部分的系統開發人員學習。高校軟件工程專業的學生也可以將本書當作了解Linux內核設計原理的參考指南。 |