奔跑吧 Linux內核

奔跑吧 Linux內核 pdf epub mobi txt 電子書 下載2025

出版者:人民郵電齣版社
作者:張天飛
出品人:異步圖書
頁數:760
译者:
出版時間:2017-9-1
價格:CNY 158.00
裝幀:平裝
isbn號碼:9787115465023
叢書系列:
圖書標籤:
  • Linux
  • 內核
  • 操作係統
  • 計算機
  • kernel
  • OS
  • 編程
  • 操作係統,內核,OS
  • Linux
  • 內核
  • 編程
  • 操作係統
  • 驅動開發
  • 高性能計算
  • 係統編程
  • 雲計算
  • 嵌入式
  • 實戰教程
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

本書內容基於Linux4.x內核,主要選取瞭Linux內核中比較基本和常用的內存管理、進程管理、並發與同步,以及中斷管理這4個內核模塊進行講述。全書共分為6章,依次介紹瞭ARM體係結構、Linux內存管理、進程調度管理、並發與同步、中斷管理、內核調試技巧等內容。本書的每節內容都是一個Linux內核的話題或者技術點,讀者可以根據每小節前的問題進行思考,進而圍繞問題進行內核源代碼的分析。

本書內容豐富,講解清晰透徹,不僅適閤有一定Linux相關基礎的人員,包括從事與Linux相關的開發人員、操作係統的研究人員、嵌入式開發人員及Android底層開發人員等學習和使用,而且適閤作為對Linux感興趣的程序員的學習用書,也可以作為大專院校相關專業師生的學習用書和培訓學校的教材。

著者簡介

張天飛,筆名“笨叔叔”。Linux內核愛好者,從事Linux內核和驅動開發十餘年,在多傢芯片公司從事過手機芯片底層軟件開發和客戶支持工作。

圖書目錄

