Linux操作系统--内核-模块.doc

Linux操作系统--内核-模块.doc

ID:49934632

大小:44.00 KB

页数:6页

时间:2020-03-03

Linux操作系统--内核-模块.doc_第1页
Linux操作系统--内核-模块.doc_第2页
Linux操作系统--内核-模块.doc_第3页
Linux操作系统--内核-模块.doc_第4页
Linux操作系统--内核-模块.doc_第5页
资源描述:

《Linux操作系统--内核-模块.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、新乡学院计算机与信息工程学院实验报告课程名称操作系统原理专业计算机科学与技术班级3班学号2013052701XX姓名XXX实验成绩任课教师XXX2013年12月3日实验名称模块姓名XXX成绩实验地点A14-322实验时间2013年12月3日一、实验目的与要求实验目的:进一步熟悉linux中模块实验要求:认真二、操作步骤1、编写hellomod.c文件代码,代码如下:#include#include#include/

2、*头文件*/staticint__initlkp_init(void)/*函数lkp_init()是模块的初始化函数*/{printk("<1>Hrllo,World!fromthekernelspace..");/*我们在这里使用了printk()函数,该函数是由内核定义的,功能与C库中的printf()类似,它把要打印的信息输出到终端或系统日志。字符串中的<1>是输出的级别,表示立即在终端输出*/return0;}staticvoid__exitlkp_cleanup(void)/*函数lkp_c

3、leanup()是模块的退出和清理函数*/{printk("<1>GoodBye,World!Leavingkernelspace...");}module_init(lkp_init);/*module_init()向内核注册模块所提供的新功能*/module_exit(lkp_cleanup);MODULE_LICENSE("GPL");/*内核该模块具有GNU公共许可证*/2.编写Makefile文件代码,代码如下:obj-m:=hellomod.oCURRENT_PATH:=$(shellpw

4、d)LINUX_KERNEL:=$(shelluname-r)#Linux内核源代码的当前版本LINUX_KERNEL_PATH:=/lib/modules/$(shelluname-r)/build#Linux内核源代码的绝对路径all:make-C$(LINUX_KERNEL_PATH)M=$(CURRENT_PATH)modules#编译模块clean:make-C$(LINUX_KERNEL_PATH)M=$(CURRENT_PATH)clean#清理3、行编译:在list.c和Makefile文

5、件的当前路径执行make命令。得到模块文件。4、加载模块:依然是在当前路径执行insmodlist.ko5、查看模块列表:执行命令lsmod6、卸载模块:执行命令rmmodlist7、查看输出信息:执行tail命令一、实验结果1.在模块文件hellomod.c和Makefile当前打开终端,输入make命令之后,所在的文件会编译出其他文件[root@localhost桌面]#makemake-C/lib/modules/2.6.32-279.el6.i686/buildM=/root/桌面modules#

6、编译模块make[1]:Enteringdirectory`/usr/src/kernels/2.6.32-279.el6.i686'Buildingmodules,stage2.MODPOST1modulesmake[1]:Leavingdirectory`/usr/src/kernels/2.6.32-279.el6.i686'[root@localhost桌面]#ls123hellomod.chellomod.kohellomod.mod.chellomod.oMakefilemodules.ord

7、erresulta.txt~hellomod.c~hellomod.ko.unsignedhellomod.mod.ohellomod.txtMakefile~Module.symverstools2.在运行插入模块insmod之后,出现执行插入模块操作后,再次查看模块列表就会看到hellomod模块存在。[root@localhost桌面]#insmodhellomod.ko[root@localhost桌面]#lsmodModuleSizeUsedbyhellomod6240vfat85750fat4

8、70491vfatusb_storage391080fuse568002ebtable_nat14690ebtables151761ebtable_natipt_MASQUERADE182233.执行卸载模块命令后就会发现hellomod模块从模块列表中消失。[root@localhost桌面]#rmmodhellomod[root@localhost桌面]#lsmodModuleSizeUsedbyvfat85750fat4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。