logo资料库

杭电操作系统实验.docx

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
实验二:Linux内核模块编程
一、项目设计方案
1. 本实验总体设计思路
2. 本实验中主要函数的接口设计
3. 主要函数程序设计思路、程序设计流程图
4. 对设计方案的创新性分析
二、项目实现过程
1. 实现过程中遇到的问题、原因及解决方法
2. 分析程序运行结果
3. 分析程序实现中的创新性;
三、对项目的进一步思考
1. 分析你所实现的程序的性能、优缺点
2. 考虑的改进思路
3. 对实验的建议
四、参考文献
五、完整代码
List.c
Query.c
实验二:Linux 内核模块编程 16051532 叶文炜 目录 实验二:Linux 内核模块编程...........................................................................................................................1 一、项目设计方案...................................................................................................................................... 2 1. 本实验总体设计思路.................................................................................................................. 2 2. 本实验中主要函数的接口设计................................................................................................2 3. 主要函数程序设计思路、程序设计流程图........................................................................ 3 4. 对设计方案的创新性分析......................................................................................................... 4 二、项目实现过程...................................................................................................................................... 4 1. 实现过程中遇到的问题、原因及解决方法........................................................................ 4 2. 分析程序运行结果.......................................................................................................................8 3. 分析程序实现中的创新性;.................................................................................................... 8 三、对项目的进一步思考........................................................................................................................ 8 1. 分析你所实现的程序的性能、优缺点..................................................................................8 2. 考虑的改进思路............................................................................................................................8 3. 对实验的建议................................................................................................................................ 8 四、参考文献................................................................................................................................................9 五、完整代码................................................................................................................................................9
一、项目设计方案 1. 本实验总体设计思路 实现两个模块,第一个模块列出系统中所有内核线程的程序名、PID、进程状态、进程优先 级、父进程的 PID。通过`for_each_process`来遍历进程列表;用`task_struct->mm`判断是否 为内核线程;用`get_task_parent`来获得父进程; 第二个模块输入一 PID 输出该进程的家族信息、包括父进程、兄弟进程和子进程的程序名、 PID、进程状态。 2. 本实验中主要函数的接口设计 第一个模块,无需输入; 第二个模块,输入 PID。
3. 主要函数程序设计思路、程序设计流程图 Figure 1 模块一流程
Figure 2 模块二流程 4. 对设计方案的创新性分析 二、项目实现过程 1. 实现过程中遇到的问题、原因及解决方法 i. 编写第一个模块的代码
编写 Makefile ii. 尝试编译,报错,如下 查阅资料,得知需要引入 init_task.h 引入 init_task.h 头文件,并且初始化变量。 iii. 再次编译,出现两个 warning 很明显是类型的问题,进行修正后再次编译。 没有报错。 iv. 使用 insmod 加载模块 发生错误找不到模块 查看当前目录发现确有 list.ko 文件 尝试使用 sudo insmod list.ko,成功加载。 使用 lsmod | grep list 确认是否成功加载:
v. 使用 dmesg 查看输出信息: 符合预期!
vi. 编写模块二代码 vii. 编写模块二 Makefile viii. 使用 sudo insmod query.ko pid=320 加载模块 得到输出、符合预期
2. 分析程序运行结果 3. 分析程序实现中的创新性; 三、对项目的进一步思考 1. 分析你所实现的程序的性能、优缺点 2. 考虑的改进思路 3. 对实验的建议
分享到:
收藏