1. 程式人生 > >linux核心--那些年看國嵌視訊學習

linux核心--那些年看國嵌視訊學習

1、linux系統構成

使用者空間和核心空間構成。其中使用者空間由應用程式和C庫;核心空間由系統呼叫介面、kernel、架構程式碼、硬體裝置平臺

   

為什麼linux系統會被劃分為使用者空間和核心空間?處於安全性考慮。

ARM的7種工作模式:1、usr使用者模式:正常執行程式,一般程式執行在使用者模式。

                                        2、svc管理模式:作業系統使用的保護模式

                                        3、sys 系統模式:類似管理員許可權,可以執行特權的操作任務

                                        4、IRQ外部中斷模式

:硬體上定時器、串列埠、輸入等通常的中斷處理

                                        5、FIQ快速中斷模式:應用於高速資料傳輸和儲存 DMA

                                        6、abt資料訪問異常:當資料或指令預取終止進入該模式

                                        7、und未定義指令模式:當未定義的指令被執行時,進入該模式

在不同模式,對暫存器的訪問許可權是不同的。例如:X86實現4個不同的級別:Ring0-Ring3.在Ring0下,可以執行特權指令(等同最高管理員),可以訪問IO裝置,在Ring3則有很多限制。Linux系統利用了CPU的這一特性,使用其中的兩級分別執行核心與應用程式,這樣使 作業系統本身得到充分保護。

例如:如果在X86平臺執行,使用者程式碼執行在許可權最低的Ring3,而核心程式碼執行在許可權最高的Ring0上,來實現核心安全性。

2、工作狀態切換

    如何實現使用者空間與核心空間的工作狀態切換?

    核心空間和使用者空間是程式執行的兩種不同狀態,通過系統呼叫硬體中斷完成使用者空間到核心空間切換

    系統呼叫:open()、read()等系統呼叫函式,硬體中斷:比如uart中斷、定時器中斷等

3、linux核心構成

linux核心由程序管理、記憶體管理、架構程式碼、系統呼叫介面、裝置驅動、網路協議棧、虛擬檔案系統 共7部分組成。

詳見下圖:

       

系統呼叫介面:為使用者空間提供訪問核心空間的一套 標準系統呼叫函式,起到橋樑作用。

程序管理:1、重點建立程序(fork)、停止程序(kill、exit),2、控制程序間通訊 3、程序排程(控制活動程序如何共享CPU)

記憶體管理:控制多個程序安全地共享記憶體區域

架構程式碼:該處程式碼同cpu型別有關。

網路協議棧:為linux提供豐富的網路協議。1、網路比較穩定 2、支援網路協議比較多    這是linux的強項

虛擬檔案系統:隱藏各種檔案系統的具體細節,為檔案操作提供統一的介面。