在《为Ubuntu换颗“心”》一文中,我们已经了解到了如何去编译安装新的Kernel,编译过程也生成了相应的内核树,为什么要生成内核树呢?其实就跟我们写应用程序时一样,写程序会调用到其他的库文件或其他文件生成的目标文件,最后再由链接器把这些目标文件处理生成可执行文件,就是这道理,这为我们后期调试内核模块时打下了应有的基础,有了这编译调试内核模块的基础,那么开发环境呢?当然可以参考下《VI改造计划》,全命令行的开发模式最适合我们了,我们做底层就要有做底层的风格啊。好,既然这两个基础条件都有了,接下来就可以开始尝试写我们的首个模块了。 于是接下来我们按照学习编程语言时写一个我们自己的Hello world——Hello xinu,向自己问声好,表扬下自己迈出这一步,踏入了内核驱动模块的圈。
下面是我们的hello_xinu.c文件内容:
#include <linux/init.h>
#include <linux/module.h>
static int hello_xinu_init(void)
{
printk("Hello xinu!\n");
return 0;
}
static void h