- 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
- 第12课 大一统王朝的巩固 课件(20张ppt).pptx
- 第17课 君主立宪制的英国 课件.pptx
- 第6课 戊戌变法 课件(22张ppt).pptx
- 第三章 物态变化 第2节_熔化和凝固_课件 (共46张ppt) 人教版(2024) 八年级上册.pptx
- 第三章 物态变化 第5节_跨学科实践:探索厨房中的物态变化问题_课件 (共28张ppt) 人教版(2024) 八年级上册.pptx
- 2025年山东省中考英语一轮复习外研版九年级上册.教材核心考点精讲精练(61页,含答案).docx
- 2025年山东省中考英语一轮复习(鲁教版)教材核心讲练六年级上册(24页,含答案).docx
- 第12课近代战争与西方文化的扩张 课件(共48张ppt)1.pptx
- 第11课 西汉建立和“文景之治” 课件(共17张ppt)1.pptx
- 唱歌 跳绳课件(共15张ppt内嵌音频)人音版(简谱)(2024)音乐一年级上册第三单元 快乐的一天1.pptx
文档评论(0)