0916~0919_開學季語言展

大師養成起手式:從核心真正了解Linux運作原理

  • 9 792
    880
  • 分類:
    中文書電腦資訊作業系統Linux
    追蹤
    ? 追蹤分類後,您會在第一時間收到分類新品通知。
  • 作者: 笨叔、陳悅 追蹤 ? 追蹤作者後,您會在第一時間收到作者新書通知。
  • 出版社: 深智數位 追蹤 ? 追蹤出版社後,您會在第一時間收到出版社新書通知。
  • 出版日:2021/08/09

活動訊息

想找書的時候,特別想偷看網友的書櫃... 原來大家都在看這本 ↓↓↓

用閱讀開啟視野,讓書成為照亮你人生的光
【金石堂選書】本月推薦您這些好書👉 快來看看

內容簡介

是該好好開始學Linux了!從最紅的Ubuntu Linux動手。
高手不學操作和使用,直接從核心開始,本書甚至教你自己開發一個Linux OS。


想成為真正的作業系統大師,充分了解系統底層的架構,在封閉的Microsoft Windows系統中是無法完成的。只有真正深入Linux中,弄髒你的手,不斷撞牆,不斷打怪,你才能越來越強。但在這看似困難的路途上,如果有一本攻略,幫你避開地雷,讓你能走捷徑,把試誤的時間節省下來,這樣效率才高。
 
本書就是這樣的一本書,本書將Linux系統方面的基礎原理與實驗相互融合,有助讀者深入瞭解Linux系統的原理和精髓,掌握核心技術和方法,提高分析問題與解決問題的能力。

本書特色突出、內容新穎,除了從核心講解之外,更搭配了完整的實驗環境,並且還兼顧了x86和ARM架構,更可以讓你用樹莓派實作一個完整的OS,在玩樂中學Linux,不但有成就感,更讓你在談笑之間,回頭一看,自己已成為Linux大師!

本書特色

.循序漸進地說明 Linux 核心入門知識

Linux 核心龐大而複雜,任何一本厚厚的Linux 核心書都可能會讓人看得昏昏欲睡。因此,對初學者來說,Linux 核心的入門需要循序漸進,一步一個腳印。初學者可以從如何編譯Linux 核心開始入門,學習如何偵錯Linux 核心,動手編寫簡單的核心模組,逐步深入Linux核心的核心模組。

.反映 Linux 核心社區新發展
除了介紹Linux 核心的基本理論之外,本書還介紹了當前Linux 社區中新的開發工具和社區運作方式,比如如何使用Vim 8 閱讀Linux 核心程式,如何使用git 工具進行社區開發,如何參與社區開發等。

.結合 QEMU 偵錯環境說明,並列出大量核心偵錯技巧
在學習Linux 核心時,大多數人希望使用功能全面且好用的圖形化介面來單步偵錯核心。本書會介紹一種單步偵錯核心的方法—基於Eclipse + QEMU + GDB。另外,本書提供首個採用"-O0" 編譯和偵錯Linux 核心的實驗,可以解決偵錯時出現的游標亂跳和 等問題。本書也會介紹實際工程中很實用的核心偵錯技巧,例如ftrace、systemtap、記憶體檢測、鎖死檢測、動態輸出技術等,這些都可以在QEMU + ARM64 實驗平台上驗證。

作者

笨叔

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

陳悅

Linux內核愛好者,主要負責電腦資訊方面的「操作系統」、「彙編語言」與「電腦組成原理」等課程的教學與研究。

目錄

01 Linux 系統基礎知識
1.1 Linux 系統的發展歷史
1.2 Linux 發行版本
1.3 Linux 核心介紹
1.4 如何學習Linux 核心
1.5 Linux 核心實驗入門
 
02 Linux 核心基礎知識
2.1 Linux 常用的編譯工具
2.2 Linux 核心中常用的C 語言技巧
2.3 Linux 核心中常用的資料結構和演算法
2.4 Vim 工具的使用
2.5 git 工具的使用
2.6 實驗
 
03 ARM64 架構基礎知識
3.1 ARM64 架構介紹
3.2 ARMv8 暫存器
3.3 A64 指令集
3.4 ARM64 異常處理
3.5 ARM64 記憶體管理
3.6 實驗平台:樹莓派
 
04 核心編譯和偵錯
4.1 核心設定
4.2 實驗4-1:透過QEMU 虛擬機器偵錯ARMv8 的Linux 核心
4.3 實驗4-2:透過Eclipse + QEMU 單步偵錯核心
 
05 核心模組
5.1 從一個核心模組開始
5.2 模組參數
5.3 符號共用
5.4 實驗
 
