20189229 張子鬆 第四周作業
阿新 • • 發佈:2018-11-04
本次寫部落格之前,先看了看其他已經交了的同學的部落格,頓時覺得自己對本章內容理解還不到位,於是又回去重新整理了一遍,將本章內容彙總如下:
MenuOS的構造
基於Linux核心原始碼構造一個簡單的作業系統MenuOS。
Linux核心原始碼簡介
計算機的“3大法寶”
- 儲存程式計算機
- 函式呼叫堆疊
- 中斷
作業系統有“兩把寶劍”
- 中斷上下文:儲存現場和恢復現場
- 程序上下文
Linux核心原始碼的目錄結構
Linux核心原始碼的目錄結構如下圖所示:
關鍵目錄簡介
- arch:與體系結構相關的子目錄列表,可以使Linux核心支援不同的CPU和體系結構。
- x86:在下載原始碼研究時,只需留下x86目錄中的內容,避免同一個函式存在多個目錄中。
- block:存放塊裝置管理的程式碼。
- crypto:存放常見的加密演算法的C語言程式碼。
- Documentation:存放一些文件。
- drivers:驅動目錄。
- firmware:韌體。
- fs:檔案系統。
- include:標頭檔案目錄。
- 存放Linux核心啟動時的初始化程式碼。
- main.c:原始檔是整個Linux核心啟動的起點,其中的start_kernel函式是原始檔的起點。
- ipc:IPC為程序間通訊。
- kernel:存放Linux核心程式碼。
- lib:公用的庫檔案目錄,但與c語言下的庫函式不同,核心程式設計中不能用c語言標準庫函式,所以此lib目錄下庫函式就是用來替代那些標準庫函式的。
- mm:存放記憶體管理程式碼。
net:存放與網路相關程式碼,如TCP/IP協議棧等。
構造一個簡單的Linux核心