大師功力再昇華:實作 Linux 核心偵錯及實戰演練

大師功力再昇華:實作 Linux 核心偵錯及實戰演練

作者: 笨叔
出版社: 深智數位
出版在: 2021-08-19
ISBN-13: 9789860776201
ISBN-10: 9860776202
裝訂格式: 平裝
總頁數: 544 頁





內容描述


Linux大師才讀核心,5.0最新版,適用X86及ARM64,洗禮一次,位列神人之境!
會操作Linux不算什麼,看懂核心,並針對核心進行深入的研究,解決維護運行時所出現的難題,並且在了解核心後,針對整個系統進最佳化,這才是當代Linux大師該有的高度。
本書特色
    深入說明Linux核心模組
本書主要講解Linux核心中核心模組的實現,因此以Linux 5.0核心為研究對象,主要針對ARM64架構講解,也提及了x86_64架構方面的部分內容。
    未來的趨勢Linux核心
近幾年,作業系統和開放原始碼軟體的研究氣氛越來越濃厚,大公司開始以Linux核心打造自己的作業系統,包括手機作業系統、伺服器作業系統、IoT(物聯網)嵌入式系統等。另外,很多公司開始探索使用ARM64架構來建構自己的硬體生態系統,包括手機晶片、伺服器晶片等。
    實戰出擊,溫故知新
本書以實戰案例出發點,對讀者提升實戰能力有非常大的幫助。另外也新增了解決當機難題的實戰案例。在實際專案中,我們常常會遇到系統當機(如手機當機、伺服器當機等),因此本書複習了多個當機案例,最精彩的就是利用Kdump+Crash工具來詳細分析如何解決當機難題,相當深入核心內部了。


目錄大綱


01 併發與同步
1.1 原子操作
1.2 記憶體屏障
1.3 經典迴旋栓鎖
1.4 MCS 鎖
1.5 排隊迴旋栓鎖
1.6 號誌
1.7 互斥鎖
1.8 讀寫鎖
1.9 讀寫訊號量
1.10 RCU
1.11 案例分析:記憶體管理中的鎖
02 中斷管理
2.1 中斷控制器
2.2 硬體中斷號和Linux 中斷號的映射
2.3 註冊中斷
2.4 ARM64 底層中斷處理
2.5 ARM64 高層中斷處理
2.6 軟體中斷和tasklet 
2.7 工作佇列
03 核心偵錯與性能最佳化
3.1 打造ARM64 實驗平台
3.2 ftrace
3.3 記憶體檢測
3.4 鎖死檢測
3.5 核心偵錯方法
3.6 使用perf 最佳化性能
3.7 SystemTap
3.8 eBPF 和BCC
04 基於x86_64 解決當機難題
4.1 Kdump 和Crash 工具
4.2 x86_64 架構基礎知識
4.3 在CentOS 7.6 中安裝和設定Kdump 和Crash
4.4 crash 命令 
4.5 案例1:一個簡單的當機案例
4.6 案例2:存取被刪除的鏈結串列
4.7 案例3:一個真實的驅動崩潰案例 
4.8 鎖死檢查機制
4.9 案例4:一個簡單的鎖死案例
4.10 案例5:分析和推導參數的值
4.11 案例6:一個複雜的當機案例
4.12 關於Crash 工具的偵錯技巧整理
05 基於ARM64 解決當機難題
5.1 架設Kdump 實驗環境
5.2 案例1:一個簡單的當機案例
5.3 案例2:恢復函數呼叫堆疊
5.4 案例3:分析和推導參數的值
5.5 案例4:一個複雜的當機案例
06 安全性漏洞分析
6.1 側通道攻擊
6.2 CPU 熔斷漏洞分析
6.3 CPU「幽靈」漏洞
A 使用DS-5 偵錯
ARM64 Linux 核心
A.1 DS-5 社區版下載和安裝
A.2 使用DS-5 偵錯核心的優勢
A.3 FVP 模擬器使用
A.4 單步偵錯核心
B ARM64 中的獨佔存取指令
C 圖解MESI 狀態轉換
C.1 初始化狀態為I
C.2 初始化狀態為M 
C.3 初始化狀態為S 
C.4 初始化狀態為E 
D 快取記憶體與記憶體屏障
D.1 儲存緩衝區與寫入記憶體屏障
D.2 無效佇列與讀取記憶體屏障
D.3 記憶體屏障指令複習
D.4 ARM64 的記憶體屏障指令的區別


作者介紹


笨叔
Linux核心愛好者,出版過多本Linux書籍,如<練核心從裡強到外:全面了解Linux基礎架構>。建立了「奔跑吧Linux社區」,為廣大Linux愛好者佈道。




相關書籍

Pro Cryptography and Cryptanalysis with C++20: Creating and Programming Advanced Algorithms

作者 Mihailescu Marius Iulian Nita Stefania Loredana

2021-08-19

精通 QTP-自動化測試技術領航

作者 餘傑 趙旭斌

2021-08-19

天線設計 IE3D 應用手冊

作者 黃智裕 夏偉鈞

2021-08-19