【实验环境】
Fedora,内核2.6.21.6
【实验步骤】
1. cd /usr/src/linux
2. vi kernel/sys.c
在最后添加如下代码:
上述代码实现遍历整个任务列表,并将进程id,name 及state 打印在屏幕上,返回进程总
7
数。
3. vi arch/i386/kernel/syscall_table.S
在最后加入 .long sys_processinfo
4. vi include/asm/unistd.h
在中间添加 #define __NR_process 322 分配系统调用号
将下面改为 #define NR_syscalls 323
5. vi /usr/include/asm/unistd.h
在最后添加 #define __NR_process 322
6. 开始重新编译内核
cd /usr/src/linux
make mrproper
make menuconfig
make
make modules_install
make install
reboot
7. 进入新内核,编写测试程序test.c
8. gcc –o test test.c
9. ./test 显示结果