电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Linux课程设计报告编写proc文件系统相关的内核模块VIP免费

Linux课程设计报告编写proc文件系统相关的内核模块_第1页
1/8
Linux课程设计报告编写proc文件系统相关的内核模块_第2页
2/8
Linux课程设计报告编写proc文件系统相关的内核模块_第3页
3/8
Lin u x 课程设计报告 学院:信息学院 专业班级:08 级网络二班 姓名: 学号: 【实验目的】 1.通过课程设计对操作系统基本原理进行更深入的认识,以Linux 为具体研究对象,分析理解操作系统底层实现,综合利用已学知识与技术,就Linux 操作系统各功能方面进行模拟或实现 2.了解内核模块结构 3.熟练内核模块编程,练习使用makefile 【实验要求】 编写proc 文件系统相关的内核模块: 设计一个模块,该模块功能是列出系统中所有内核线程的程序名、PID 号和进程状态。再设计一个带参数的模块,参数为进程的PID 号,功能是列出进程的家族信息,包括父进程、兄弟进程和子进程的程序名、PID 号。 【实验步骤】 1. 编写list.c 模块 2. 编写Makefile 3. make 编译模块 4. 安装模块su do insmod list.ko 5. 查看系统信息 dmesg 6. 退出模块su do rmmod list 7. 编写list2.c 模块 8. 编写Makefile 9. make 编译模块 10. 安装模块su do insmod list2.ko 11. 查看系统信息 dmesg 12. 退出模块su do rmmod list2 【代码实现】 1.list.c #inclu de #inclu de #inclu de #inclu de #include #define METHOD 1 static int list_init(void) { struct task_struct *p; int count; char *method; count = 0; /*下面这些初始化完全是为了消除编译时的警告信息*/ p = NULL; method = NULL; method="for_each_process"; printk( "The method is %s\n", method ); printk(KERN_ALERT"进程号\t 父进程\t 状态\t 名称\n"); #if METHOD == 1 for_each_process(p) { count++; printk( KERN_ALERT "%d\t%d\t%ld\t%s\n", p->pid,p->parent->pid,p->state, p->comm ); } #endif printk("系统当前共 %d 个进程!!", count); return 0; } static void list_exit(void) { printk( KERN_ALERT "GOOD BYE!!\n"); } module_init( list_init ); module_exit( list_exit ); MODULE_AUTHOR( "Along" ); MODULE_LICENSE( "GPL" ); makefile ifneq ($(KERNELRELEASE),) obj-m := list.o else KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KE...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Linux课程设计报告编写proc文件系统相关的内核模块

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部