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

圖解Linux內核(基於6.x)/Linux技術與應用叢書

  • 作者:編者:姜亞華|責編:丁華
  • 出版社:機械工業
  • ISBN:9787111745471
  • 出版日期:2024/04/01
  • 裝幀:平裝
  • 頁數:390
人民幣:RMB 139 元      售價:
放入購物車
加入收藏夾

內容大鋼
    全書共五篇,以從易到難的順序詳細剖析了Linux內核開發的核心技術。「知識儲備篇」介紹了Linux的數據結構、中斷處理、內核同步和時間計算等內容,這些是理解後續章節的前提;之後通過「內存管理篇」「文件系統篇」「進程管理篇」詳細介紹了Linux的三大核心模塊;最後的「綜合應用篇」則融合了前面諸多模塊知識展示了Linux內核開發在操作系統、智能設備、驅動、通信、晶元、雲計算和人工智慧等熱點領域的應用。書中的重點、難點均配有圖表、代碼和實戰案例,力求直觀、清晰。
    學習本書的讀者需要熟悉C語言,建議對Linux內核有一定了解。推薦初學者按照本書的編排順序閱讀,而熟悉Linux內核的讀者可以跳過知識儲備篇,直接從三大核心模塊篇進行閱讀。
    本書深入淺出、配圖豐富,可作為Linux初中級讀者系統學習Linux內核開發的指導手冊,也可作為從事嵌入式、操作系統、Linux編程、驅動/內核開發,以及智能設備開發的工程師的案頭指南和進階工具書。

作者介紹
編者:姜亞華|責編:丁華
    姜亞華,曾負責華為手機的Touch、Sensor的驅動和軟體優化(包括Mate、榮耀等系列),以及Intel安卓平台Camera和Sensor的驅動開發(包括Baytrail、Cherrytrail、Cherrytrail CR、Sofia等);現負責DMA、Interrupt、Semaphore等模塊的優化和驗證(包括Vega、Navi系列和多款APU產品。)。     一直從事與Linux內核和Linux編程相關的工作,研究內核代碼十多年,對多數模塊的細節如數家珍。熟悉Linux程序,對Linux常見機制的使用理解透徹。曾在華為終端軟體精英賽中獲獎,三次獲得AMD Spotlight獎勵。

目錄

前言
知識儲備篇
  第1章  Linux內核概述
    1.1  基於Linux的操作系統生態
    1.2  【圖解】Linux工程師技能和領域
    1.3  內核代碼結構
    1.4  【看圖說話】Android操作系統
  第2章  數據結構和設計模式
    2.1  【圖解】關係型數據結構
      2.1.1  一對一關係
      2.1.2  一對多關係
      2.1.3  多對多關係
    2.2  【圖解】內核中常見的設計模式
      2.2.1  模板方法設計模式
      2.2.2  觀察者設計模式
    2.3  【看圖說話】input子系統
  第3章  中斷
    3.1  【圖解】中斷處理的軟硬體分工
    3.2  中斷的處理
      3.2.1  註冊中斷服務常式
      3.2.2  中斷處理和返回
    3.3  軟中斷
      3.3.1  tasklet小任務
      3.3.2  timer定時器
    3.4  【看圖說話】系統調用與程序優化
  第4章  Linux的時間
    4.1  數據結構
    4.2  時間的衡量
      4.2.1  時鐘晶元
      4.2.2  時間的計算
    4.3  【圖解】時鐘中斷
    4.4  【看圖說話】timer和hrtimer
