感謝學(xué)堂在線與孟寧老師提供的精彩課程,讓我獲益良多.最大收獲便是對 Linux 內(nèi)核有了整體的認(rèn)識.可以指導(dǎo)自己在以后的工作,學(xué)習(xí)中不斷學(xué)習(xí),深化對Linux 的認(rèn)識.
老師在課程中所講授的:三個(gè)法寶,兩把寶劍,大S、小s,道生一、一生二、二生三、三生萬物等內(nèi)容為我鞏固了基礎(chǔ)知識并提煉了內(nèi)核基本思想和實(shí)際調(diào)試時(shí)的操作方式.
道生一,一生二,二生三,三生萬物:
道生一(start_kernel創(chuàng)建cpu_idle)
一生二(kennel_init和kthreadd)?
二生三(即0號,1號和2號三個(gè)進(jìn)程)?
三生萬物(1號進(jìn)程是所有用戶態(tài)進(jìn)程的祖先,2號進(jìn)程是所有內(nèi)核態(tài)進(jìn)程的祖先)
構(gòu)建在中斷機(jī)制之上的系統(tǒng)調(diào)用工作方式,使用戶態(tài)程序可以使用Linux內(nèi)核提供的服務(wù);Linux系統(tǒng)中所有進(jìn)程的祖先init進(jìn)程,由init進(jìn)程通過do_fork()創(chuàng)建的其他進(jìn)程以及一次調(diào)用兩次返回的fork()系統(tǒng)調(diào)用(子進(jìn)程在 ret_from_fork處返回);程序的編譯過程和共享庫動態(tài)鏈接的工作方式(靜態(tài)編譯直接到程序入口,動態(tài)編譯的話先到動態(tài)鏈接器執(zhí)行);進(jìn)程調(diào)度過程中進(jìn)程的切換過程.
作業(yè)目錄:
從C語言中的函數(shù)調(diào)用過程理解計(jì)算機(jī)執(zhí)行原理
簡單的內(nèi)核時(shí)間片輪轉(zhuǎn)程序方式
從start_kernel到init進(jìn)程啟動的過程
通過兩種方式使用系統(tǒng)調(diào)用
分析system_call中斷處理過程
分析Linux內(nèi)核創(chuàng)建一個(gè)新進(jìn)程的過程
Linux內(nèi)核如何啟動并裝載一個(gè)可執(zhí)行程序
理解進(jìn)程調(diào)度時(shí)機(jī)跟蹤分析進(jìn)程調(diào)度與進(jìn)程切換的過程
swkhack 原創(chuàng)作品轉(zhuǎn)載請注明出處 http://www.xuetangx.com/courses/course-v1:ustcX+USTC001+_/info《Linux內(nèi)核分析》MOOC課程