LINUX內核奔跑捲 1
第1章 處理器體係結構 4
本章思考題 4
第2章 內存管理 32
本章思考題 32
2.1 物理內存初始化 36
2.1.1 內存管理概述 36
2.1.2 內存大小 37
2.1.3 物理內存映射 38
2.1.4 zone初始化 40
2.1.5 空間劃分 44
2.1.6 物理內存初始化 45
2.2 頁錶的映射過程 51
2.2.1 ARM32頁錶映射 51
2.2.2 ARM64頁錶映射 60
2.3 內核內存的布局圖 67
2.3.1 ARM32內核內存布局圖 67
2.3.2 ARM64內核內存布局圖 70
2.4 分配物理頁麵 72
2.4.1 夥伴係統分配內存 72
2.4.2 釋放頁麵 85
2.4.3 小結 89
2.5 slab分配器 90
2.5.1 創建slab描述符 91
2.5.2 分配slab對象 103
2.5.3 釋放slab緩衝對象 108
2.5.4 kmalloc分配函數 111
2.5.5 小結 112
2.6 vmalloc 113
2.7 VMA操作 120
2.7.1 查找VMA 122
2.7.2 插入VMA 124
2.7.3 閤並VMA 129
2.7.4 紅黑樹例子 131
2.7.5 小結 133
2.8 malloc 133
2.8.1 brk實現 134
2.8.2 VM_LOCK情況 138
2.8.3 小結 148
2.9 mmap 150
2.9.1 mmap概述 151
2.9.2 小結 153
2.10 缺頁中斷處理 155
2.10.1 do_page_fault() 157
2.10.2 匿名頁麵缺頁中斷 165
2.10.3 文件映射缺頁中斷 169
2.10.4 寫時復製 175
2.10.5 小結 183
2.11 page引用計數 184
2.11.1 struct page數據結構 185
2.11.2 _count和_mapcount的區彆 188
2.11.3 頁麵鎖PG_Locked 192
2.11.4 小結 192
2.12 反嚮映射RMAP 192
2.12.1 父進程分配匿名頁麵 193
2.12.2 父進程創建子進程 198
2.12.3 子進程發生COW 200
2.12.4 RMAP應用 201
2.12.5 小結 202
2.13 迴收頁麵 204
2.13.1 LRU鏈錶 204
2.13.2 kswapd內核綫程 216
2.13.3 balance_pgdat函數 219
2.13.4 shrink_zone函數 228
2.13.5 shrink_active_list函數 233
2.13.6 shrink_inactive_list函數 238
2.13.7 跟蹤LRU活動情況 244
2.13.8 Refault Distance算法 244
2.13.9 小結 249
2.14 匿名頁麵生命周期 251
2.14.1 匿名頁麵的誕生 251
2.14.2 匿名頁麵的使用 252
2.14.3 匿名頁麵的換齣 252
2.14.4 匿名頁麵的換入 254
2.14.5 匿名頁麵銷毀 254
2.15 頁麵遷移 254
migrate_pages()函數 255
2.16 內存規整(memory compaction) 262
2.16.1 內存規整實現 263
2.16.2 小結 272
2.17 KSM 273
2.17.1 KSM實現 274
2.17.2 匿名頁麵和KSM頁麵的區彆 293
2.17.3 小結 294
2.18 Dirty COW內存漏洞 296
2.19 總結內存管理數據結構和API 309
2.19.1 內存管理數據結構的關係圖 309
2.19.2 內存管理中常用API 312
2.20 最新更新和展望 315
2.20.1 頁麵迴收策略從zone遷移到node 315
2.20.2 OOM Killer改進 316
2.20.3 swap優化 317
2.20.4 展望 318
第3章 進程管理 319
本章思考題 319
3.1 進程的誕生 320
3.1.1 init進程 321
3.1.2 fork 325
3.1.3 小結 344
3.2 CFS調度器 345
3.2.1 權重計算 346
3.2.2 進程創建 358
3.2.3 進程調度 369
3.2.4 scheduler tick 379
3.2.5 組調度 382
3.2.6 PELT算法改進 386
3.2.7 小結 387
3.3 SMP負載均衡 389
3.3.1 CPU域初始化 389
3.3.2 SMP負載均衡 401
3.3.3 喚醒進程 415
3.3.4 調試 421
3.3.5 小結 422
3.4 HMP調度器 422
3.4.1 初始化 423
3.4.2 HMP負載調度 425
3.4.3 新創建的進程 436
3.4.4 小結 437
3.5 NUMA調度器 438
3.5.1 node和page的關係 439
3.5.2 掃描進程 441
3.5.3 NUMA缺頁中斷 442
3.5.4 進程遷移 450
3.5.5 小結 455
3.6 EAS綠色節能調度器 457
3.6.1 能效模型 459
3.6.2 WALT算法 465
3.6.3 喚醒進程 480
3.6.4 CPU動態調頻 491
3.6.5 小結 494
3.7 實時調度 496
3.8 最新更新與展望 500
3.8.1 進程管理更新 500
3.8.2 展望 500
第4章 並發與同步 501
本章思考題 501
4.1 原子操作與內存屏障 503
4.1.1 原子操作 503
4.1.2 內存屏障 506
4.2 spinlock 508
4.2.1 spinlock實現 509
4.2.2 spinlock變種 511
4.2.3 spinlock和raw_spin_lock 512
4.3 信號量 513
4.3.1 信號量 513
4.3.2 小結 516
4.4 Mutex互斥體 517
4.4.1 MCS鎖機製 518
4.4.2 Mutex鎖的實現 525
4.4.3 小結 531
4.5 讀寫鎖 531
4.5.1 讀者信號量 532
4.5.2 寫者鎖 538
4.5.3 小結 544
4.6 RCU 544
4.6.1 經典RCU和Tree RCU 547
4.6.2 Tree RCU設計 551
4.6.3 小結 573
4.7 內存管理中的鎖 574
4.8 最新更新與展望 584
4.8.1 Queued Spinlock 584
4.8.2 讀寫信號量優化 591
4.8.3 展望 592
4.8.4 推薦書籍 593
第5章 中斷管理 594
本章思考題 594
5.1 Linux中斷管理機製 595
5.1.1 ARM中斷控製器 595
5.1.2 硬件中斷號和Linux中斷號的映射 599
5.1.3 注冊中斷 610
5.1.4 ARM底層中斷處理 618
5.1.5 高層中斷處理 626
5.1.6 小結 636
5.2 軟中斷和tasklet 637
5.2.1 SoftIRQ軟中斷 638
5.2.2 tasklet 642
5.2.3 local_bh_disable/local_bh_enable 647
5.2.4 小結 649
5.3 workqueue工作隊列 650
5.3.1 初始化工作隊列 652
5.3.2 創建工作隊列 659
5.3.3 調度一個work 665
5.3.4 取消一個work 675
5.3.5 和調度器的交互 680
5.3.6 小結 682
第6章 內核調試 684
6.1 QEMU調試Linux內核 684
6.1.1 QEMU運行ARM Linux內核 684
6.1.2 QEMU調試ARM Linux內核 687
6.1.3 QEMU運行ARMv8開發平颱 688
6.1.4 文件係統支持 690
6.1.5 圖形化調試 691
6.1.6 實驗進階 693
6.2 ftrace 694
6.2.1 irqs跟蹤器 695
6.2.2 preemptoff跟蹤器 696
6.2.3 preemptirqsoff跟蹤器 697
6.2.4 function跟蹤器 698
6.2.5 動態ftrace 699
6.2.6 事件跟蹤 700
6.2.7 添加tracepoint 702
6.2.8 trace-cmd和kernelshark 705
6.2.9 trace marker 707
6.2.10 小結 709
6.3 SystemTap 710
6.4 內存檢測 714
6.4.1 slub_debug 714
6.4.2 內存泄漏檢測kmemleak 718
6.4.3 kasan內存檢測 720
6.5 死鎖檢測 722
6.6 內核調試秘籍 728
6.6.1 printk 728
6.6.2 動態打印 730
6.6.3 RAM Console 731
6.6.4 OOPS分析 731
6.6.5 BUG_ON()和WARN_ON() 734
· · · · · · (收起)

讀後感

評分

評分

評分

評分

評分

用戶評價

评分

稍微認真一下就能找到幾處錯誤,而且誤導性很強。連陳莉君自己的書裏也是重大錯誤幾處,真懷疑這些寫書的人都是不寫代碼,隻讀代碼的人。寫齣的代的都會Panic

评分

僅僅是還行!本書亮點隻有一個就是每章都有些可以思考的問題, 不知道有多少來自實踐. 本書連VFS都沒講, 整個內核被割裂瞭. 不建議閱讀.

评分

不錯吧

评分

講得很細,內存管理、進程調度、並發同步、中斷管理4個部分用瞭600多頁,但是很難懂,啃不下去。不推薦初學者讀,屬於沒讀懂係列。

评分

僅僅是還行!本書亮點隻有一個就是每章都有些可以思考的問題, 不知道有多少來自實踐. 本書連VFS都沒講, 整個內核被割裂瞭. 不建議閱讀.

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有