在Ubuntu下添加系统调用
status
category
date
summary
slug
icon
tags
password
需求功能:
- 编写新的Linux系统调用
- 添加系统编号
- 编写用例测试
准备内核
下载并解压内核,并将其移动到
/usr/src
目录下;安装编译内核所需要的依赖,详情参考在Ubuntu 18.04 下编译Linux内核编写系统调用函数
进入需要安装的内核目录:可用
TAB
补全目录编写自己的系统调用函数:
在vim命令模式下,使用Ctrl + F和Ctrl + B可快速翻页
在末尾插入以下代码:
printf运行在用户态,而printk运行在内核态;后者打印的内容不一定显示在终端上,但一定会保存在内核缓冲区里,可以使用dmesg查看
然后
:wq
退出
添加系统调用函数
声明系统调用函数
编辑声明系统调用函数的头文件:(注意路径和文件名不要弄错,推荐使用自动补全)

声明函数
添加系统调用编号
编辑文件:

添加系统调用
编译安装内核
安装内核之后重启,详情参考在Ubuntu 18.04 下编译Linux内核
编写程序验证
创建C程序并执行系统调用:(通过
syscall(xxx);
来调用xxx
号系统调用)
test.c
编译C程序:
执行:
查看结果:

Loading...