linux内核模块实验(2学时)
更新时间:2024-04-22 22:54:01 阅读量: 综合文库 文档下载
第一个内核模块实验
一: 预习要求:
( 1 ) 做本实验之前,请复习相关内核模块知识。 ( 2 ) 请了解内核模块的编写、编译及安装与卸载方法。 ( 3 ) 请学习内核打印函数 printk() 的用法。 ( 4 ) 请复习 Makefile 文件的编写。 二:实验目的:
( 1 ) 掌握内核模块的组成部分。
( 2 ) 掌握内核模块的编译、安装与卸载方法。 ( 3 ) 学会查看内核模块的信息。 三:实验任务:
编写一个内核模块module,向外导出两个函数,分别是“求累积和”和“求阶乘”功能。编写另两个内核模块module1、module2,分别使用上面module模块中的函数,实现计算。注意路径清晰,分别在三个目录下编写。 四:实验原理及方法:
Linux 内核模块( LKM )是一些在启动的操作系统内核需要时可以载入内核执行的代码块,不需要时由操作系统卸载。它们扩展了操作系统内核功能却不需要重新编译内核、启动系统。如果没有内核模块,就不得不反复编译生成操作系统的内核镜像来加入新功能,当附加的功能很多时,还会使内核变得臃肿。 一个 Linux 内核模块主要由以下几个部分组成:
(1) 模块加载函数 ( 必须 ) :当通过 insmod 或 modprobe 命令加载内核模块时,模块的 加(1) 模块加载函数 ( 必须 ) :当通过 insmod 或 modprobe 命令加载内核模块时,模块的加载函数会自动被内核执行,完成本模块相关初始化工作。
(2) 模块卸载函数(必须):当通过 rmmod 命令卸载模块时,模块的卸载函数会自动被内核执行,完成与模块加载函数相反的功能。
(3) 模块许可证声明(必须):模块许可证( LICENCE )声明描述内核模块的许可权限,如果不声明 LICENCE, 模块被加载时将收到内核被污染的警告。大多数情况下内核模块应遵循 GPL 兼容许可权。 L inux2.6内核模块最常见的是
以MODULE_LICENSE( “ Dual BSD/GPL ” ) 语句声明模块采用 BSD/GPL 双 LICENSE 。
(4) 模块参数(可选):模块参数是模块被加载的时候可以被传递给他的值,它本身对应模块内部的全局变量。
(5) 模块导出符号(可选):内核模块可以导出符号 (symbol, 对应于函数或变量 ) ,这样其他模块可以使用本模块中的变量或函数。 (6) 模块作者等信息声明(可选)。
一个内核模块至少包含两个函数,模块被加载时执行的初始化函数 init_module() 和模块被卸载时执行的结束函数 cleanup_module() 。在最新内核稳定版本 2.6 中,两个函数可以起任意的名字,通过宏module_init() 和 module_exit() 注册调用。
五:实验步骤:
1. 创建目录modparm,在modparm下创建module1和module2目录(同学也可以创建不同的目录,因为每个模块都有自己的Makefile文件,所以每个Makefile必须在不同的目录下)。在modparm存放modtest模块,在module1下存放module1模块,在module2下存放module2模块。
我的电脑上如下:
2,编写模块的源程序和其Makefile文件
(1)modtest.c的清单如下:
modtest.的Makefile如下:
(2)module1.c清单如下:
module1的Makefile如下:
(3) module2.c清单如下:
Module2的Makefile如下:
3 编译模块
(1)把生成modtest.ko模块时生成的Module.symvers放到module1文件夹中。这样编译module1时,符号信息就会自动链接进去了。 (2)分别执行make命令,编译modtest.c、module1.c、module2.c
c
4 安装模块
5查看模块lsmod
查看安装是否成功,下图中可看到module1和module2的使用者数量为0,
而modtest被module1和module2使用,因此其使用者数量为2。
6 看模块输出信息
7 卸载模块rmmod.因为modtest被module1和module2使用,所以必须先卸载module1和module2,最后卸载modtest。
正在阅读:
linux内核模块实验(2学时)04-22
【结婚时神父说的话2016】结婚时神父说的话2016大全02-10
会计基础 宝典 纠正版 - 图文01-11
我和同学发生的事作文200字07-09
35kV固定式开关柜标准技术标书05-18
反违章指挥 反违章操作和反违反劳动纪律考核处罚办法05-13
混合式教学在无机化学的应用12-12
《我是参与者》教案103-03
电缆桥架接地的施工要求04-16
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 学时
- 内核
- 模块
- 实验
- linux
- 双凤中学2012级决战中考百日冲刺誓师大会
- 第五章习题及答案
- 期权知识考试题库(带答案)
- 《测量学》模拟试卷2
- 人教版小学四年级期末数学竞赛卷共七套
- 2009年全国大学生电子设计竞赛获奖名单
- 一级建造师考试工程经济试题及答案 doc - 图文
- 2014年“TI杯”天津市大学生电子设计大赛获奖名单
- 西藏电力有限公司规章制度解释管理办法
- 社区护理
- 党支部书记先进事迹
- 13级《计算机电路基础》半导体 晶体二极管习题一答案2015-10-2
- 初二语文病句练习学案
- 财管成本管理习题1
- 单位外网用工备案操作手册
- 教学能手大赛答辩题目
- 区域地理之日本气候 - 图文
- 农村宅基地审批申请书范文
- 建筑材料或制品的单体燃烧试验操作规程
- 西大2017版1138《生物技术制药概论》网上作业及课程考试复习资料