買這商品的人也買了...
-
$414面向模式的軟件架構(捲1)-模式系統 (Pattern-Oriented Software Architecture Volume 1: A System of Patterns) -
$165C語言解惑 -
$606大話通信 第2版 -
$232C陷阱與缺陷 -
$894Linux 設備驅動開發 -
$560計算機系統開發與優化實戰 -
$801原子嵌入式 Linux 驅動開發詳解 -
$654構建高性能嵌入式系統 -
最佳能效晶片平台 - ARM64 架構師高度之程式開發$980$833 -
Linux 高性能網絡詳解:從 DPDK、RDMA 到 XDP$713$677 -
$748深入理解 Go 並發編程:從原理到實踐,看這本就夠了 -
SoC 設計指南:基於 Arm Cortex-M$714$678 -
$601碼農翻身2 -
圖解 Linux 核心工作原理|透過實作與圖解學習 OS 與硬體的基礎知識【增訂版】$600$474 -
$550SoC 設計基礎教程 — 技術實現 -
SoC 設計基礎教程 — 系統架構$588$558 -
$473C語言最佳實踐 -
$606SoC 設計高級教程 — 系統架構 -
SoC 設計高級教程 — 技術實現$768$729 -
AI PC 基礎 CPU 架構 - Arm Cortex-M4 STM32F407 HAL 開發實戰$1,080$853 -
$516Git 高效實踐 -
$469從零開始寫 Linux 內核 (一書學透核心原理與實現) -
$365硬件系統模糊測試:技術揭秘與案例剖析 -
Linux 是怎樣工作的 (增訂版)$599$569 -
$351Linux x86 匯編語言視角下的 shellcode 開發與分析
簡體書新到貨|2書75折 (8/16--8/31) 詳見活動內容 »
-
VIP 95折
Altium Designer 實戰攻略與高速 PCB 設計 (配視頻教程)$414$393 -
VIP 95折
CMOS 模擬集成電路版圖設計與驗證 — 基於 Cadence Virtuoso 與 Mentor Calibre$288$273 -
85折
$203光傳輸網絡和設備:SDH 與 PTN -
VIP 95折
RESTful API 開發實戰 : 使用 REST JSON XML 和 JAX-RS 構建微服務 大數據和 Web 服務應用 (Pro RESTful APIs: Design, Build and Integrate with REST, JSON, XML and JAX-RS)$288$273 -
VIP 95折
芯片驗證漫遊指南 : 從系統理論到 UVM 的驗證全視界$594$564 -
VIP 95折
信號完整性與電源完整性分析, 3/e (Signal and Power Integrity - Simplified, 3/e)$774$735 -
85折
$652灰帽黑客, 5/e (Gray Hat Hacking The Ethical Hacker's Handbook, 5/e) -
VIP 95折
卡爾曼濾波理論與實踐:MATLAB 版, 4/e$594$564 -
85折
$402自己動手做推薦引擎 -
85折
$504圖論導引 (原書第2版典藏版) -
$768Python 極簡講義:一本書入門數據分析與機器學習 -
85折
$601用戶體驗度量:收集、分析與呈現 (紀念版) -
VIP 95折
集成電路版圖基礎 — 實用指南$414$393 -
VIP 95折
集成電路設計中的電源管理技術$954$906 -
85折
$504雲原生應用構建:基於 OpenShift -
85折
$504Visual Studio Code 權威指南 -
$714人工智能數學基礎 -
VIP 95折
Effective C++ : 改善程序與設計的 55個具體做法, 3/e (簡體中文版) (Effective C++ : 55 Specific Ways to Improve Your Programs and Designs, 3/e)$534$507 -
VIP 95折
Autodesk Revit MEP 2020 管線綜合設計從入門到精通$599$569 -
VIP 95折
黑客攻防技術寶典 ─ Web 實戰篇, 2/e$719$683 -
85折
$652Linux 多線程服務端編程:使用 muduo C++ 網絡庫 -
85折
$254家用遊戲機簡史 -
VIP 95折
Shader 開發實戰$588$558 -
VIP 95折
自在之境 — Grasshopper 參數化深度建模$588$558 -
VIP 95折
PSIM 電子模擬技術$408$387
相關主題
商品描述
《Linux內核模塊開發技術指南》旨在幫助讀者快速理解Linux內核,並掌握內核模塊開發及性能調優的能力。 本書以Linux 5.10版本內核為藍本,通過對內核工作原理的闡釋與諸多核心模塊的動手實現,詳細介紹了內核模塊相關基礎、並發與互斥、系統調用、內核監控與調試、字符和塊設備驅動、外部中斷、塊I/O調度、文件系統、進程調度、網絡數據 濾、安全模塊等內容。 本書不僅適合初學者學習Linux內核開發的基礎知識,也適合有一定基礎的開發者深入學習 主題和前沿技術。
目錄大綱
第1章 個內核模塊Hello,Linux Kernel 001
1.1 內核模塊的程序構成 001
1.1.1 簡單的內核模塊 002
1.1.2 許可證協議 004
1.1.3 模塊參數 004
1.1.4 模塊導出符號 006
1.1.5 模塊作者 007
1.1.6 描述信息 008
1.2 打印級別 008
1.3 再談Hello,Linux Kenel 009
1.4 常用數據結構 011
1.4.1 鏈表 011
1.4.2 哈希鏈表 011
1.4.3 紅黑樹 012
1.4.4 XArray 013
第2章 proc文件 018
2.1 創建proc文件 018
2.2 文件讀寫 022
2.2.1 數據傳遞接口 022
2.2.2 實現數據讀寫 022
2.3 創建目錄 024
2.4 通過偏移量讀寫文件 025
2.5 打開的文件 027
2.6 移動讀寫位置 029
2.7 目錄項和文件節點 032
2.8 I/O控制操作 039
2.9 小結 042
第3章 內核模塊開發基礎 043
3.1 內核補丁 043
3.1.1 補丁頭 043
3.1.2 補丁塊 044
3.1.3 創建補丁文件 044
3.1.4 安裝補丁文件 045
3.1.5 撤銷補丁文件 046
3.2 常用的內存分配和釋放接口 046
3.2.1 kmalloc和kfree 047
3.2.2 vmalloc和vfree 048
3.2.3 分配連續的內存頁 048
3.2.4 kmem_cache系列函數 048
3.2.5 物理地址和虛擬地址 050
3.2.6 幾種內存分配接口的關系 053
3.3 內存映射 054
3.3.1 mmap系統調用 055
3.3.2 proc文件的mmap操作 056
3.4 獲取未映射內存區域 059
3.5 散布讀 060
3.6 內核線程 064
3.6.1 進程的狀態 064
3.6.2 創建內核線程 067
3.6.3 二號進程 069
3.7 工作隊列 070
3.8 等待隊列 071
3.9 實現wait_event和wake_up 078
3.10 多路覆用 082
3.10.1 select系統調用 082
3.10.2 proc文件的poll操作 084
3.11 定時器 086
3.11.1 毫秒級定時器 086
3.11.2 高精度定時器 089
3.12 延時任務 093
第4章 並發與互斥 095
4.1 信號量 096
4.2 互斥體 098
4.3 完成量 099
4.4 原子操作 102
4.4.1 整型原子操作 103
4.4.2 位原子操作 105
4.5 自旋鎖 105
4.6 讀寫鎖 108
4.7 RCU 111
4.7.1 原理 111
4.7.2 接口及示例 112
4.8 PER_CPU 114
4.8.1 原理 114
4.8.2 相關接口 115
4.8.3 示例程序 116
4.9 死鎖檢測 117
第5章 系統調用 120
5.1 執行系統調用 120
5.1.1 系統調用的執行過程 120
5.1.2 系統調用的三種執行方式 121
5.2 C與匯編 123
5.2.1 C語言和匯編語言函數的參數傳遞 123
5.2.2 內聯匯編 127
5.3 增加系統調用 132
5.4 Linux系統調用的實現方式 136
5.5 通過軟件中斷實現系統調用 138
5.5.1 通過0x80軟件中斷執行系統調用 138
5.5.2 自己動手實現系統調用 140
第6章 監控與調試 141
6.1 kprobe 141
6.1.1 結構體和相關接口 141
6.1.2 示例程序 142
6.2 kretprobe 145
6.2.1 結構體和相關接口 146
6.2.2 示例程序 147
6.3 uprobe 149
6.3.1 結構體和相關接口 149
6.3.2 示例程序 151
6.4 perf 154
6.5 bpftrace 160
6.6 kdump 163
6.6.1 產生vmcore文件 163
6.6.2 查看vmcore文件 163
6.6.3 crash工具 164
6.6.4 crash分析示例 167
6.7 kgdb 170
第7章 字符設備驅動 175
7.1 簡單的字符設備驅動 175
7.1.1 相關接口 175
7.1.2 示例程序 178
7.2 通過字符設備驅動訪問串口 181
7.2.1 串行通信 181
7.2.2 相關寄存器 181
7.2.3 串口接收/發送配置 183
7.2.4 示例程序 183
7.3 通過ioctl操作配置串口參數 188
7.3.1 相關寄存器 188
7.3.2 示例程序 188
第8章 外部中斷 191
8.1 基本概念 191
8.2 通過中斷讀取串口數據 192
8.2.1 相關寄存器 192
8.2.2 相關接口 193
8.2.3 示例程序 194
8.3 中斷底半部 197
8.3.1 工作隊列 197
8.3.2 tasklet 198
8.3.3 軟中斷 200
8.4 常用接口 203
第9章 文件操作 206
9.1 虛擬文件系統(VFS) 206
9.1.1 read系統調用的執行過程 207
9.1.2 VFS管理的對象 208
9.2 write_iter操作 208
9.3 flush操作 211
9.4 flock操作 215
9.5 lock操作 218
9.6 splice_read和splice_write 221
9.6.1 splice系統調用 221
9.6.2 相關結構體和接口 222
9.6.3 示例程序 227
9.7 copy_file_range操作 229
9.7.1 copy_file_range系統調用 229
9.7.2 示例程序 230
9.7.3 remap_file_range 233
0章 塊設備驅動 235
10.1 塊設備 235
10.2 相關概念 236
10.2.1 通用磁盤結構體gendisk 236
10.2.2 塊設備對象block_device 239
10.2.3 I/O處理基本單元bio 240
10.3 個塊設備驅動 244
10.4 塊I/O請求隊列 247
10.4.1 塊I/O請求 247
10.4.2 請求隊列 249
10.4.3 相關接口 251
10.5 在塊設備驅動中使用請求隊列 254
1章 塊I/O調度 257
11.1 塊I/O調度流程 257
11.2 塊I/O調度相關結構體 258
11.3 寫一個塊I/O調度器 265
11.4 Mq-Deadline調度器 269
2章 文件系統 271
12.1 註冊文件系統 271
12.1.1 塊 271
12.1.2 相關接口 273
12.1.3 示例程序 273
12.2 創建 塊 275
12.3 創建根目錄 278
12.4 本級目錄和上級目錄 281
12.5 增加一個文件 285
12.6 增加文件的讀寫操作 288
12.7 動態創建文件 289
12.8 文件的刪除操作 294
12.9 寫一個磁盤文件系統 295
12.9.1 磁盤文件系統 295
12.9.2 註冊並創建 塊 297
12.9.3 目錄下文件的遍歷 304
12.9.4 在根目錄下創建文件 308
12.9.5 讀取文件數據 310
12.9.6 向文件寫入數據 313
3章 文件數據的管理 319
13.1 地址空間 319
13.1.1 數據結構 319
13.1.2 地址空間操作函數 320
13.1.3 文件數據的緩存 323
13.2 在文件系統中使用地址空間 324
13.2.1 相關接口 324
13.2.2 示例程序 327
13.3 小結 332
4章 進程調度 333
14.1 基本概念 333
14.1.1 進程調度器 333
14.1.2 調度實體 338
14.1.3 調度域 338
14.1.4 進程控制塊 341
14.1.5 運行隊列 344
14.1.6 進程調度流程 346
14.2 動手實現進程調度器 347
14.3 公平調度器分析 353
14.3.1 權重和虛擬運行時間 353
14.3.2 負載的計算 355
14.3.3 進程的遷移 357
14.3.4 為新進程/被喚醒進程選擇合適的CPU 360
5章 網絡數據 濾 362
15.1 Netfilter原理 362
15.2 實現 簡單的Netfilter模塊 363
15.3 sk_buff 369
15.3.1 結構體介紹 369
15.3.2 常用接口 373
15.3.3 示例程序 377
15.4 IP數據處理的五條鏈 384
15.4.1 PREROUTING鏈 384
15.4.2 INPUT鏈 385
15.4.3 FORWARD鏈 386
15.4.4 OUTPUT鏈 386
15.4.5 POSTROUTING鏈 387
15.5 連接跟蹤機制 387
15.6 NF Queue 391
15.6.1 將數據包傳遞給應用程序 391
15.6.2 創建並監聽NF Queue套接字 392
15.6.3 示例程序 400
15.7 Iptables 412
15.8 ARP數據 濾 412
6章 Linux安全模塊 415
16.1 LSM的實現原理 415
16.2 編寫一個簡單的LSM模塊 417
16.2.1 打內核補丁 417
16.2.2 編寫LSM模塊 419
16.2.3 控制目錄的創建 422
16.3 理解LSM框架 425
16.4 目錄訪問控制 427
16.5 inode節點訪問控制 430
16.6 文件訪問控制 432
16.7 小結 434
