在LINUX系统调用的添加(2.6.36版本)中,找到了加载系统调用的一般方法,即1)在kernel/sys.c中写系统函数;2)加系统调用表项;3)添加系统调用号;4)重新编译内核。但是,如果打算不在已有的C文件中写系统调用函数,而是在新文件中添加系统调用函数呢?其中2、3步骤肯定不变,1、4步骤需要仔细考虑。
一、在新文件中添加系统调用函数
根据系统调用原理,只要系统调用号和系统调用表项固定,系统调用函数在哪个文件无所谓。因此,在内核根目录下创建新文件夹,在新文件夹中创建新文件,并在新文件中实现了系统调用。
二、编译新内核
由于添加了新文件夹和新文件,因此需要修改内核根目录下主Makefile文件,并在新文件夹下创建新Makefile。编译新内核。
在重新编译内核时中,建议参考《操作系统 内核修改与编译》http://blog.sina.com.cn/s/blog_59e7ac3c0100wpkp.html进行,其中3.7步骤中# ln -s /usr/src/linux/include/asm-generic asm一步