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名称
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章