3dwoo大學簡體電腦書店
Linux內核深度解析
( 簡體 字)
作者:余華兵類別:1. -> 作業系統 -> Linux
出版社:人民郵電出版社Linux內核深度解析 3dWoo書號: 51118
詢問書籍請說出此書號!
有庫存
NT售價: 690
出版日:5/1/2019
頁數:622
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787115504111 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第 1章 內核引導和初始化 1
1.1 到哪里讀取引導程序 1
1.2 引導程序 1
1.2.1 入口_start 1
1.2.2 標號reset 2
1.2.3 函數_main 4
1.2.4 函數run_main_loop 6
1.3 內核初始化 8
1.3.1 匯編語言部分 8
1.3.2 C語言部分 11
1.3.3 SMP系統的引導 12
1.4 init進程 15
第 2章 進程管理 17
2.1 進程 17
2.2 命名空間 18
2.3 進程標識符 20
2.4 進程關系 21
2.5 啟動程序 23
2.5.1 創建新進程 23
2.5.2 裝載程序 41
2.6 進程退出 48
2.6.1 線程組退出 49
2.6.2 終止進程 51
2.6.3 查詢子進程終止原因 53
2.7 進程狀態 55
2.8 進程調度 55
2.8.1 調度策略 55
2.8.2 進程優先級 56
2.8.3 調度類 57
2.8.4 運行隊列 59
2.8.5 任務分組 60
2.8.6 調度進程 65
2.8.7 調度時機 75
2.8.8 帶寬管理 85
2.9 SMP調度 93
2.9.1 進程的處理器親和性 93
2.9.2 對調度器的擴展 96
2.9.3 限期調度類的處理器負載均衡 96
2.9.4 實時調度類的處理器負載均衡 98
2.9.5 公平調度類的處理器負載均衡 99
2.9.6 遷移線程 108
2.9.7 隔離處理器 110
2.10 進程的安全上下文 111
第3章 內存管理 113
3.1 概述 113
3.2 虛擬地址空間布局 115
3.2.1 虛擬地址空間劃分 115
3.2.2 用戶虛擬地址空間布局 115
3.2.3 內核地址空間布局 121
3.3 物理地址空間 122
3.4 內存映射 124
3.4.1 應用編程接口 125
3.4.2 數據結構 129
3.4.3 創建內存映射 133
3.4.4 虛擬內存過量提交策略 137
3.4.5 刪除內存映射 139
3.5 物理內存組織 140
3.5.1 體系結構 140
3.5.2 內存模型 140
3.5.3 三級結構 141
3.6 引導內存分配器 144
3.6.1 bootmem分配器 144
3.6.2 memblock分配器 145
3.6.3 物理內存信息 148
3.7 伙伴分配器 151
3.7.1 基本的伙伴分配器 151
3.7.2 分區的伙伴分配器 152
3.7.3 根據可移動性分組 158
3.7.4 每處理器頁集合 162
3.7.5 分配頁 163
3.7.6 釋放頁 181
3.8 塊分配器 184
3.8.1 編程接口 185
3.8.2 SLAB分配器 186
3.8.3 SLUB分配器 197
3.8.4 SLOB分配器 204
3.9 不連續頁分配器 207
3.9.1 編程接口 207
3.9.2 數據結構 208
3.9.3 技術原理 209
3.10 每處理器內存分配器 210
3.10.1 編程接口 210
3.10.2 技術原理 212
3.11 頁表 219
3.11.1 統一的頁表框架 219
3.11.2 ARM64處理器的頁表 222
3.12 頁表緩存 226
3.12.1 TLB表項格式 226
3.12.2 TLB管理 226
3.12.3 地址空間標識符 228
3.12.4 虛擬機標識符 232
3.13 巨型頁 233
3.13.1 處理器對巨型頁的支持 233
3.13.2 標準巨型頁 235
3.13.3 透明巨型頁 245
3.14 頁錯誤異常處理 257
3.14.1 處理器架構特定部分 257
3.14.2 用戶空間頁錯誤異常 266
3.14.3 內核模式頁錯誤異常 283
3.15 反碎片技術 288
3.15.1 虛擬可移動區域 289
3.15.2 內存碎片整理 291
3.16 頁回收 309
3.16.1 數據結構 310
3.16.2 發起頁回收 317
3.16.3 計算掃描的頁數 320
3.16.4 收縮活動頁鏈表 321
3.16.5 回收不活動頁 323
3.16.6 頁交換 325
3.16.7 回收slab緩存 335
3.17 內存耗盡殺手 338
3.17.1 使用方法 338
3.17.2 技術原理 338
3.18 內存資源控制器 340
3.18.1 使用方法 340
3.18.2 技術原理 344
3.19 處理器緩存 370
3.19.1 緩存結構 370
3.19.2 緩存策略 372
3.19.3 緩存維護 374
3.19.4 SMP緩存一致性 378
3.19.5 利用緩存提高性能的編程技巧 383
3.20 連續內存分配器 384
3.20.1 使用方法 385
3.20.2 技術原理 386
3.21 userfaultfd 391
3.21.1 使用方法 391
3.21.2 技術原理 395
3.22 內存錯誤檢測工具KASAN 401
3.22.1 使用方法 401
3.22.2 技術原理 402
第4章 中斷、異常和系統調用 403
4.1 ARM64異常處理 403
4.1.1 異常級別 403
4.1.2 異常分類 404
4.1.3 異常向量表 405
4.1.4 異常處理 407
4.2 中斷 411
4.2.1 中斷控制器 412
4.2.2 中斷域 413
4.2.3 中斷控制器驅動初始化 415
4.2.4 Linux中斷處理 422
4.2.5 中斷線程化 428
4.2.6 禁止/開啟中斷 430
4.2.7 禁止/開啟單個中斷 431
4.2.8 中斷親和性 431
4.2.9 處理器間中斷 432
4.3 中斷下半部 434
4.3.1 軟中斷 435
4.3.2 小任務 441
4.3.3 工作隊列 444
4.4 系統調用 457
4.4.1 定義系統調用 457
4.4.2 執行系統調用 459
第5章 內核互斥技術 463
5.1 信號量 464
5.2 讀寫信號量 465
5.3 互斥鎖 466
5.4 實時互斥鎖 467
5.5 原子變量 468
5.6 自旋鎖 472
5.7 讀寫自旋鎖 476
5.8 順序鎖 478
5.8.1 完整版的順序鎖 479
5.8.2 只提供序列號的順序鎖 481
5.9 禁止內核搶占 482
5.10 進程和軟中斷互斥 483
5.11 進程和硬中斷互斥 483
5.12 每處理器變量 484
5.12.1 靜態每處理器變量 484
5.12.2 動態每處理器變量 484
5.12.3 訪問每處理器變量 485
5.13 每處理器計數器 485
5.14 內存屏障 487
5.14.1 編譯器屏障 488
5.14.2 處理器內存屏障 489
5.14.3 MMIO寫屏障 492
5.14.4 隱含內存屏障 493
5.14.5 ARM64處理器內存屏障 493
5.15 RCU 495
5.15.1 使用方法 496
5.15.2 技術原理 504
5.16 可睡眠RCU 533
5.16.1 使用方法 533
5.16.2 技術原理 534
5.17 死鎖檢測工具lockdep 542
5.17.1 使用方法 543
5.17.2 技術原理 543
第6章 文件系統 548
6.1 概述 548
6.1.1 用戶空間層面 549
6.1.2 硬件層面 549
6.1.3 內核空間層面 550
6.2 虛擬文件系統的數據結構 552
6.2.1 超級塊 552
6.2.2 掛載描述符 554
6.2.3 文件系統類型 555
6.2.4 索引節點 556
6.2.5 目錄項 559
6.2.6 文件的打開實例和打開文件表 561
6.3 注冊文件系統類型 563
6.4 掛載文件系統 564
6.4.1 系統調用mount 566
6.4.2 綁定掛載 567
6.4.3 掛載命名空間 568
6.4.4 掛載根文件系統 574
6.5 打開文件 580
6.5.1 編程接口 580
6.5.2 技術原理 582
6.6 關閉文件 591
6.7 創建文件 593
6.7.1 使用方法 593
6.7.2 技術原理 594
6.8 刪除文件 595
6.8.1 使用方法 595
6.8.2 技術原理 595
6.9 設置文件權限 597
6.9.1 使用方法 597
6.9.2 技術原理 598
6.10 頁緩存 599
6.10.1 地址空間 600
6.10.2 基數樹 601
6.10.3 編程接口 602
6.11 讀文件 602
6.11.1 編程接口 602
6.11.2 技術原理 603
6.12 寫文件 606
6.12.1 編程接口 606
6.12.2 技術原理 607
6.13 文件回寫 610
6.13.1 編程接口 610
6.13.2 技術原理 610
6.14 DAX 618
6.14.1 使用方法 618
6.14.2 技術原理 618
6.15 常用的文件系統類型 621
結束語 622
本書基于4.x版本的Linux內核,介紹了Linux內核的若干關鍵子系統的技術原理。本書主要內容包括內核的引導過程、內核管理和調度進程的技術原理、內核管理虛擬內存和物理內存的技術原理、內核處理異常和中斷的技術原理,以及系統調用的實現方式等。此外,本書還詳細講解了內核實現的各種保護臨界區的互斥技術,以及內核的文件系統。本書內容豐富,深入淺出,通過大量的圖例來描述數據結構之間的關系和函數的執行流程,并結合代碼分析,引導讀者閱讀和理解內核源代碼。
pagetop