linux内核4.15.5添加系统调用

1.编译内核方法

a.首先介绍linux4.15.5内核编译方法(x86平台实验)

    make ARCH=x86 defconfig

此命令会在linux-4.15.5根目录生成.config内核配置文件

b.)编译内核

    make ARCH=x86 bzImage -j4

此命令会在linux-4.15.5/arch/x86/boot/生成bzImage(内核压缩文件)

2.添加系统调用:

a.)在linux-4.15.5/arch/x86/entry/syscalls/syscall_32.tbl最后面一行添加需要添加的系统调用函数

linux内核4.15.5添加系统调用

b.)在linux-4.15.5/include/linux/syscalls.h中添加系统调用头文件引用

linux内核4.15.5添加系统调用

c.)在linux-4.15.5根目录新建文件夹mycall,在文件夹中新建Makefile文件和mycall.c文件

linux内核4.15.5添加系统调用

linux内核4.15.5添加系统调用

d)在linux-4.15.5跟目录中的Makefile文件添加上一步添加的mycall文件夹

linux内核4.15.5添加系统调用

3.重新按照第一步介绍的编译内核方法生成bzImage即可

4.在用户层验证:

a)新建test.c测试程序,然后使用静态库编译,便于测试 gcc test.c -o test -static :

linux内核4.15.5添加系统调用

b)使用qemu-system-x86_64 启动内核测试结果

linux内核4.15.5添加系统调用

此文章并不完整,省去了busybox的构建和根文件系统的简单制作:)