下载本文示例代码
∠嘈判矶嗯笥押臀乙谎?荚贚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内核模块的编程方法
阅读(169) | 评论(0) | 转发(0) |