Linux內(nèi)核學習總結(jié)
學習心得
1.計算機是如何工作的
復習了微機原理、匯編語言等相關(guān)知識,對計算機體系結(jié)構(gòu)及工作原理有了更清晰的認識
2.操作系統(tǒng)是如何工作的?
復習了函數(shù)堆棧、時間片輪轉(zhuǎn)等相關(guān)知識,對時鐘中斷模型有了實踐性的認識
3.構(gòu)造一個簡單的Linux系統(tǒng)MenuOS
通過shell調(diào)試內(nèi)核,對start_kernel到init進程啟動的過程有了詳細的認識
4.扒開系統(tǒng)調(diào)用的三層皮(上)
復習了用戶態(tài)、內(nèi)核態(tài)、中斷等相關(guān)知識,對系統(tǒng)調(diào)用工作機制有了理解
5.扒開系統(tǒng)調(diào)用的三層皮(下)
通過調(diào)試分析系統(tǒng)調(diào)用內(nèi)核函數(shù),學習了系統(tǒng)調(diào)用流程,對系統(tǒng)調(diào)用處理過程有了理解
6.進程的描述和進程的創(chuàng)建
復習了進程相關(guān)知識,理解了進程創(chuàng)建的過程、新進程開始執(zhí)行的位置
7.可執(zhí)行程序的裝載
復習了程序預處理、編譯、裝載等相關(guān)知識,跟蹤了系統(tǒng)調(diào)用內(nèi)核處理函數(shù),理解了加載可執(zhí)行程序所需處理過程
8.進程的切換和系統(tǒng)的一般執(zhí)行過程
復習了進程調(diào)度相關(guān)知識,對進程調(diào)度時機、進程上下文切換機制、有了理解
作業(yè)目錄
1.通過匯編一個簡單的C程序,分析匯編代碼理解計算機是如何工作的
2.一個簡單的時間片輪轉(zhuǎn)多道程序內(nèi)核代碼
3.跟蹤分析Linux內(nèi)核的啟動過程
4.使用庫函數(shù)API和C代碼中嵌入?yún)R編代碼兩種方式使用同一個系統(tǒng)調(diào)用
5.分析system_call中斷處理過程
6.分析Linux內(nèi)核創(chuàng)建一個新進程的過程
7.Linux內(nèi)核如何裝載和啟動一個可執(zhí)行程序
8.理解進程調(diào)度時機跟蹤分析進程調(diào)度與進程切換的過程
學習總結(jié)
學習linux內(nèi)核分析中最大的收獲:
消除了對內(nèi)核代碼的神秘感和閱讀障礙,開始使用linux系統(tǒng)和vim編輯器
學習完linux內(nèi)核分析后最大的遺憾:
大學沒有機會選擇相關(guān)專業(yè)學習
王瀟洋
原創(chuàng)作品轉(zhuǎn)載請注明出處《Linux內(nèi)核分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000