linux内核模块课程设计

linux内核模块课程设计

ID:18873533

大小:876.00 KB

页数:15页

时间:2018-09-26

linux内核模块课程设计_第1页
linux内核模块课程设计_第2页
linux内核模块课程设计_第3页
linux内核模块课程设计_第4页
linux内核模块课程设计_第5页
资源描述:

《linux内核模块课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux课程设计项目名称:内核模块编程姓名:*****班级:计算机*班学号:2008****指导教师:**日期:2011.6.19—2011.6.2415目录一.课程设计目的2二.任务描述2三.选题原因2四、准备阶段3五.整体思路8六.程序代码8七.遇到的问题12八.测试结果13九.总结1515一.课程设计目的通过课程设计对操作系统基本原理进行更深入的认识,以Linux为具体研究对象,分析理解操作系统底层实现,综合利用已学知识与技术,就Linux操作系统各功能方面进行模拟或实现二.任务描述编写p

2、roc文件系统相关的内核模块:设计一个模块,该模块功能是列出系统中所有内核线程的程序名、PID号和进程状态。再设计一个带参数的模块,参数为进程的PID号,功能是列出进程的家族信息,包括父进程、兄弟进程和子进程的程序名、PID号。三.选题原因学习操作系统时,没有把内核这一块学好,所以想借此机会加强对操作系统底层的理解。四、准备阶段看到此题时不知道proc文件的作用,对内核的概念也很模糊,并且错误的以为内核利用一些命令来调用进程呢。很多东西都不理解,所以首先是看书上网逐一进行学习。下面是查找的一些资料

3、。1.关于linux内核编程书本上有详细介绍并且也比较好理解。首先把书上例题演示了一遍,对模块编程就掌握的差不多了。模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到内核作为内核的一部分在内核空间运行,这与运行在用户空间的进程是不同的。模块通常由一组函数和数据结构组成,用来实现一种文件系统、一个驱动程序或其他内核上层的功能。应用程序与内核模块程序的比较$sN[_H;`1o7f0C语言应用程序LUPA开源社区#t)VsE+s7T  内核模块程序LUPA开源社区1

4、~

5、-CX*C*U%s"q4L1p15使用函数LUPA开源社区g(`Dc'hD  Libc库LUPA开源社区)l-KY5V:e4[5b  内核函数7sizK)O*n0运行空间aWx7`h0  用户空间LUPA开源社区#IwYfTV+H  内核空间$~?k(eu7HQY4I0运行权限!e{O;ba`8X#H0  普通用户LUPA开源社区:X}AJ%A4u  超级用户LUPA开源社区W7P!MUbMLP入口函数&xBJ(H:B[H0  ma

6、in()LUPA开源社区;fC.Uo6F%erH@8H  module_init()4fRQVjKZ~M6F0出口函数LUPA开源社区2r)}v0Q%wWI  exit()LUPA开源社区cSr,o/Vzi  module_exit()LUPA开源社区v%K$IgD$j5[?(a编译LUPA开源社区h%NymUZ2qt!A  Gcc–cLUPA开源社区@3_;M[[+@  Makefile连接+H(iBf.w$v7J0  GccLUPA开源社区&

7、wZKg!o&L  insmodLUPA开源社区Egc0EyC6OW运行LUPA开源社区*o_$&`G  直接运行LUPA开源社区'o!LK-Qo#dmD  insmodsS#HOn`v0调试LUPA开源社区uT-Q;kd7x  Gdb~X.hw~dP]0kdbug,kdb,kgdb等LUPA开源社区T?o#F.H;m(Bg2.编译工具make:Make工具通过一个称为Makefile的文件来完成并自动维护编译工作。课本上有提供一个超级通用的M

8、akefile,此文件要与模块在同一个文件夹下。ifneq($(KERNELRELEASE),)obj-m+=nullparam.oelsePWD:=$(shellpwd)KVER:=$(shelluname-r)KDIR:=/lib/modules/$(KVER)/buildall:$(MAKE)-C$(KDIR)M=$(PWD)clean:rm-rf*.o*.mod.c*.ko*.symvers*.order*.markersendifKERNELRELEASE是在内核源码的顶层Makefil

9、e中定义的一个变量,在第一次读取执行此Makefile时,KERNELRELEASE没有被定义,15所以make将读取执行else之后的内容。如果make的目标是clean,直接执行clean操作,然后结束。当make的目标为all时,-C$(KDIR)指明跳转到内核源码目录下读取那里的Makefile;M=$(PWD)表明然后返回到当前目录继续读入、执行当前的Makefile。当从内核源码目录返回时,KERNELRELEASE已被被定义,kbuild也被启动去解析kbuild语法

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

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

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