Linux内核模块课程设计.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux内核模块课程设计

Linux课程设计 项目名称: 内核模块编程 姓 名: ***** 班 级: 计算机*班 学 号: 2008**** 指导教师: ** 日 期: 2011.6.19—2011.6.24 目录 一.课程设计目的 2 二.任务描述 2 三.选题原因 2 四、准备阶段 3 五.整体思路 8 六.程序代码 8 七.遇到的问题 12 八.测试结果 13 九.总结 15 一.课程设计目的 通过课程设计对操作系统综合$sN[ _H;`1o7f0 C语言应用程序LUPA开源社区#t)VsE+s7T ?? 内核模块程序LUPA开源社区1~|-CX*C*U%sq4L1p 使用函数LUPA开源社区g(`D chD ??Libc库LUPA开源社区)l-KY5V:e4[5b ? ?内核函数7si zK)O*n0 运行空间aWx7`h0 ??用户空间LUPA开源社区#I wYfTV+H ? ?内核空间$~?k(e u7HQY4I0 运行权限!e{ O;ba`8X#H0 ??普通用户LUPA开源社区:X} AJ%A4u ? ?超级用户LUPA开源社区W7P!MUbMLP 入口函数xBJ(H:B[ H0 ? ?main()LUPA开源社区;fC.U o6F%e r H@8H ??module_init()4f RQV j KZ~M6F0 出口函数LUPA开源社区2r)}v0Q%wW I ? ?exit()LUPA开源社区cSr,o/Vzi ??module_exit()LUPA开源社区v%K$IgD$j5[?(a 编译LUPA开源社区h%Ny mUZ2qt!A ??Gcc –cLUPA开源社区@3_;M[[+@ ??Makefile 连接+H(iB f.w$v7J0 ??GccLUPA开源社区wZKg!oL ??insmodLUPA开源社区Egc0E y C6O W 运行LUPA开源社区*o_$\`G ??直接运行LUPA开源社区o!LK-Q o#dm D ? ? insmodsS#HOn` v0 调试LUPA开源社区uT-Q;kd7x ??Gdb~X.hw~ dP ]0 kdbug, kdb,kgdb等LUPA开源社区T ?o#F.H;m(Bg Make工具通过一个称为 Makefile 的文件来完成并自动维护编译工作。 课本上有提供一个超级通用的Makefile,此文件要与模块在同一个文件夹下。 ifneq ($(KERNELRELEASE),) obj-m += nullparam.o else PWD := $(shell pwd) KVER := $(shell uname -r) KDIR := /lib/modules/$(KVER)/build all: $(MAKE) -C $(KDIR) M=$(PWD) clean: rm -rf *.o *.mod.c *.ko *.symvers *.order *.markers endif KERNELRELEASE是在内核源码的顶层Makefile中定义的一个变量,在第一次读取执行此Makefile时,KERNELRELEASE没有被定义, 所以make将读取执行else之后的内容。如果make的目标是clean,直接执行clean操作,然后结束。当make的目标为all时,-C $(KDIR) 指明跳转到内核源码目录下读取那里的Makefile;M=$(PWD) 表明然后返回到当前目录继续读入、执行当前的Makefile。当从内核源码目录返回时,KERNELRELEASE已被被定义,kbuild也被启动去解析kbuild语法的语句,make将继续读取else之前的内容。else之前的内容为kbuild语法的语句, 指明模块源码中各文件的依赖关系,以及要生成的目标模块名。obj-m += nullparam.o表示编译连接后将生成nullparam.o模块 2.用户级线程指不需要内核支持而在用户程序中实现的线程,其不依赖于操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程的函数来控制用户线

文档评论(0)

love3892 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档