在学习编写Linux内核模块的时候我们首先要清楚的知道内核模块的作用,为什么要使用内核模块?这是因为Linux内核的整体结构非常的庞大,包含的组件也非常的多,把所有的内核模块都编译到Linux内核,会导致的问题是内核很大,同时在现有的内核新增或删除部分功能时,不得不重新编译内核,可谓相当的费时。而模块的使用就是为了解决这一问题,即动态的在内核中添加或者删除相应功能。下面以一个经典的代码来看是相关的分析:
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("xxx");
MODULE_DESCRIPTION("Hello World Module");
MODULE_ALIAS("a simplest module");
static int __init hello_init()
{
printk(KERN_EMERG"Hello World!/n"); //注意比较两种printk( )参数的不同之处
return 0; //即优先级的用法
}
static void __exit hello_exit()
{
printk("<6>hello exit/n