Linux内核模块实践:进程管理与模块开发

需积分: 0 0 下载量 156 浏览量 更新于2024-08-03 收藏 1.34MB DOCX 举报
本资源是一份《操作系统》课程设计文档,由学生李斯文于2023年秋季学期完成,隶属于计算机与信息工程学院计算机科学与技术2021级5班。实验内容分为两个部分:一是编写一个简单的内核模块,用于显示系统进程列表,通过这个模块了解用户空间和内核空间的关系;二是创建一个名为"process"的模块,用于遍历和打印系统进程信息。 实验一的目标是实现模块加载时的进程信息报告,具体步骤包括: 1. 编写hello模块: - 创建`hello.c`源代码文件,编写打印"Hello, World!"的简单程序。 - 更新Makefile,设置编译规则和模块名。 - 使用`make`命令编译模块,然后通过`insmod hello.ko`加载模块。 - 通过`dmesg`命令查看模块加载后的输出,确认模块工作正常。 2. 扩展模块功能,遍历进程描述符: - 创建`process.c`文件,实现模块的进程遍历功能。 - 在Makefile中配置,编译并加载新的`process.ko`模块。 - 使用`dmesg`命令观察模块运行后,系统进程列表的更新情况。 - 完成后,通过`rmmod process`卸载模块,并再次确认其已成功卸载。 整个实验过程中,学生不仅锻炼了编程技能,还深入理解了操作系统中的内核模块、用户空间和内核空间交互,以及模块管理的基本流程。通过这些实践操作,学生对操作系统原理有了更直观的认识,提升了实际操作能力。