ubuntu 编写自定义系统调用函数

本文可能会用到编译内核的相关知识,具体请看Ubuntu 编译内核

第一步:选定要编写的内核,解压

具体请看Ubuntu 编译内核

第二步:编写系统调用函数

进入安装的目录
cd /usr/src/linux-4.20.15/
sudo vim kernel/sys.c

在vim下 Ctrl+F Ctrl+B 快速翻页

在末尾加入自定义代码

asmlinkage void sys_hello(void)
{
  printk("hello");
}

printk 运行在内核态 之后用dmesg查看输出内容

按esc :wq!退出

第三步:声明调用函数

sudo vim arch/x86/include/asm/syscalls.h

IMG_5974.JPG

第四步:增加系统调用号

sudo vim arch/x86/entry/syscalls/syscall_64.tbl
(如图中的335)

IMG_5975.JPG

第四步: 编译内核

具体请看Ubuntu 编译内核

第五步:验证

编写C程序

int main()
{
syscall(335);
return 0;
}
  • gcc -o test test.c
  • ./test
  • dmesg
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容