幫助中心 | 我的帳號 | 關於我們

奔跑吧Linux內核(卷2調試與案例分析第2版)

  • 作者:笨叔|責編:謝曉芳
  • 出版社:人民郵電
  • ISBN:9787115552525
  • 出版日期:2021/03/01
  • 裝幀:平裝
  • 頁數:360
人民幣:RMB 109.9 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書基於Linux 5.0內核的源代碼講述Linux內核的調試技巧和案例。本書共6章,主要內容包括併發與同步,中斷管理,內核調試與性能優化,基於x86_64解決宕機難題,基於ARM64解決宕機難題,安全漏洞分析等。
    本書適合從事Linux系統開發人員、嵌入式系統開發人員及Android開發人員閱讀,也可供電腦相關專業的師生閱讀。

作者介紹
笨叔|責編:謝曉芳
    笨叔,Linux內核愛好者,出版過《奔跑吧Linux內核》《奔跑吧Linux內核入門篇》。創建了奔跑吧Linux社區,為廣大Linux愛好者布道。

目錄
第1章  併發與同步
  1.1  原子操作
    1.1.1  原子操作
    1.1.2  atomic_add()函數分析
    1.1.3  比較並交換指令
  1.2  內存屏障
    1.2.1  經典內存屏障介面函數
    1.2.2  內存屏障擴展介面函數
  1.3  經典自旋鎖
    1.3.1  自旋鎖的實現
    1.3.2  自旋鎖的變體
    1.3.3  spin_lock()和raw_spin_lock()函數
  1.4  MCS鎖
    1.4.1  快速申請通道
    1.4.2  中速申請通道
    1.4.3  慢速申請通道
    1.4.4  釋放鎖
  1.5  排隊自旋鎖
    1.5.1  快速申請通道
    1.5.2  中速申請通道
    1.5.3  慢速申請通道
    1.5.4  釋放鎖
    1.5.5  案例分析:為什麼這裡pending域要清零
    1.5.6  小結
  1.6  信號量
    1.6.1  信號量簡介
    1.6.2  小結
  1.7  互斥鎖
    1.7.1  mutex數據結構
    1.7.2  互斥鎖的快速通道
    1.7.3  互斥鎖的慢速通道
    1.7.4  樂觀自旋等待機制
    1.7.5  mutex_unlock()函數分析
    1.7.6  案例分析
    1.7.7  小結
  1.8  讀寫鎖
  1.9  讀寫信號量
    1.9.1  rw_semaphore數據結構
    1.9.2  申請讀者類型信號量
    1.9.3  釋放讀者類型信號量
    1.9.4  申請寫者類型信號量
    1.9.5  釋放寫者類型信號量
    1.9.6  小結
  1.10  RCU
    1.10.1  關於RCU的一個簡單例子
    1.10.2  經典RCU和Tree RCU
  1.11  案例分析:內存管理中的鎖
    1.11.1  mm->mmap_sem
    1.11.2  mm->page_table_lock
    1.11.3  PG_Locked

    1.11.4  anon_vma->rwsem
    1.11.5  zone->lru_lock
    1.11.6  RCU
    1.11.7  RCU停滯檢測
第 2章  中斷管理
  2.1  中斷控制器
    2.1.1  中斷狀態和中斷觸發方式
    2.1.2  ARM GIC-V2中斷控制器
    2.1.3  關於ARM Vexpress V2P開發板的例子
    2.1.4  關於QEMU虛擬機平台的例子
  2.2  硬體中斷號和Linux中斷號的映射
  2.3  註冊中斷
  2.4  ARM64底層中斷處理
    2.4.1  異常向量表
    2.4.2  IRQ處理
    2.4.3  棧框
    2.4.4  保存中斷上下文
    2.4.5  恢復中斷上下文
  2.5  高層中斷處理
    2.5.1  彙編跳轉
    2.5.2  handle_arch_irq處理
    2.5.3  小結
  2.6  軟中斷和tasklet
    2.6.1  軟中斷
    2.6.2  tasklet
    2.6.3  local_bh_disable()和local_bh_enable()函數分析
    2.6.4  小結
  2.7  工作隊列
    2.7.1  工作隊列的相關數據結構
    2.7.2  工作隊列初始化
    2.7.3  創建工作隊列
    2.7.4  添加和調度一個work
    2.7.5  處理一個work
    2.7.6  取消一個work
    2.7.7  和調度器的交互
    2.7.8  小結
第3章  內核調試與性能優化
  3.1  打造ARM64實驗平台
    3.1.1  使用O0優化等級編譯內核
    3.1.2  QEMU虛擬機 Debian實驗平台
    3.1.3  單步調試ARM64 Linux內核
    3.1.4  以圖形化方式單步調試內核
    3.1.5  單步調試head.S文件
  3.2  ftrace
    3.2.1  irqs跟蹤器
    3.2.2  function跟蹤器
    3.2.3  動態ftrace
    3.2.4  事件跟蹤
    3.2.5  添加跟蹤點
    3.2.6  trace-cmd和kernelshark

    3.2.7  跟蹤標記
    3.2.8  小結
  3.3  內存檢測
    3.3.1  slub_debug
    3.3.2  KASAN內存檢測
  3.4  死鎖檢測
  3.5  內核調試方法
    3.5.1  printk
    3.5.2  動態輸出
    3.5.3  oops分析
    3.5.4  BUG_ON()和WARN_ON()宏分析
  3.6  使用perf優化性能
    3.6.1  安裝perf工具
    3.6.2  perf list命令
    3.6.3  perf record/report命令
    3.6.4  perf stat命令
    3.6.5  perf top命令
  3.7  SystemTap
  3.8  eBPF和BCC
    3.8.1  BCC工具集
    3.8.2  編寫BCC腳本
第4章  基於x86_64解決宕機難題
  4.1  Kdump和Crash工具
  4.2  x86_64架構基礎知識
    4.2.1  通用寄存器
    4.2.2  函數參數調用規則
    4.2.3  棧的結構
    4.2.4  定址方式
    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.11.1  問題描述
    4.11.2  分析ps進程
    4.11.3  分析test進程
    4.11.4  計算一個進程被阻塞了多長時間
第5章  基於ARM64解決宕機難題
  5.1  搭建Kdump實驗環境
  5.2  案例1:一個簡單的宕機案例
  5.3  案例2:恢復函數調用棧
  5.4  案例3:分析和推導參數的值
  5.5  案例4:一個複雜的宕機案例
    5.5.1  分析ps進程
    5.5.2  分析test進程
第6章  安全漏洞分析

  6.1  側通道攻擊
  6.2  CPU熔斷漏洞分析
    6.2.1  亂序執行、異常處理和地址空間
    6.2.2  修復方案:KPTI技術
  6.3  CPU「幽靈」漏洞
    6.3.1  分支預測
    6.3.2  攻擊原理
    6.3.3  修復方案
附錄A  使用DS-5調試ARM64 Linux內核
附錄B  ARM64中的獨佔訪問指令
附錄C  圖解MESI狀態轉換
附錄D  高速緩存與內存屏障

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032