#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
// 定义模块的作者和描述信息
MODULE_AUTHOR("Your Name");
MODULE_DESCRIPTION("A simple Linux driver for demonstration.");
MODULE_LICENSE("GPL");
// 模块初始化函数
static int __init hello_init(void) {
printk(KERN_INFO "Hello, Linux kernel!\n");
return 0; // 返回0表示成功加载
}
// 模块退出函数
static void __exit hello_exit(void) {
printk(KERN_INFO "Goodbye, Linux kernel!\n");
}
// 注册模块的初始化和退出函数
module_init(hello_init);
module_exit(hello_exit);
#include <linux/module.h> 和 #include <linux/init.h> 是编写 Linux 内核模块时常用的头文件,提供了必要的宏定义和函数声明。MODULE_AUTHOR、MODULE_DESCRIPTION 和 MODULE_LICENSE 来定义模块的作者、描述和许可证信息。hello_init 函数在模块加载时被调用,使用 printk 打印一条消息到内核日志中。hello_exit 函数在模块卸载时被调用,同样使用 printk 打印一条消息。module_init 和 module_exit 宏来注册模块的初始化和退出函数。要编译这个驱动程序,可以创建一个简单的 Makefile:
obj-m += hello.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
将上述代码保存为 hello.c 文件,并将 Makefile 放在同一目录下。然后运行 make 命令进行编译。
上一篇:linux 用户管理
下一篇:linux命令解压tar.gz
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站