1. 程式人生 > >linux 核心完全註釋筆記 1章--2.4章 2006.04.06

linux 核心完全註釋筆記 1章--2.4章 2006.04.06

       第一章 linux的誕生

  1990年 芬蘭 赫爾辛基大學計算機系  20歲的 Linus Benedict Torvalds

通過學習 《MINIX 系統》的原始碼 後決定開發的  linux 系統

包括學習了 M.J.Bach 的《UNIX作業系統設計》

      第二章 Linux 核心體系結構

  2.1、Linux 核心模式和體系結構

完整的作業系統主要由4部分組成:硬體、作業系統核心、作業系統服務和使用者應用程式。

作業系統核心的結構模式可分為:整體式的單核心模式和層次式的微核心模式。

  這裡用的是單核心模式,他的優點:結構緊湊、執行速度快,缺點:層次結構性不強。

單核心系統的結構模式,作業系統提供服務的流程:應用主程式使用指定的引數執行系統呼叫指令

(int  x80),使cpu從使用者態(User Mode)切換到核心態(Kernel Mode),然後系統根據引數

值呼叫特定的系統呼叫服務程式,而這些服務程式則根據需要呼叫底層的支援函式以完成特定的功能。

在完成了應用程式要求的服務後,作業系統又從核心態切換回使用者態,回到應用程式中繼續執行後續

指令。

linux核心主要由5個模組構成:程序排程模組、記憶體管理模組、檔案系統模組、程序通訊模組和

網路介面模組。

  2.2 Linux 中斷機制

在使用80x86組成的pc中,採用2片8259A可程式設計中斷控制晶片。每片管理8箇中斷源。

通過多片的級聯方式,能構成最多管理64箇中斷向量的系統。

在PC/AT系列相容機中,使用了2片8259A晶片,共可管理15級中斷向量。

其中   從晶片的INT 引腳連線到主晶片的IR2引腳上。主8259A晶片的埠基地址是0x20,

從晶片是 0xA0。在匯流排控制器控制下,8259A晶片可以處於程式設計狀態和操作狀態。

程式設計狀態是CPU使用IN 和 OUT 指令對8259A晶片進行初始化變成的狀態。

完成初始化後,晶片即進入操作狀態,可以隨時響應外部裝置提出的中斷請求(IRQ0--IRQ15)。

通過中斷優先選擇,選擇優先順序最高的中斷請求作為中斷服務物件,並通過CPU引腳INT通知CPU

外中斷請求的到來,CPU響應後,晶片從資料匯流排D7~D0將程式設計設定的當前服務物件的中斷號送出,

CPU獲得相應的中斷向量值,執行中斷。

對核心來說,中斷訊號分為2類:硬體中斷和軟體中斷(異常)。每個中斷由0~255之間的一個數字標識。

  2.3 Linux 系統定時