linux系统增加系统调用,给Linux内核增加一个系统调用

仅作记录,小白萌新,大佬勿喷

1.修改系统调用表文件

系统调用表在内核目录 /arch/x86/entry/syscalls/syscall_64.tbl

对不同版本位置可能不一样

添加自己的系统调用号

54a86bc95bc9

2.声明系统调用服务例程

编辑 内核目录/include/linux/syscalls.h

添加函数声明

54a86bc95bc9

3.实现函数

编辑内核目录/kernel/下的sys.c文件,实现函数

54a86bc95bc9

需要添加一个头文件

54a86bc95bc9

要求学号是偶数返回后六位,奇数返回后五位

4.编译和安装内核sudo make mrproper

sudo make clean

sudo make menuconfig

sudo make -j8

sudo makemodules_install

sudo make install

5.使用新内核启动,进行测试

54a86bc95bc9

测试代码

54a86bc95bc9

运行结果

符合实验要求

6.出现的错误及解决方案

6.1

54a86bc95bc9

编译内核时出现错误

修改menuconfig中的设置

54a86bc95bc9

选择kernel hacking

54a86bc95bc9

选择compile-time checks and compiler options

在 warn for stack frame larger than  将1024修改为4096

6.2

54a86bc95bc9

这个要注意函数声明,系统调用号,函数实现相关的内容要一一对应

6.3

如果重新编译需要执行sudo make mrproper

sudo make clean

清除之前编译的文件,不然编译可能会报错

7.参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值