Linux内核模块的编程方法
2008-04-09 04:02:10来源:互联网 阅读 ()
一个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");
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:质量管理的八项原则和十三项步骤
下一篇:我们是否需要软件工程
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash