Linux內(nèi)核分析資源簡介
本課程從理解計算機硬件的核心工作機制(存儲程序計算機和函數(shù)調(diào)用堆棧)和用戶態(tài)程序如何通過系統(tǒng)調(diào)用陷入內(nèi)核(中斷異常)入手,通過上下兩個方向雙向夾擊的策略,并利用實際可運行程序的反匯編代碼從實踐的角度理解操作系統(tǒng)內(nèi)核,然后開始分析Linux內(nèi)核源代碼,從系統(tǒng)調(diào)用陷入內(nèi)核,進程調(diào)度與進程切換,最后返回到用戶態(tài)進程,通過仔細分析梳理這一過程,并推廣到硬件中斷、缺頁異常等內(nèi)核執(zhí)行路徑,最終能從本質(zhì)上把握Linux內(nèi)核的實質(zhì),乃至在頭腦中演繹Linux系統(tǒng)的運行過程。
課程目錄
1.存儲程序計算機工作模型
2.X86匯編基礎(chǔ)
3.反匯編一個簡單的C程序分析其匯編指令執(zhí)行過程
4.操作系統(tǒng)是如何工作的?
5.利用mykernel實驗?zāi)M計算機硬件平臺
6.在mykernel基礎(chǔ)上構(gòu)造一個簡單的操作系統(tǒng)內(nèi)核
7.Linux內(nèi)核源代碼簡介
8.構(gòu)造一個簡單的Linux系統(tǒng)
9.跟蹤調(diào)試Linux內(nèi)核的啟動過程
10.用戶態(tài)、內(nèi)核態(tài)和中斷
11.系統(tǒng)調(diào)用概述
12.使用庫函數(shù)API和C代碼中嵌入?yún)R編代碼觸發(fā)同一個系統(tǒng)調(diào)用
13.給MenuOS增加time和time-asm命令
14.使用gdb跟蹤系統(tǒng)調(diào)用內(nèi)核函數(shù)sys_time
15.系統(tǒng)調(diào)用在內(nèi)核代碼中的處理過程
16.進程的創(chuàng)建
17.進程的描述
18.預(yù)處理編譯鏈接和目標文件的格式
19.可執(zhí)行程序共享庫和動態(tài)鏈接
20.可執(zhí)行程序的裝載
21.進程切換的關(guān)鍵代碼switch_to分析
22.Linux系統(tǒng)的一般執(zhí)行過程
23.linux系統(tǒng)架構(gòu)和執(zhí)行過程概覽