我一直在尝试移植一些
Linux驱动程序,并意识到
Linux的内核版本2.4和2.6之间存在很大差异.
在2.4版本的内核中,模块编程如下 –
#define MODULE
#include
#include
int init_module(void)
{
printk(KERN_INFO "Hi \n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Bye \n");
}
但是,对于2.6版本的内核,必须对模块进行以下操作 –
#include
#include
#include
static int hi_init(void)
{
printk(KERN_ALERT "Hi \n");
return 0;
}
static void hi_exit(void)
{
printk(KERN_ALERT "Bye \n");
}
module_init(hi_init);
module_exit(hi_exit);
Kernel 2.6中这种更改的优点是什么?为什么Linux内核2.6需要进行更改?