Chinaunix首页 | 论坛 | 博客
  • 博客访问: 380991
  • 博文数量: 83
  • 博客积分: 1650
  • 博客等级: 上尉
  • 技术积分: 861
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-18 18:22
文章分类
文章存档

2021年(1)

2016年(1)

2015年(2)

2014年(3)

2013年(12)

2012年(16)

2011年(18)

2010年(30)

分类: LINUX

2010-11-13 14:54:20

内核模块有如下特点:
 1。模块本身不被编译进内核映像(zImage/bzImage)
 2。模块一旦被动态加入到内核就和内核其他部分一样。
 3。可以根据需要,在内核运行期间动态安装/卸载。
 
 
一个简单的模块。
#define __KERNEL__
#define MODULE     //这两宏一不定要加入
#include
#include
#include
static int year=2010;   //模块参数
MODULE_LICENSE("GPL");  //许可证
MODULE_PARM(year,"i");
int hello_init(void)
{
    printk("<0>Hello World!%d\n",year);   //《0》表示打印的优先级
    return 0;
}
void hello_exit(void)
{
    printk("<6>hello exit%d\n",year);
}
module_init(hello_init); //指定模块加载函数
module_exit(hello_exit); //指定模块卸载函数
 
模块的编译工作由gcc -c 命令来完成
 如
 Gcc -c -I/usr/src/linux-2.4/include hello.c
 注以开是在红帽9下开发。。。。
阅读(649) | 评论(1) | 转发(0) |
0

上一篇:消息队列

下一篇:RedHat9.0下tftp服务的安装

给主人留下些什么吧!~~

chinaunix网友2010-11-18 02:14:21

你这不是编译吗,生成的是 .o 文件呀,好像生成的模块应该是.ko的。这些我不太懂。我觉得你没写完。。。