在Linux 4.x内核中增加系统调用

1. 下载内核源码

wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.tar.gz .

2. 增加系统调用号

在系统调用入口表中增加一项:
vim arch/x86/entry/syscalls/syscall_64.tbl

3. 声明系统调用函数

vim include/linux/syscalls.h
在末端加入系统调用函数的声明

4. 实现系统调用函数

vim kernel/sys.c
在文件末端加入对应的实现函数:

5. 编译安装内核

编译安装内核用到以下命令
make x86_64_defconfig
make -j8  #-j后面的数字表示多线程编译的个数
sudo make modules_install
sudo make install
sudo reboot
重启后通过uname -r发现当前系统内核已被更新

6. 测试

6.1 编写测试用例:

#include<unistd.h>  
int main() {  
    for(int i = 0; i < 5; i++) {  
        syscall(326, i);  
    }  
    return 0;  
}  

6.2 打印结果