06 簡單的字元裝置驅動
6.1 從一個簡單的字元裝置開始
6.2 字元裝置驅動詳解
6.3 misc 機制
6.4 一個簡單的虛擬裝置
6.5 阻塞I/O 和非阻塞I/O
6.6 I/O 多工
6.7 增加非同步通知
6.8 本章小結
 
07 系統呼叫
7.1 系統呼叫的概念
7.2 實驗
 
08 處理程序管理
8.1 處理程序
8.2 處理程序的創建和終止
8.3 處理程序排程3
8.4 多核心排程
8.5 實驗
 
09 記憶體管理
9.1 從硬體角度看記憶體管理
9.2 從軟體角度看記憶體管理
9.3 實體記憶體管理
9.4 虛擬記憶體管理
9.5 缺頁異常
9.6 記憶體短缺
9.7 記憶體管理記錄檔資訊以及偵錯資訊
9.8 記憶體管理實驗
 
10 同步管理

10.1 原子操作與記憶體屏障
10.2 迴旋栓鎖機制
10.3 號誌
10.4 互斥鎖
10.5 讀寫鎖
10.6 RCU
10.7 等待佇列
10.8 實驗
 
11 中斷管理
11.1 Linux 中斷管理機制
11.2 軟體中斷和tasklet
11.3 工作佇列機制
11.4 實驗
 
12 偵錯和性能最佳化
12.1 printk() 輸出函數和動態輸出
12.2 proc 和debugfs
12.3 ftrace
12.4 分析Oops 錯誤
12.5 perf 性能分析工具
12.6 記憶體檢測
12.7 使用kdump 解決當機問題
12.8 性能和測試
 
13 開放原始碼社區
13.1 什麼是開放原始碼社區
13.2 參與開放原始碼社區
13.3 實驗13-1:使用cppcheck檢查程式
13.4 實驗13-2:提交第一個Linux 核心更新
13.5 實驗13-3:管理和提交多個更新組成的更新集
 
14 檔案系統

14.1 檔案系統的基本概念
14.2 檔案系統的基本概念和知識
14.3 虛擬檔案系統層
14.4 檔案系統的一致性
14.5 一次寫入磁碟的全過程
14.6 檔案系統實驗
 
15 虛擬化與雲端運算

15.1 虛擬化技術
15.2 容器技術
15.3 雲端運算
15.4 實驗
 
16 綜合能力訓練:動手寫一個小OS

16.1 實驗準備
16.2 入門動手篇
16.3 進階挑戰篇
16.4 高手完善篇

序/導讀



自從2019 年Linux 社區宣佈了Linux 5.0 的全新版本之後,Linux 社區邁向了全新的發展。2019 年5 月,紅帽公司宣佈了RHEL8 正式發佈,採用Linux 4.18 核心。2020 年4 月,Canonical 公司發佈了全新的Ubuntu Linux 20.04 版本,並且提供長達5 年的支援,這個版本採用了最新的Linux 5.4 核心。從Linux 4.0 核心到目前的Linux 5.4 核心,其間經歷了20 多個版本,加入了很多新特性並且很多核心的設計與實現已經發生了巨大變化。本書由笨叔和陳悅編寫。陳悅第一時間在「作業系統」課程中採用本書作為實驗教材。獲得了非常好的效果。

✤ 本書特色

.基於 Linux 5.0 核心全面修訂。
基於Linux 5.0 核心對第1 版的內容做了全面的修訂和更新。

.以 ARM64 架構作為藍本。
很多公司在探索使用ARM64 架構來建構自己的硬體生態,包括手機晶片、伺服器晶片等,本書基於ARM64 處理器架構介紹Linux 核心的入門與實踐。

.突出動手實驗和能力訓練。
本書擁有不少實驗,透過20 多個實驗逐步實現一個有一定使用價值的小作業系統,從而達到能力訓練的目的。

.以樹莓派作為實驗開發板。
不少讀者已經購買了樹莓派,本書以樹莓派作為硬體開發平台,讀者可以在樹莓派上做實驗。

.循序漸進地說明 Linux 核心入門知識。
Linux 核心龐大而複雜,任何一本厚厚的Linux 核心書都可能會讓人看得昏昏欲睡。因此,對初學者來說,Linux 核心的入門需要循序漸進,一步一個腳印。初學者可以從如何編譯Linux 核心開始入門,學習如何偵錯Linux 核心,動手編寫簡單的核心模組,逐步深入Linux核心的核心模組。

.突出動手實驗。
對於初學者,瞭解作業系統最好的辦法之一就是動手實驗。因此,本書在每章中都設定了幾個經典的實驗,讀者可以在學習基礎知識後透過實驗來加深瞭解。

.反映 Linux 核心社區新發展。
除了介紹Linux 核心的基本理論之外,本書還介紹了當前Linux 社區中新的開發工具和社區運作方式,比如如何使用Vim 8 閱讀Linux 核心程式,如何使用git 工具進行社區開發,如何參與社區開發等。

.結合 QEMU 偵錯環境說明,並列出大量核心偵錯技巧。
在學習Linux 核心時,大多數人希望使用功能全面且好用的圖形化介面來單步偵錯核心。本書會介紹一種單步偵錯核心的方法—基於Eclipse + QEMU + GDB。另外,本書提供首個採用"-O0" 編譯和偵錯Linux 核心的實驗,可以解決偵錯時出現的游標亂跳和 等問題。本書也會介紹實際工程中很實用的核心偵錯技巧,例如ftrace、systemtap、記憶體檢測、鎖死檢測、動態輸出技術等,這些都可以在QEMU + ARM64 實驗平台上驗證。

✤ 本書主要內容

Linux 核心涉及的內容包羅萬象,但本書重點說明Linux 核心的入門和實踐。

本書共有16 章。
第1 章首先介紹什麼是Linux 系統以及常用的Linux 發行版本,然後介紹巨核心和微核心之間的區別,以及如何學習Linux 核心等內容。該章還包括如何安裝Linux 系統、如何編譯Linux 核心等實驗。
第2 章介紹GCC 工具、Linux 核心常用的C 語言技巧、Linux 核心常用的資料結構、Vim 工具以及git 工具等內容。
第3 章主要介紹ARM64 架構以及實驗平台樹莓派的相關知識。第4 章主要說明核心的設定和編譯技巧,實驗包括使用QEMU 虛擬機器來編譯和偵錯ARM 的Linux 核心。
第5 章從一個簡單的核心模組入手,說明Linux 核心模組的編寫方法,實驗圍繞Linux 核心模組展開。
第6 章從如何編寫簡單的字元裝置入手,介紹字元裝置驅動的編寫。
第7 章主要說明系統呼叫的基本概念。
第8 章討論處理程序概述、處理程序的創建和終止、處理程序排程以及多核心排程等內容。
第9 章介紹從硬體角度看記憶體管理、從軟體角度看記憶體管理、實體記憶體管理、虛擬記憶體管理、缺頁異常、記憶體短缺等內容,以及多個與記憶體管理相關的實驗。
第 10 章說明原子操作、記憶體屏障、迴旋栓鎖機制、號誌、讀寫入鎖、RCU、等待佇列等內容。
第11 章介紹Linux 核心中斷管理機制、軟體中斷、tasklet 機制、工作隊列機制等內容。
第12 章討論printk() 輸出函數、動態輸出、proc、debugfs、ftrace、分析Oops 錯誤、perf 性能分析工具、記憶體檢測,以及使用kdump 工具解決當機問題等內容,並介紹偵錯和性能最佳化方面的18 個實驗。
第13 章說明開放原始碼社區、如何參與開放原始碼社區、如何提交更新、如何在Gitee 中創建和管理開放原始碼專案等內容。
第14 章介紹檔案系統方面的知識,包括檔案系統的基礎知識、虛擬檔案系統層、檔案系統的一致性、一次寫入磁碟的全過程、檔案系統實驗等內容。
第 15 章介紹虛擬化與雲端運算方面的入門知識,包括 CPU 虛擬化、記憶體虛擬化、I/O 虛擬化、Docker、Kubernetes 等方面的知識。
第16 章透過20 多個實驗來啟動讀者實現一個小作業系統,並介紹開放性實驗。讀者可以根據實際情況來選做部分或全部實驗。

由於作者知識水準有限,書中難免存在紕漏,敬請各位讀者批評指正。

關於本書的任何問題請發送郵件到runninglinuxkernel@126.com。

✤ 繁體中文出版說明

本書原作者為中國大陸人士,使用簡體中文撰寫,文中少部分圖例無繁體中文版對應產品,為維持全書完整性,維持簡體中文圖例,請讀者對照上下文閱讀。

另全書的執行環境使用優麒麟Linux 20.04 作業系統,優麒麟Linux20.04 為Ubuntu 開發公司Canonical 所開發之中文化之Ubuntu Linux 20.04,和Ubuntu Linux 20.04 完全相容,讀者也可以使用Ubuntu 20.04來進行書中的實驗。

配送方式

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

詳細資料

詳細資料

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

商品評價

訂購/退換貨須知

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

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

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

退換貨須知:

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

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