從根本上看,核心是為了管理好程序來設計的,需要建立各種結構體來描述程序管理過程中需要用到的一切。
首先,為什麼要劃分核心空間與使用者空間,出於安全的考慮,需要把使用者程式與核心隔離,這就帶來各種複雜性的東西,當然這是值得的。
對於模組與模組的互動,使用者通過系統呼叫進入核心,這裡又包含中斷管理,異常管理。
程序與程序間的同步與互斥,需要在時序上控制程序的執行。
作業系統提供了包括訊號量,互斥量,共享記憶體,鎖等方式來保證時序的正確性。
程序要執行,需要載入到記憶體當,這就開始涉及到記憶體管理的部分,需要明白虛擬記憶體,邏輯位址,線性位址,記憶體管理單元,直接記憶體訪問,記憶體的定址過程管理,
分段的概念,分頁的概念,cache,總之是為了加快程序的執行速度,這是io特性決定的,cpu執行速率與硬碟和記憶體速率不匹配導致的
同時,程序大多數需要與外界互動,硬碟,網路,字元裝置,塊裝置,網路裝置。
最後,linux封裝了乙個概念,一切皆檔案,
需要了解虛擬檔案系統,讀寫檔案。
程序的執行過程,編譯,載入,可執行檔案。
linux核心分析四
使用庫函式api和c 中嵌入彙編 兩種方式使用同乙個系統呼叫,理解系統呼叫的工作機制。api 第一層是指libc中定義的api,這些api封裝了系統呼叫,使用int 0x80觸發乙個系統呼叫中斷 當然,並非所有的api都使用了系統呼叫,如完成數學加減運算的api就沒有使用系統呼叫 也有可能某個api...
Linux核心Crash分析
每乙個程序的生命週期內,其生命週期的範圍為幾毫秒到幾個月。一般都是和核心有互動,例如使用者空間程式使用系統呼叫進入核心空間。這時使用的不再是使用者空間的棧空間,使用對應的核心棧空間。對每乙個程序來說,linux核心都會把兩個不同的資料結構緊湊的存放在乙個單獨為程序分配的儲存空間中 乙個是核心態的程序...
linux核心makefile分析
核心makefile.txt中將makefile分為 5部分,kernel makefile arch makefile kbuild makefile config檔案以及scripts makefile.kernel makefile kernel makefile 位於linux 核心源 的頂...