Linux內核模塊是一種動態加載到Linux內核中以擴展其功能的軟件組件。模塊通常用于提供新的設備驅動程序、文件系統、網絡協議棧或其他內核功能。本指南將介紹如何編寫和編譯一個簡單的Linux內核模塊。
您可以通過以下命令來安裝這些軟件包:
sudo apt-get install gcc make linux-headers-$(uname -r)
#include <linux/init.h>
#include <linux/module.h>
static int __init hello_init(void) {
printk(KERN_INFO "Hello, world!\n");
return 0;
}
static void __exit hello_exit(void) {
printk(KERN_INFO "Goodbye, world!\n");
}
module_init(hello_init);
module_exit(hello_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("A simple hello world module");
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
加載模塊到內核中:
sudo insmod hello.ko
查看模塊的輸出信息:
dmesg | tail
從內核中卸載模塊:
sudo rmmod hello
這樣,您就已經成功編寫并加載了一個簡單的Linux內核模塊。您可以根據您的需求擴展該模塊,并探索更多復雜功能。如果您想深入學習內核模塊開發,可以參考Linux內核源碼中的文檔和示例代碼。祝您編寫模塊開發愉快!