0408~0410_4月選書

深入Linux Kernel程式設計:kernel內部原理、模組開發與同步機制(第二版)

  • 79 774
    980
  • 分類:
    中文書電腦資訊作業系統Linux
    追蹤
    ? 追蹤分類後,您會在第一時間收到分類新品通知。
  • 作者: Kaiwan N. Billimoria 追蹤 ? 追蹤作者後,您會在第一時間收到作者新書通知。
  • 譯者:廖明沂
  • 出版社: 碁峰資訊 追蹤 ? 追蹤出版社後,您會在第一時間收到出版社新書通知。
  • 出版日:2026/04/24

活動訊息

全館滿$1,200送150點金幣,4月歡慶兒童節,童書、玩具、文具滿1000元再送200點金幣!

內容簡介

專為Linux kernel新手程式設計師與希望深化核心開發能力的工程師所撰寫!是一本兼具系統性與實務導向的程式設計指南。內容循序漸進,從基礎概念出發,引領讀者深入Linux kernel的設計思維與運作核心。

本書以6.1長期支援(LTS,Long-Term Support)的Linux kernel為基礎,該版本具備高度穩定性,並廣泛應用於實務環境中。此外,Civil Infrastructure Project已承諾將6.1超長期支援(SLTS,Super LTS)kernel維護至2033年8月,使本書在未來多年內仍具高度實務與參考價值。

你將從學習如何由原始碼編譯(build)kernel開始,逐步學習如何運用kernel強大的可載入核心模組(LKM,Loadable Kernel Module)架構,撰寫並管理你的第一個kernel模組。在奠定模組開發基礎後,將進一步帶你深入核心內部關鍵主題,包括Linux kernel架構、記憶體管理與CPU(task)排程等重要機制。

最後,本書將聚焦於kernel開發中極為關鍵的——平行性(concurrency),深入說明各種同步與上鎖(locking)技術的設計理念與實務應用,包含mutex、spinlock、atomic/refcount運算子、rw-spinlock,以及per-CPU與RCU等lock-free技術,協助你撰寫更安全、穩定且可擴充的kernel程式碼。

閱讀完本書後,你將能以更宏觀且結構化的視角理解Linux kernel與kernel模組的運作方式,並具備實際應用於真實專案與產品中的能力。內容包括:
■ 從原始碼設定並編譯6.1 LTS Linux kernel
■ 為6.x kernel設計高品質、可維護的模組化程式碼(LKM架構)
■ 探索現代Linux kernel架構設計
■ 掌握kernel內記憶體管理的關鍵細節
■ 理解並使用各種動態kernel記憶體alloc/dealloc API
■ 深入解析kernel內CPU排程機制,包含cgroups v2
■ 洞悉kernel平行性(concurrency)問題與常見陷阱
■ 正確運用關鍵的kernel同步原語(synchronization primitives)

作者

Kaiwan長期深耕Linux系統程式設計,技術橫跨Bash腳本、C語言使用者空間程式開發,以及作業系統層級的Linux kernel內部機制開發與除錯,並參與多項商業與開源專案。
他曾為Linux主線核心提交裝置驅動程式,亦在GitHub上發起多個開源專案。目前專注於Linux kernel強化與安全領域。
二十多年來,他持續培訓工程師,教授Linux作業系統原理與安全、穩定程式設計實務,致力於培養具備紮實核心能力的開發者。

目錄

前言

chapter 1 Linux 核心程式設計 -快速入門
核心工作區設定
技術要求

chapter 2 從原始碼構建 6.x Linux 核心 -第一部分
2-1 技術要求
2-2 核心建構的準備工作
2-3 從原始碼建構 kernel 的步驟
2-4 步驟1:取得 Linux kernel 原始碼樹
2-5 步驟2:提取 kernel 原始碼樹
2-6 步驟3:配置 Linux kernel
2-7 客製化 kernel 選單、Kconfig,並新增選單項目

chapter 3 從原始碼建置 6.x Linux 核心 -第二部分
3-1 技術要求
3-2 步驟4:編譯 kernel 映像檔和模組
3-3 步驟5:安裝核心模組
3-4 步驟6:產生 initramfs 映像和bootloader 設定
3-5 了解 initramfs 框架
3-6 步驟7:自訂 GRUB 開機載入程式
3-7 驗證新核心的設定
3-8 為 Raspberry Pi 編譯核心
3-9 核心編譯的雜項技巧

chapter 4 編寫第一個核心模組 -第一部分
4-1 技術要求
4-2 了解核心架構 - 第一部分
4-3 探索 LKM
4-4 編寫第一個核心模組
4-5 核心模組的常見操作
4-6 了解核心日誌記錄和 printk
4-7 了解核心模組 Makefile 的基本知識

