Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14517792
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:31:41

下载本文示例代码
 ∠嘈判矶嗯笥押臀乙谎?荚贚inux环境下使用过C语言编过程序,其大多数都属于用户应用程序,也称为普通用户程序。写了这么多应用程序后,就有点儿想写一点系统级的程序了,于是就参考了一些关于Linux内核编程原理的资料,并付之了实践,现在就让我将编写内核模块的方法给大家介绍一下吧.   一个Linux内核模块至少需要包括以下两个函数:   1.模块初始化函数——当模块被插入到Linux内核中时被调用;   2.模块卸载函数——当模块从Linux内核中被卸载时被调用。   一般来说,模块初始化函数给新模块在内核中注册,并且得到一个调用句柄;或者它使新模块的代码覆盖原有的代码(通常情况下新模块的代码增加了一些新功能,然后调用原有的代码)。   而模块卸载函数正好做了模块初始化函数相反的工作,它使新模块安全地被卸载。   下面我们来看看如何在Linux内核中插入一个模块,让其在屏幕上输出“Hello , this is module speaking!”的字样。 程序文件:hello.c #include $#@60;linux/kernel.h$#@62; /* 我们正在干一些关于内核的事情 */ #include $#@60;linux/module.h$#@62; /* 具体来说,是在写一个模块 */ #if CONFIG_MODVERSIONS==1 /* 如果需要指明模块的版本的话 */ #define MODVERSIONS #include $#@60;linux/modversions.h$#@62; /* 那就将linux/modversions.h文件包含*/ #endif int init_module() /* 模块初始化函数 */ { printk("Hello, this is the kernel speaking!\ n"); /* 如果我们将返回值置为非零,这说明初始化模块失败 */ return 0; } void cleanup_module() /* 模块卸载函数 */ { printk(“ This kernel module has been removed.\ n"); } 共4页。 1 2 3 4 8 :  ∠嘈判矶嗯笥押臀乙谎?荚贚inux环境下使用过C语言编过程序,其大多数都属于用户应用程序,也称为普通用户程序。写了这么多应用程序后,就有点儿想写一点系统级的程序了,于是就参考了一些关于Linux内核编程原理的资料,并付之了实践,现在就让我将编写内核模块的方法给大家介绍一下吧.   一个Linux内核模块至少需要包括以下两个函数:   1.模块初始化函数——当模块被插入到Linux内核中时被调用;   2.模块卸载函数——当模块从Linux内核中被卸载时被调用。   一般来说,模块初始化函数给新模块在内核中注册,并且得到一个调用句柄;或者它使新模块的代码覆盖原有的代码(通常情况下新模块的代码增加了一些新功能,然后调用原有的代码)。   而模块卸载函数正好做了模块初始化函数相反的工作,它使新模块安全地被卸载。   下面我们来看看如何在Linux内核中插入一个模块,让其在屏幕上输出“Hello , this is module speaking!”的字样。 程序文件:hello.c #include $#@60;linux/kernel.h$#@62; /* 我们正在干一些关于内核的事情 */ #include $#@60;linux/module.h$#@62; /* 具体来说,是在写一个模块 */ #if CONFIG_MODVERSIONS==1 /* 如果需要指明模块的版本的话 */ #define MODVERSIONS #include $#@60;linux/modversions.h$#@62; /* 那就将linux/modversions.h文件包含*/ #endif int init_module() /* 模块初始化函数 */ { printk("Hello, this is the kernel speaking!\ n"); /* 如果我们将返回值置为非零,这说明初始化模块失败 */ return 0; } void cleanup_module() /* 模块卸载函数 */ { printk(“ This kernel module has been removed.\ n"); } 共4页。 1 2 3 4 8 : 下载本文示例代码


Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法Linux内核模块的编程方法
阅读(166) | 评论(0) | 转发(0) |
0

上一篇:我有一个梦

下一篇:汉化大站

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