Linux模組試寫

2021-06-07 02:29:00 字數 1560 閱讀 2576

簡述:實現的是乙個簡易的模組test.ko

輸入乙個state(用來表示程序的狀態) ,可乙個得到該狀態的程序pid

module功能列印所有state的程序pid

test.c:

#include #include #include #include // task_struct

module_license("gpl");

static int state; //print 0: runnable process ,-1: unrunnable process , >0 stopped process

module_param(state,int,0644);

static int __init test_init(void)

} return 0;

}

static void __exit test_exit(void)

module_init(test_init);

module_exit(test_exit);

makefile:

####---makefile----#####

obj = test

obj-m := $(obj).o

kerneldir = /lib/modules/`uname -r`/build

pwd=`pwd`

default :

$(make) -c $(kerneldir) m=$(pwd) modules

install:

insmod $(obj).ko

uninstall:

rmmod $(obj).ko

clean:

rm -rf *.o *.mod.c *.ko *.symvers

cd到test 資料夾,

輸入:make

之後發現又新建了.ko檔案

輸入: su

進入 管理員root操作部分

輸入: insmod test.ko state=0

安裝模組, 0表示runnable的程序;-1表示unrunnbale的程序 ;>0表示stopped狀態的程序

輸入:dmesg 顯示printk的輸出

後面是刪除module

輸入: rmmod test.ko   完成解除安裝模組

附:如果要開機自動載入的話,

修改/etc/rc.local,新增make clean -> make -> insmod  /路徑 .ko檔案  輸入(param= ,param=, ...)

如圖:

Linux 寫乙個簡單的模組

1.建立乙個目錄 mkdir zhu cd zhu vim hello.c 編寫乙個名為hello的檔案 2.hello.c include 所有模組都需要的標頭檔案 include static int hello init void static void hello exit module i...

php寫登陸模組

最近在學習php。學了一點關於登陸的東西,寫下來備忘。新建四個頁面,分別命名為login.php check.php index.php error.php。login頁面用表單建立乙個登陸頁面,不多說了。在 裡用js指令碼判斷使用者名稱和密碼不能為空,為空則重置焦點。如下 check是檢查頁面,如...

模組(寫日誌 jsonpath 加密)

1.寫日誌模組 from loguru import logger import syslogger.remove 把預設的配置刪掉 fmt line function name msg logger.add sys.stdout,format fmt,level debug logger.add ...