Ubuntu18.04+linux_5.2.5添加系统调用
添加系统调用
实验环境
Ubuntu18.04
linux_5.2.5内核源代码
vscode
实验步骤
方法一
修改内核源代码,添加系统调用
- 1.内核目录/arch/x86/entry/syscalls/syscall_64.tbl
- 2./usr/include/asm-generic/unitsd.h
- 3.内核目录/kernel/sys.c
方法二
修改内核源代码,添加系统调用
- 1.内核目录/arch/x86/entry/syscalls/syscall_64.tbl
- 2.内核目录/kernel/sys.c
- 3./include/linux/syscalls.h
重新编译&安装内核
1.cd内核源代码目录/
2.make mrproper //清除编译过程中产生的所有中间文件
3.make clean //清除上一次产生的编译中间文件
4.make menuconfig //图形化界面,方便选择一些功能
直接exit并保存即可
//编译内核源代码:make -j2(根据自己的CPU情况,设置-jN)
安装内核
安装内核模块
sudo make modules_install
安装内核
sudo make install
安装内核的头文件(可选)
sudo make headers_install(本人没有安装)
修改grub启用新版本内核
1.打开grub文件:vi /etc/defaule/grub
2.将"GRUB_CMDLINE_LINUX_DEFAULT"的值由"quiet"改为"text"并保存
3.update-grub保存配置
重启系统
sudo reboot
查看当前内核版本:uname -a
验证系统调用的有效性
vi syscall_test.c
gcc -o sys_test sys_test.c
如图所示,显示了当前进程的内核栈大小
卸载内核版本
- 1.sudo dpkg --get-selections | grep ‘linux’
- 2.sudo apt-get purge + image/headers名称