深入Linux核心架構與底層原理(第2版)

深入Linux核心架構與底層原理(第2版)

《深入Linux核心架構與底層原理(第2版)》是電子工業出版社出版圖書,作者是劉京洋

主要描述Linux系統的總體框架和設計思想,包含很多可以直接操作的實例。

基本介紹

  • 中文名:深入Linux核心架構與底層原理(第2版)
  • 作者:劉京洋
  • 出版社:電子工業出版社
  • 出版時間:2022年6月 
  • 頁數:568 頁
  • 定價:139 元
  • 開本:16 開
  • ISBN:9787121436895
內容簡介,圖書目錄,作者簡介,

內容簡介

對比較核心且常用的技術點有更加深入的解釋,對實際使用Linux系統工作大有裨益,同時,選擇重點的方向進行源碼級深度分析,包含大量的案例,而且增加了與Windows同類作業系統的對比,涉及Fuchsia OS和Android系統的一些實現,對作業系統的描述更清晰。

圖書目錄

第1章 作業系統總覽 1
1.1 作業系統簡介 1
1.2 如何形成一個核心 4
1.3 主要作業系統與Linux的對比 6
1.3.1 Linux和Android 6
1.3.2 Windows下Linux運行環境的發展 8
1.3.3 Fuchsia OS與Windows、Linux的對比 9
第2章 系統結構 15
2.1 Linux核心整體結構 15
2.1.1 核心模組 17
2.1.2 核心符號表 23
2.2 Linux核心數據結構 25
2.2.1 鍊表與哈希表 25
2.2.2 雙向鍊表 26
2.3 hlist 28
2.3.1 llist 34
2.3.2 樹與IDR 37
2.3.3 xarray 38
第3章 鎖與系統調用 46
3.1 原子操作 47
3.1.1 記憶體一致性 51
3.1.2 原子類型定義 54
3.1.3 cmpxchg實現 56
3.2 引用計數 60
3.3 自旋鎖 65
3.4 讀寫鎖與順序鎖 79
3.5 信號量 82
3.6 讀寫信號量 86
3.6.1 獲得讀鎖 87
3.6.2 鎖狀態與鎖交接 90
3.6.3 鎖持有 92
3.6.4 等待鍊表 94
3.6.5 讀鎖慢速路徑 99
3.7 互斥鎖 103
3.8 RCU鎖 110
3.8.1 RCU鎖基本接口 114
3.8.2 grace period等待 115
3.8.3 SRCU 117
3.8.4 RCU鎖、讀寫鎖與順序鎖對比 118
3.8.5 hlist中的RCU鎖 119
3.8.6 reuseport中的RCU鎖 121
3.9 引用計數 123
第4章 信號、中斷與系統調用 129
4.1 信號 129
4.1.1 Linux信號處理機制的設計 129
4.1.2 Windows的Event語義設計 139
4.2 中斷 141
4.2.1 IDT(中斷描述符表) 141
4.2.2 IPI中斷 148
4.3 系統調用 156
4.3.1 系統調用原理 156
4.3.2 vsyscall與VDSO 163
4.3.3 系統調用截斷 168
第5章 Linux系統的啟動與進程 171
5.1 Linux啟動過程的組件 171
5.1.1 啟動過程相關組件 171
5.1.2 最小系統的製作和啟動 182
5.2 核心啟動流程:EFI stub 183
5.3 進程 199
5.3.1 進程概述 199
5.3.2 進程記憶體和PID 201
5.3.3 進程生命周期 205
第6章 調度 220
6.1 任務調度 220
6.1.1 調度優先權 220
6.1.2 上下文切換 223
6.1.3 運行佇列與調度類 228
6.1.4 調度域、調度組與調度實體 230
6.1.5 TTWU(喚醒) 239
6.2 時鐘 244
6.2.1 時鐘概念 244
6.2.2 計時器與定時器 248
6.3 Futex系統調用 256
6.4 C-State 263
第7章 記憶體管理 275
7.1 地址空間 275
7.1.1 64位Linux地址空間 275
7.1.2 32位Linux地址空間 276
7.2 定址 280
7.2.1 64位下的定址 280
7.2.2 Intel的硬體四級定址過程 284
7.2.3 作業系統的頁狀態和許可權控制 291
7.2.4 頁框回收算法 293
7.2.5 段暫存器 301
7.3 堆記憶體管理 306
7.3.1 用戶空間與核心空間的堆記憶體管理 306
7.3.2 Buddy思想與Slab思想 307
7.3.3 記憶體回收(PFRA) 314
7.3.4 BDI 316
第8章 存儲 319
8.1 VFS 319
8.1.1 檔案句柄與檔案描述符表 319
8.1.2 _alloc_fd、fd_install、dup2與close_on_exec 322
8.1.3 open系統調用 325
8.1.4 flock檔案鎖與檔案內容鎖 328
8.2 通用塊層 339
8.2.1 通用塊層功能概覽 339
8.2.2 bio和bio_set 342
8.2.3 request和request_queue 343
8.2.4 電梯算法 345
8.3 快取層 354
8.3.1 Linux與Windows在快取設計上的不同 354
8.3.2 Linux下的快取機制 355
8.4 檔案系統與Ext4 362
8.4.1 Linux檔案系統的特性與框架 362
8.4.2 檔案系統的種類 367
8.4.3 檔案系統的抽象:VFS 372
8.4.4 Ext4檔案系統實踐 375
8.5 預讀機制 383
8.5.1 預讀機制框架 383
8.5.2 預讀算法 388
第9章 套接字(socket) 393
9.1 socket概覽 393
9.1.1 socket類型與接口 394
9.1.2 Linux socket連線模型 397
9.1.3 Linux socket的鎖 398
9.1.4 epoll

作者簡介

劉京洋,從事Linux核心相關研發十餘年,工作內容包括對核心子系統的實際產業套用。尤其擅長網路研發與性能調優,對Linux之外的作業系統同樣興趣濃厚。在騰訊前沿技術中心從事雲遊戲研發工作。

相關詞條

熱門詞條

聯絡我們