1. 程式人生 > >20189229 張子鬆 第四周作業

20189229 張子鬆 第四周作業

本次寫部落格之前,先看了看其他已經交了的同學的部落格,頓時覺得自己對本章內容理解還不到位,於是又回去重新整理了一遍,將本章內容彙總如下:

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核心