实验二 创建显示系统进程的信息的proc模块
实验环境
操作系统版本:ubuntu-14.04.1-desktop-i386
下载连接:http://old-releases.ubuntu.com/releases/trusty/ubuntu-14.04.1-desktop-i386.iso
实验课件及源码:https://wwe.lanzouw.com/ilBQnyrwffi
一.实验目的
1、理解proc伪文件系统的基本概念和功能,掌握常见操作命令。
2、了解Linux进程控制块task_strcut,并理解其重要成员变量的含义。
3、理解基于seq_file机制的proc伪文件操作机制
4、熟练掌握生成proc伪文件的Linux内核模块代码实现方法。
二.实验内容
1、从教材提供的电子资源中找到或者按教材提示自己编写Linux内核模块tasklist.c及其对应的Makefile文件
2、该模块创建/proc/tasklist文件,并且提取系统中所有进程的pid、state和名称进行显示。
3、编译、安装、删除该模块,查看该模块的安装位置、运行情况。
三.实验步骤
1、LKM编译、添加、执行以及查询LKM:
2、查看tasklist文件:
3、撤销tasklist.ko:
四.实验总结
此次实验是基于Proc的Linux进程控制块信息读取。我们首先要了解proc伪文件系统的概念,proc伪文件为用户提供了动态操作Linux内核信息的接口,是除系统调用外另一个重要的Linux内核空间和用户空间交换数据途径。proc文件夹包含了当前计算机中重要的资源信息及系统信息。
通过这次实验帮助我了解Linux进程控制块task_strcut,并理解了其重要成员变量的含义。理解了基于seq_file机制的proc伪文件操作机制并且掌握了生成proc伪文件的Linux内核模块代码实现方法。
这次实验使我第二次编写Linux内核模块,仍然是看着老师的ppt比着写的,这次代码比较长,变量比较多,首次编写并没有弄清其各自的功能,当写完第二遍就懂了点了。通过这次实验加深了自己对Linux内核的理解,对操作系统的结构有了更好的理解。