chapter 5 編寫第一個核心模組 -第二部分
5-1 技術要求
5-2 給你的核心模組「更好的」Makefile 範本
5-3 跨平台編譯核心模組
5-4 蒐集最少的系統資訊
5-5 Kernel 模組的授權
5-6 模擬 kernel 模組的「類似函式庫」功能
5-7 將參數傳遞給 kernel 模組
5-8 kernel 中不允許使用浮點數
5-9 在系統開機時自動載入模組
5-10 kernel 模組和資訊安全 - 概述
5-11 Kernel 開發者的程式碼風格指南
5-12 為 mainline kernel 做出貢獻

chapter 6 Kernel 內部基礎 -行程和執行緒
6-1 技術要求
6-2 了解行程和 interrupt context
6-3 了解行程虛擬位址空間的基礎知識
6-4 組織行程、執行緒及其堆疊 - 使用者空間和 kernel 空間
6-5 了解和存取 kernel task 結構
6-6 透過「current」使用 task 結構
6-7 遍歷 kernel 的 task 串列

chapter 7 記憶體管理內部 -要素
7-1 技術要求
7-2 了解 VM 拆分
7-3 檢查行程 VAS
7-4 檢查 kernel VAS
7-5 隨機化記憶體布局 - KASLR
7-6 了解實體記憶體組成

chapter 8 模組作者的核心記憶體分配 -第一部分
8-1 技術要求
8-2 kernel 記憶體配置器簡介
8-3 了解和使用 kernel 分頁配置器(或 BSA)
8-4 了解和使用 Kernel Slab 配置器
8-5 kmalloc API 的大小限制
8-6 Slab 配置器 - 一些補充細節
8-7 使用 slab 配置器的注意事項

chapter 9 模組作者的核心記憶體分配 -第二部分
9-1 技術要求
9-2 建立自訂 slab 快取
9-3 快速說明 kernel 記憶體問題除錯
9-4 了解與使用 kernel 的 vmalloc() API
9-5 Kernel 中的記憶體配置 - 何時使用哪個 API?
9-6 記憶體回收:kernel 的重要家務工作
9-7 生存之道:OOM 終結者

chapter 10 CPU 排程器 -第一部分
10-1 技術要求
10-2 學習 CPU 排程內部機制 - 第一部分:基礎背景
10-3 視覺化流程(Visualizing the flow)
10-4 學習 CPU 排程內部機制 - 第二部分
10-5 查詢指定執行緒的排程政策與優先權
10-6 學習 CPU 排程內部機制 - 第三部分

chapter 11 CPU 排程器 -第二部分
11-1 技術要求
11-2 理解、查詢與設定 CPU 親和性遮罩(affinity mask)
11-3 查詢與設定執行緒的排程政策與優先權
11-4 cgroups 簡介
11-5 讓 Linux 成為 RTOS:簡介
11-6 與排程相關的其他主題

chapter 12 核心同步 -第一部分
12-1 技術要求
12-2 臨界區間、互斥執行與原子性
12-3 Linux kernel 中的平行性問題
12-4 互斥鎖或自旋鎖?何時使用何種鎖
12-5 使用互斥鎖
12-6 使用 spinlock
12-7 上鎖與中斷
12-8 上鎖:常見錯誤和指導原則
12-9 解答

chapter 13 核心同步 -第二部分
13-1 技術要求
13-2 使用 atomic_t 與 refcount_t 介面
13-3 使用 RMW atomic 運算子
13-4 使用讀寫者自旋鎖
13-5 了解 CPU 快取基礎、快取效應和假共享
13-6 使用 per-CPU 和 RCU 達成 Lock-free 程式設計
13-7 Kernel 內的 Lock 除錯
13-8 記憶體屏障簡介

索引

配送方式

  • 台灣
    • 國內宅配:本島、離島
    • 到店取貨:
      金石堂門市 不限金額免運費
      7-11便利商店 ok便利商店 萊爾富便利商店 全家便利商店
  • 海外
    • 國際快遞:全球
    • 港澳店取:
      ok便利商店 順豐 7-11便利商店

詳細資料

詳細資料

    • 語言
    • 中文繁體
    • 裝訂
    • 紙本平裝
    • ISBN
    • 9786264252904
    • 分級
    • 普通級
    • 頁數
    • 912
    • 商品規格
    • 18開17*23cm
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀
    • 注音
    • 級別

商品評價

訂購/退換貨須知

加入金石堂 LINE 官方帳號『完成綁定』,隨時掌握出貨動態:

加入金石堂LINE官方帳號『完成綁定』,隨時掌握出貨動態
金石堂LINE官方帳號綁定教學

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知:

**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide
活動ing