第一次Linux作业
增加系统调用,其实很简单。网上到处都是。我这里简单说一下:
1.
include/Linux/unistd.h,在里面添加一个新的系统调用号。
#define __NR_mysyscall 320
2.
arch/i386/kernel/table.s,在里面添加相应的表项
.long SYSMBOL_NAME(sys_mysyscall)
注:好多地方都说在arch/i386/kernel/entry.S里面添加。应该是内核版本问题。我用
的内核版本是2.60.
3.
在kernel/sys.c里面添加该系统调用实现的功能。
asmlinkage int sys_mysyscall(void)
{
return 0:
}
用gedit打开sys.c文件居然是乱码,只能用vim,用得不爽。
这就增加了一个系统调用。其实也很简单
最后要写个系统调用的测试程序,差点晕死.
我用了以前内核2.4的调用版本_syscall0(int,syscallname)这种形式,居然现在不支持.考.
现在需要用syscall(syscallnumber,参数)这种形式调用.
感叹一下,Linux更新太快,好多书都跟不上了.