1.1 linux内核模块简介
模块是linux提供的动态加载代码的功能。模块具有如下特点:
1.模块一旦被加载,就和内核其它部分完全一样。
2.模块本身不被编译进内核,从而控制了内核的大小
1.2 下面是一个常见的内核模块的举例:
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
static int __init lkp_init(void)
{
printk("<1>Hello,world! frome the kernel space...\n");
return 0;
}
static void __exit lkp_cleanup(void)
{
printk("<1>Goodbye,world! leaving kernel space...\n");
}
module_init(lkp_init);
module_exit(lkp_cleanup);
MODULE_LICENSE("GPL");
对应的makefile:
#Makefile
obj-m += hellomod.o