Linux核心模組

2021-06-28 23:58:36 字數 2115 閱讀 2892

核心模組

在整個啟動的過程中,是否能成功的驅動我們主句的硬體裝置,是核心完成的工作,而核心一般都是壓縮文件,在使用之前核心之前必須要將核心減壓到的記憶體中。

為了應對日新月異的硬體,目前核心都具有可讀取模組化驅動程式的功能,也就是所謂的(modules模組化)所謂模組化。

核心與核心模組放在:

.核心:/boot/vmlinuz或/boot/vmlinuz-version

.核心解壓縮所需的ram disk:/boot/initrd(/booy/initrd-version)

.核心模組:/lib/modules/version/kernel或/lib/modules/$(uname-r)/kernel;

.核心**:/usr/src/linux或/usr/kernels/(要安裝才會有,預設不會安裝)

如果核心被順利的載入系統當中,那麼就會有幾個日誌資訊記錄下來:

.核心版本:/proc/version

.系統核心功能:/proc/sys/kernel

如果新的硬體,而系統不支援,怎麼辦?

.重新編譯核心,並加入最新的硬體驅動程式原始碼

.將該硬體的去東莞程式編譯成為模組,啟動時載入該模組

核心模組直接的相關性

arch:與硬體平台有關的專案,例如cpu

crypto:核心所支援的加密技術,例如md5或者des等等

drivers:一些硬體的驅動程式,例如顯示卡,網絡卡,pci相關的硬體等

fs:核心所支援的filesystem

lib:一些函式庫

net:與網路相關的各項協議資料

sound:與音效有關的各項模組

如果手動的乙個乙個去檢查模組資訊,然後去定義儲存他們的相關性,我們可能會累死,所以linux當然會提供一些

模組相關性的解決方案,那就是檢查/lib/modules/$(uname -r)/modules.dep 檔案,生成這個檔案可以使用

depmod [-ane]

-a:不加任何引數時,depmod會主動的去分析目前的模組,並且重新寫入/lib/modules/$(uname-r)/modiles.dep

當中,若加入-a引數時,則depmod會去搜尋比modules.dep內還要更新的模組,如果真找到新模組,才會公升級。

-n:不寫入modules.dep,而是將結果輸出到螢幕上

-e;顯示出目前已載入的不可執行的模組名稱

核心模組的檢視:

lsmod:顯示內容包括有:

.模組名稱(module)

.模組大小(size)

.此模組是否被其他模組所使用過(used by other modules)

檢視每個模組的資訊:

modinfo [-adln] [module_name][file_name]

-a:僅列出作者名稱

-d:僅列出該modules的說明

-l:僅列出授權(license)

-n:僅列出該模組的詳細路徑。

核心模組的載入與移除

insmod [/full/path/module_name] [parameters]

移除模組:

rmmod [-fw] module_name

-f:forece

-w:wait,若該模組正在使用,則rmmod會等待該模組使用完畢,才移除他

modprobe [-lcfr] module_name :無需完整路徑名即可

-c :列出目前所有系統的模組

-l :列出目前在/lib/modules/`uname -r`/kernel

-f :強制載入該模組

-r :類似rmod,remove

核心模組的額外引數配置:/etc/modprobe.conf,現在的新版centos已經預設沒有這個配置檔案了,當然你可以自己建立,現在配置檔案是乙個資料夾/etc/modprobe.d/*    

aliasing :使用模組別名載入移除

blacklist:阻止kernel載入某些模組:假如要禁止使用pcskr,使用方法

在目錄下配置這個檔案:/etc/modprobe.d/blacklist.conf

語法:#do not load the 『pcspkr』modules on boot

blacklist pcspkr

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...

linux核心模組

綜述 如今linux核心整體框架十分龐大,我們如果直接把所有所需的功能編譯進核心,會導致核心十分龐大,且在現有核心中我們無法對其增減。所以linux提供一種機制 模組。我們可以根據需要,對模組進行刪減。一 乙個linux核心模組主要由如下幾個部分組成 1 模組載入函式 當通過insmod或者modp...