4 Linux核心模組

2021-08-28 02:06:28 字數 1507 閱讀 5796

什麼是模組?

linux 的一種機制,使得編譯出的核心本身並不需要包含所有功能,而在這些功能需要被使用的時候,其對應的**可被動態地載入到核心中。

模組具有什麼特點?

模組有哪些常用命令?

linux 核心模組有哪些組成部分,有什麼作用?

如何定義模組載入函式?

static int _ _init initialization_function(void) 

module_init(initialization_function);

如何載入核心模組?

request_module(module_name);或request_module("char-major-%d-%d", major(dev), minor(dev));

如何定義模組解除安裝函式?

以_ _exit標識宣告,以「module_exit(函式名)」的形式來指定。不返回任何值

static void _ _exit cleanup_function(void)

module_exit(cleanup_function);

通常來說,模組解除安裝函式要完成與模組載入函式相反的功能,模組解除安裝函式完成哪些功能?

如何定義模組引數?

module_param(引數名,引數型別,引數讀/寫許可權)」為模組定義乙個引數

static char *book_name = "深入淺出linux裝置驅動"; //字元指標引數

static int num = 4000; //指標引數

module_param(num, int, s_irugo);

module_param(book_name, charp, s_irugo);

匯出符號如何定義?

「/proc/kallsyms」檔案對應著核心符號表,它記錄了符號以及符號所在的記憶體位址。

匯出符號有什麼作用?

匯出的符號將可以被其他模組使用, 使用前宣告一下即可。

如何使用匯出符號?

#include #include module_license("dual bsd/gpl");

int add_integar(int a,int b)

int sub_integar(int a,int b)

export_symbol(add_integar);

export_symbol(sub_integar);

模組宣告與描述如何定義?

//宣告模組的作者、描述、版本、裝置表和別名

module_author(author);

module_description(description);

module_version(version_string);

module_device_table(table_info);

module_alias(alternate_name);

Linux學習筆記 4(Linux網路配置)

centos 1.centos伺服器預設網絡卡配置檔案在 etc sysconfig network scripts 下 命名的名稱一般為 ifcfg eth0 ifcfg eth1 eth0 表示第一塊網絡卡,eth1 表示第二塊網絡卡,依次類推。一般 dell r720 標配有 4 塊千兆網絡卡...

Linux學習筆記(4)Linux目錄配置

目錄配置的依據是fhs標準。目錄的四個型別 1.可分享 可分享給其他系統掛載使用的目錄。2.不可分享 自己機器上執行的裝置檔案。3.不變 部分不會經常變動的資料。4.可變動 經常修改的資料,日誌檔案等。fhs要求必要存在的目錄 bin單人維護模式下還可以使用的指令 lib啟動時需要使用的函式庫 bo...

4 linux程式設計入門 時間概念

前言 linux下的時間概念 這一章我們學習linux的時間表示和計算函式 時間的表示 時間的測量 計時器的使用 1 時間表示 在程式當中,我們經常要輸出系統當前的時間,比如我們使用date命令的輸出結果.這個時候我們可以使用下面兩個函式 cpp view plain copy include ti...