在linux中,核心模組是linux核心向外部提供的一個插口;核心模組具有獨立功能的程序,可以被單獨編譯,但不能獨立運行,是一個為核心或其他核心模組提供使用功能的程式碼區塊。
本教學操作環境:linux7.3系統、Dell G3電腦。
核心模組是Linux核心提供外部的插口,其全稱為動態可載入核心模組(Loadable Kernel Module,LKM),我們簡稱為模組。 Linux核心之所以提供模組機制,是因為它本身就是一個單核心(monolithic kernel)。單核心的最大優點是效率高,因為所有的內容都整合在一起,但其缺點是可擴展性和可維護性相對較差,模組機制就是為了彌補這一缺陷。
模組是具有獨立功能的程序,它可以被單獨編譯,但不能獨立運行。它在運行時被連結到核心作為核心的一部分在核心空間運行,這與運行在用戶空間的進程是不同的。模組通常由一組函數和資料結構組成,用來實作一種檔案系統、一個驅動程式或其他核心上層的功能。
總之,模組是一個為核心(從某種意義上來說,核心也是一個模組)或其他核心模組提供使用功能的程式碼區塊。
Linux系統的核心模組是可以根據需要載入到核心中或從核心中卸載的程式碼區塊,因此無需重新啟動即可擴展核心的功能。但是除非使用者使用類似 lsmod 這樣的命令來查詢模組訊息,否則使用者不太可能知道核心發生的任何變化。
Linux 系統上有許多可用的模組,並且如果深入其中可以了解到很多細節。而Linux系統工具lsmod 的主要用途之一,就是在系統無法正常運作時檢查模組。
1、顯示核心模組
顯示核心模組最簡單的方法是使用 lsmod 指令。雖然這個指令包含了很多細節,但輸出卻是非常用戶友好,一般在輸出中:
1)Module 顯示每個模組的名稱
2)Size 顯示每個模組的大小,並不是它們佔據的記憶體大小
3)Used by 顯示每個模組被使用的次數和使用它們的模組
載入的模組數量取決於使用的系統和版本以及正在運作的內容要檢視系統中可用的模組數,不只執行當中的,可以用這個操作指令:
1)$ modprobe -c | wc –l
2)41272
2、其他與核心模組相關的指令
Linux 系統提供了幾個用於羅列、載入及卸載、測試,以及檢查模組狀態的指令。
1)depmod - 產生 modules.dep 與映射檔
2)insmod - 一個往 Linux 核心插入模組的程式
#3)lsmod - Linux核心中模組狀態
4)modinfo - 顯示 Linux 核心模組資訊
5)modprobe - 新增或移除 Linux 核心模組
6)rmmod - 一個從 Linux 核心移除模組的程式
3、顯示內建的核心模組
如前文小編所說,lsmod 指令是顯示核心模組最方便的指令。然而,也有其他方式可以顯示它們。 modules.builtin 檔案中列出了所有建置在內核中的模組,在 modprobe 命令嘗試新增檔案中的模組時會使用它。
使用者可以使用modinfo 來獲得一個模組的更多細節,雖然沒有模組提供的服務的簡單說明,也可以使用 modprobe 指令來載入或卸載模組。使用下面這條指令,可以找到特定模組關聯的核心物件:
1)$ find /lib/modules/$(uname -r) -name floppy* 2)/lib/modules/5.0.0-13-generic/kernel/drivers/block/floppy.ko
如果想要載入模組,可以使用這個指令:$ sudo modprobe floppy。
很明顯,核心模組的載入和卸載非常重要。它使得 Linux 系統比使用通用核心運行時更加靈活和高效。這同樣意味著用戶可以進行重大更改而無需重啟,例如添加硬體。
相關推薦:《Linux影片教學》
以上是linux中什麼是核心模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!