1. 程式人生 > >Linux系統的學習心得

Linux系統的學習心得

這個學期,我們學習了Linux系統的核心。主要學習了程序排程,中斷過程和系統呼叫。可以說,這些都是linux核心中的核心功能,正是由於這些功能的組成才組成了一個Liunx系統。下面,我就簡單地回顧一下這幾個核心功能。

中斷過程

中斷可以說是系統中最重要的功能之一,如果沒有中斷,那麼一個作業系統就將退化成一個單道處理系統。中斷大概過程就是主動或者被動發起一箇中斷,一斷系統允許中斷,那麼首先就會儲存CS,SS,FLAGS,SS,SP,這些都由硬體來自動儲存,接著進入到核心態。然後儲存現場,即是儲存通用暫存器,堆疊等等。然後,根據中斷號來呼叫相應的中斷處理程式,處理完成以後,恢復現場,中斷返回。

系統呼叫

系統呼叫就是特殊的中斷過程,它一般由程式主動呼叫。當一個程式呼叫int ox80時,便會是一個系統呼叫,首先,通過中斷進入核心太,然後根據向量號(儲存在eax中)進行相應的分發。它的相應引數都儲存在暫存器中如(ebx,edi,esi),最後,處理完成以後,也會恢復現場,中斷返回。

程序排程

最後,來說一下程序排程。關於程序排程,最重要的便是要理解程序是如何從一個程序切換到另一個程序的。從第一次上課時,我們便寫了一個模仿縣城切換到的例子,它包括儲存當前的eip,esp,然後切換到下一個程序的eip和esp,這中間要保證正確,以便最後能切換回來,具體的程式碼分析可見我的部落格。

我的部落格列表

最後

由於這門課,我對系統的理解更加深入地,明白了真個作業系統具體是怎麼運作的,同時也學會了怎樣看核心程式碼。
要說遺憾,我最大的遺憾可能就是沒有詳細地講講記憶體管理以及檔案系統,希望能具體地瞭解一下記憶體分配,檔案系統的實現。