內存管理篇
  第5章  內存定址
    5.1  DRAM和MMIO
    5.2  【圖解】內存分頁
      5.2.1  定址
      5.2.2  內存映射
    5.3  【看圖說話】訪問GPU的Framebuffer
  第6章  物理內存的管理
    6.1  【圖解】物理內存的布局
      6.1.1  【圖解】node
      6.1.2  【圖解】node的管理
    6.2  物理內存申請的三個階段
      6.2.1  啟動程序
      6.2.2  memblock分配器
      6.2.3  夥伴系統
    6.3  【看圖說話】搭建管理物理內存的系統
  第7章  虛擬內存的管理

    7.1  線性空間的劃分
    7.2  【圖解】內核線性空間布局
      7.2.1  直接映射區
      7.2.2  動態映射區
      7.2.3  永久映射區
      7.2.4  固定映射區
    7.3  用戶空間內存映射mmap
      7.3.1  數據結構
      7.3.2  mmap的實現
    7.4  【看圖說話】/dev/mem的巧用和限制
  第8章  內存管理進階
    8.1  內存申請
      8.1.1  申請連續物理內存
      8.1.2  vmalloc的使用
    8.2  緩存
      8.2.1  TLB緩存
      8.2.2  內存緩存
    8.3  【圖解】缺頁異常
      8.3.1  異常的處理
      8.3.2  COW的精髓
    8.4  【看圖說話】看似簡單的malloc
  第9章  內存回收
    9.1  【圖解】內存回收調用棧
    9.2  掃描過程的控制
    9.3  選擇掃描對象
    9.4  掃描inactive鏈表
      9.4.1  頁隔離
      9.4.2  folio的原理
      9.4.3  回收隔離頁
      9.4.4  掃尾
    9.5  掃描active鏈表
    9.6  【看圖說話】反向映射
      9.6.1  匿名映射的mapping
      9.6.2  文件映射的mapping
文件系統篇
  第10章  虛擬文件系統
    10.1  數據結構
    10.2  【圖解】文件系統的掛載
    10.3  文件查找
    10.4  文件操作
      10.4.1  軟鏈接和硬鏈接
      10.4.2  創建和刪除
      10.4.3  打開和關閉文件
      10.4.4  創建節點
      10.4.5  刪除文件
    10.5  文件的IO
      10.5.1  讀寫
      10.5.2  ioctl操作
    10.6  【看圖說話】proc文件系統
  第11章  sysfs文件系統

    11.1  基本框架
    11.2  數據結構
    11.3  創建文件
    11.4  文件的IO
    11.5  【看圖說話】sysfs和驅動
  第12章  ext4文件系統
    12.1  【圖解】ext4布局
    12.2  數據結構
      12.2.1  ext4_super_block結構體
      12.2.2  ext4_group_desc結構體
      12.2.3  ext4_inode結構體
      12.2.4  ext4_sb_info結構體
      12.2.5  ext4_inode_info結構體
    12.3  ext4的掛載
    12.4  【圖解】ext4目錄結構
      12.4.1  線性
      12.4.2  哈希樹
      12.4.3  硬鏈接
    12.5  【圖解】ext4文件的IO
      12.5.1  映射
      12.5.2  區段樹
    12.6  【看圖說話】文件的恢復
進程管理篇
  第13章  進程
    13.1  概述
      13.1.1  數據結構
      13.1.2  擴展討論
    13.2  進程的創建
      13.2.1  dup_task_struct函數
      13.2.2  複製creds
      13.2.3  設置時間
      13.2.4  sched_fork函數
      13.2.5  複製資源
      13.2.6  申請pid
      13.2.7  重要的雜項
    13.3  創建進程
      13.3.1  fork/vfork系統調用
      13.3.2  創建線程
      13.3.3  創建內核線程
    13.4  進程「三巨頭」
    13.5  進程退出
      13.5.1  退出方式
      13.5.2  退出過程
      13.5.3  使用wait等待子進程
    13.6  【看圖說話】Android的thread
  第14章  進程調度
    14.1  數據結構
    14.2  進程調度的過程
      14.2.1  進程被創建
      14.2.2  喚醒進程

      14.2.3  時鐘中斷
      14.2.4  進程切換
    14.3  stop調度類
    14.4  實時調度類
      14.4.1  優先順序和搶佔
      14.4.2  task_tick_rt函數
      14.4.3  選擇下一個進程
    14.5  【圖解】完全公平調度類
      14.5.1  task_fork_fair函數
      14.5.2  enqueue_task和check_preempt
      14.5.3  task_tick_fair函數
      14.5.4  進程切換
    14.6  最後期限調度類
    14.7  idle調度類
    14.8  進程優先順序
    14.9  【看圖說話】idle進程
  第15章  進程通信
    15.1  經典的管道
      15.1.1  創建pipe
      15.1.2  pipe的操作
      15.1.3  命名管道
    15.2  POSIX通信
      15.2.1  POSIX信號量
      15.2.2  POSIX共享內存
      15.2.3  POSIX消息隊列
    15.3  XSI通信
      15.3.1  IPC對象的key和id
      15.3.2  XSI信號量
      15.3.3  XSI消息隊列
      15.3.4  XSI共享內存
    15.4  【看圖說話】多線程和多進程
  第16章  信號
    16.1  數據結構
    16.2  捕捉信號
    16.3  發送信號
    16.4  【圖解】信號處理的過程
      16.4.1  處理信號的時機和方式
      16.4.2  處理信號后如何返回
    16.5  【看圖說話】監控文件的IO
