linux核心的主要模組

2021-06-23 02:18:31 字數 1266 閱讀 5395

linux系統從應用角度來分,分為核心空間和使用者空間兩部分。

linux核心主要有5個子系統組成:程序排程、記憶體管理、虛擬檔案系統、網路介面、程序間通訊。

1.程序排程sched

程序排程指的是系統對程序的多種狀態之間轉換的策略。

linux下的程序排程有3種策略:sched_other、sched_fifo、sched_rr。

sched_other:是用於針對普通程序的時間片輪轉排程策略。這種策略中,系統給所有的執行狀態的程序分配時間片。在當前程序的時間片用完以後,系統從程序中優先順序最高的程序中選擇程序執行。

sched_fifo:是針對執行的實時性要求比較高、執行時間短的程序排程策略。這種策略中,系統按照進入佇列的先後進行程序的排程,在沒有更高優先順序程序到來或者當前程序沒有因為等待資源而阻塞的情況下,會一直執行。

sched_rr:是針對實時性要求比較高、執行時間比較長的程序排程策略。這種策略與sched_other的策略類似,只不過sched_rr程序的優先順序要高的多(實時的)。系統分配給sched_rr程序時間片,然後輪循執行這些程序,將時間片用完的程序放入佇列的末尾。

由於存在多種排程方式,

linux程序排程採用的是「有條件可剝奪」的排程方式。普通程序中採用的是sched_other的時間片輪循方式,實時程序可以剝奪普通程序。如果普通程序在使用者空間執行,則普通程序立即停止執行,將資源讓給實時程序;如果普通程序執行在核心空間,需要等系統呼叫返回使用者空間後方可剝奪資源。

2.記憶體管理mmu

記憶體管理是多個程序間的記憶體共享策略。在linux中,記憶體管理的主要概念是虛擬記憶體。

虛擬記憶體可以讓程序擁有比實際物理記憶體更大的記憶體,可以是實際記憶體的好多倍。每個程序的虛擬記憶體有不同的位址空間,多個程序的虛擬記憶體不會衝突。

虛擬記憶體的分配策略是每個程序都可以公平地使用虛擬記憶體。虛擬記憶體的大小通常設為物理記憶體大小的2倍。

3.虛擬檔案系統vfs

在linux中最常用的檔案格式是ext2和ext3。ext2檔案系統用在固定檔案系統和可活動檔案系統,是ext檔案系統的擴充套件。ext3檔案系統是在ext2上增加日誌功能後的擴充套件,它相容ext2。兩種檔案系統之間可以互相轉換。

4.網路介面

linux網路介面分為網路協議和驅動程式。網路協議是一種網路傳輸的通訊標準,而網路驅動則是對硬體裝置的驅動程式。

5.程序間通訊

linux支援多程序,程序之間需要進行資料的交流才能完成控制、協同工作等功能。linux的程序通訊是從unix系統繼承過來的。linux下的程序通訊方式主要有管道方式,訊號方式,訊息佇列方式,共享記憶體和套接字等方法。

Linux核心模組

核心模組 在整個啟動的過程中,是否能成功的驅動我們主句的硬體裝置,是核心完成的工作,而核心一般都是壓縮文件,在使用之前核心之前必須要將核心減壓到的記憶體中。為了應對日新月異的硬體,目前核心都具有可讀取模組化驅動程式的功能,也就是所謂的 modules模組化 所謂模組化。核心與核心模組放在 核心 bo...

Linux核心模組

1 核心模組註冊登出 塊載入函式有返回值,模組解除安裝函式無返回值。兩者都是無參函式,載入函式用 init修飾,解除安裝函式用 exit修飾。define init attribute section init.text define exit atrribute section exit,text...

Linux 核心模組

linux 核心模組程式結構 1 模組載入函式 2 模組解除安裝函式 3 模組許可證宣告 4 模組引數 5 模組匯出符號 6 模組作者等資訊宣告 模組載入函式 一般以 init 標識 在 linux 中,所有標識為 init 的函式如果直接編譯進核心,成為核心映象的一部分,在連線的時候都會放在 in...