Linux增加系统功能调用

Linux源代码下载并解压到相应文件目录

1.下载源代码

链接: Linux内核官网.
感觉内核更新的速度超快的~做实验时下载的内核版本为4.15.10,现在好像都5字开头了。
Linux内核官网

2.获取超级用户权限

用 sudo su 命令来获取超级用户权限,成功获取后可以发现字体颜色变得苍白了:)(超级用户为所欲为啊),然后也可以用 whoami 命令来查看
在这里插入图片描述
在这里插入图片描述

3.解压

先将下载好的内核文件移动到/usr/src目录下,切换到该目录,解压文件,然后进入Linux解压文件。
在这里插入图片描述

添加系统调用

1.添加头文件&功能调用函数

进入/usr/src/linux-4.15.10/kernel/sys.c 修改源代码,用命令 gedit sys.c 打开文件,加入linkage.h头文件&增加功能调用函数。

头文件:
在这里插入图片描述

新增的功能调用函数:
在这里我增加功能调用函数是打印函数,当然也可以有其他功能的,如复制等。这里的printk函数是内核专属的。
在这里插入图片描述

2.加入系统调用函数声明

进入目录/usr/src/linux-4.15.10/arch/x86/include/asm,用命令 gedit syscalls.h,然后加入函数声明。
头文件:
#include<linux/linkage.h>
函数:
asmlinkage int sys_mycall(int number);

在这里插入图片描述

3.加入系统调用号

3)进入目录/usr/src/linux-4.15.10/arch/x86/entry/syscalls,用命令 gedit syscall_64.tbl打开文件,然后加入系统调用号,保存,退出。

在这次实验中我新增加的系统功能调用号为333:
在这里插入图片描述

配置并编译内核

编译内核的文章已经写过了,这里不再赘述,不熟悉的同学可以看这篇文章。
链接: 编译Linux内核.

测试结果

1.进入新的内核,编写测试用例

可以用 uname -r 命令来查看当前内核版本
在这里插入图片描述
编写测试用例
在这里插入图片描述

2.编译用例,查看结果

用 gcc 来编译代码,执行代码,然后可以用dmesg命令来查看新增的系统调用函数打印的内容。
在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值