綜合應用篇
  第17章  玩轉操作系統——程序的執行
    17.1  【圖解】elf文件
      17.1.1  概述
      17.1.2  文件格式
    17.2  exec函數族
      17.2.1  數據結構
      17.2.2  系統調用
    17.3  【看圖說話】main函數的來龍去脈
  第18章  玩轉操作系統——IO多路復用
    18.1  select機制

    18.2  poll機制
    18.3  【圖解】epoll
      18.3.1  數據結構
      18.3.2  epoll的使用
    18.4  【看圖說話】改良管道通信
  第19章  玩轉操作系統——Binder通信
    19.1  【圖解】Binder通信的原理
    19.2  Binder的流程
      19.2.1  ServiceManager進程管理服務
      19.2.2  註冊和獲取服務
      19.2.3  服務的過程
    19.3  Binder的驅動
    19.4  【看圖說話】使用Binder讓設計變清晰
  第20章  玩轉驅動——Linux設備驅動模型
    20.1  數據結構
    20.2  【圖解】probe
    20.3  再論匯流排
    20.4  【看圖說話】觸摸屏的驅動
  第21章  玩轉驅動——智能設備的Camera
    21.1  Camera在智能設備中的應用
    21.2  【圖解】V4L2架構
      21.2.1  數據結構
      21.2.2  ioctl操作
    21.3  Camera的核心ioctl操作
    21.4  【看圖說話】安卓的Camera的架構
  第22章  玩轉雲計算、虛擬化——KVM
    22.1  【圖解】KVM原理
    22.2  KVM的實現
      22.2.1  硬體上的Intercept
      22.2.2  CPU虛擬化
    22.3  【看圖說話】KVM和QEMU
  第23章  玩轉雲計算、虛擬化——設備虛擬化
    23.1  【圖解】virtio
      23.1.1  設備端實現
      23.1.2  驅動端實現
    23.2  【圖解】VFIO
      23.2.1  原理
      23.2.2  VFIO驅動
    23.3  【看圖說話】QEMU的virtio設備
附錄
  附錄A  內存初始化
    A.1  內存識別
    A.2  內存加入夥伴系統
    A.3  內存熱插拔
  附錄B  內核同步
    B.1  競爭
    B.2  同步原語
      B.2.1  每cpu變數
      B.2.2  volatile關鍵字
      B.2.3  屏障

      B.2.4  atomic變數
      B.2.5  禁中斷
      B.2.6  禁搶佔
      B.2.7  自旋鎖
      B.2.8  讀寫鎖
      B.2.9  順序鎖
      B.2.10  信號量
      B.2.11  互斥鎖
      B.2.12  讀-拷貝-更新
  附錄C  內嵌彙編語言
    C.1  基本格式
    C.2  擴展格式
  附錄D  鏈接腳本
    D.1  編譯的基本過程
    D.2  內核的鏈接腳本

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們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