1、目的:
在现有的系统中添加一个不用传递参数的系统调用。这个系统调用的功能是实现遍历系统中的所有进程。实验主要内容:
- 添加系统调用的名字
- 利用标准 C 库进行包装
- 添加系统调用号
- 在系统调用表中添加相应表项
- sys_mysyscall 的实现
- 编写用户态测试程序
2、步骤:
a)安装依赖库:
sudo apt-get install libncurses5-dev //如果没有ncurses库,则安装
b)下载内核源代码(以3.6.8版本为例):
linux-3.6.8.tar.bz2文件,放到/home目录即可。
c)解压内核源代码:
#su //输入密码,用户权限改为root权限。或用sudo命令
#mv linux-3.6.8.tar.bz2 ~ //把内核代码文件移到主目录。
# cd ~ //进入主目录
# tar jxvf linux-3.6.8.tar.bz2 //解压内核包,生成的内核源代码放在linux.3.6.8目录中
# cd linux-3.6.8
![](https://img-my.csdn.net/uploads/201212/11/1355204740_8324.png)
d)修改内核的系统调用库函数:
Ubuntu12.04(可不用修改)