- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
下载
下载
下载
第四篇 L i n u x系统高级编程
第18章 Linux 内核模块编程
本章从一个简单的程序Hello Wo r l d开始介绍L i n u x 内核模块的编程。
18.1 一个简单程序Hello World
一个内核模块至少包括两个函数:一个是初始化函数 i n i t _ m o d u l e ,在模块被插入到内核时
使用;另一个是清除函数 c l e a n u p _ m o d u l e ,在模块被从内核中移走时使用。一般情况下,函数
i n i t _ m o d u l e或者在内核中注册一个处理程序,或者使用自己的代码替换一个内核函数。函数
c l e a n u p _ m o d u l e 的作用是清除i n i t _ m o d u l e所作的任何事情,这样模块可以安全地卸载。
下面来看一个简单的程序。
/* hello.c */
/* The necessary header files */
/* Standard in kernel modules */
#include linux/kernel.h /* Were doing kernel work */
#include linux/module.h /* Specifically, a module */
/* Initialize the module */
int init_module()
{
printk(Hello, world - this is the kernel speaking\n);
/* If we return a non zero value, it means that init_module failed and
* the kernel module cant be loaded */
return 0;
}
/* Cleanup - undid whatever init_module did */
void cleanup_module()
{
printk(Short is the life of a kernel module\n);
}
# Makefile for a basic kernel module
C C = g c c
MODCFLAGS := -O6 -Wall -DCONFIG_KERNELD -DMODULE -D__KERNEL__ -DLinux
h e l l o . o : hello.c /usr/include/linux/version.h
$(CC) $(MODCFLAGS) -c hello.c
echo insmod hello.o to turn it on
echo rmmod hello to turn if off
e c h o
echo X and kernel programming do not mix.
echo Do the insmod and rmmod from outside X.
152计计第四篇 Linux 系统高级编程
下载
现在,你可以登录到超级用户下,然后执行 insmod hello 和rmmod hello 。你可以在
/ p r o c / m o d u l e s 中查看新的内核模块。
18.2 设备文件
内核模块包括两种方法和一个进程通信。一种方法是使用设备文件,例如目录 / d e v 下的文
件,另一种方法是使用文件系统。因为编写内核模块的一个主要
您可能关注的文档
- .DLT5117-2000 水下不分散溷凝土试验规程.pdf
- .DLT5382-2007水电工程建设征地移民安置补偿费用概(估)算编制规范.pdf
- .DLZ 713-2000 500kV变电所保护和控制设备抗扰度要求.doc
- .DS7400(V4.0)安装手册.doc
- .E6字技术(深圳)有限公司尽职调查报告.pdf
- .excel学习笔记(打印版).doc
- .FANUC 0i Mate TC系统车床编程详解.pdf
- .FANUC O系统操作编程说明书.doc
- .fanuc_0d数控系统编程说明书.pdf
- .Flash-MX动画制作案例教程-章力成-北京科海电子出版社.pdf
- (二模)齐齐哈尔市2025届高三第二次模拟考试 语文试卷(含答案).docx
- (一模)2025年汕头市2025届高三高考第一次模拟考试 政治试卷(含答案).docx
- 怀化市2025届高三二模政治试卷(含答案 ).docx
- (甘肃二诊)2025年甘肃省高三月考试卷(4月) 政治试卷(含答案 ).docx
- (甘肃二诊)2025年甘肃省高三月考试卷(4月) 历史试卷(含答案).docx
- (三模)2025年邵阳市高三第三次联考政治试卷(含答案 ).docx
- (四模)榆林市2024 -2025年度高四第四次模拟检测 英语试卷(含答案).docx
- 2025北京四中初三(下)开学考英语试卷.pdf
- (二模)唐山市2025届高三高考第二次模拟演练 英语试卷(含答案).docx
- (甘肃一诊)2025年甘肃省高三月考试卷(3月) 政治试卷(含答案 ).docx
文档评论(0)