作者簡介
笨叔
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 高手完善篇