Linux系统x86-64架构下,从零实现一个系统调用。Ubuntu22.04LTS

本文介绍了如何在Linux x86-64架构下,从零开始创建并实现系统调用。内容包括修改`syscall_64.tbl`添加新的系统调用号,更新`syscalls.h`头文件声明函数,理解用户态到内核态的转换,以及在内核空间中接收和处理用户数据。最后,通过C语言和汇编语言测试编译后的内核,并使用`dmesg`命令查看内核控制台输出。
摘要由CSDN通过智能技术生成
名称 版本
OS Ubuntu 22.04 LTS
Current Kernel 5.15.0-56-generic
Destination Kernel 5.16.60

首先要会编译linux内核的源码,这块在我的另外一片文章里面。
https://blog.csdn.net/jl19861101/article/details/128327069

  1. 打开linux内核源码目录/arch/x86/entry/syscalls/syscall_64.tbl请添加图片描述如图所示,我在这里添加了两个系统调用。系统调用是按照整数,数字排列的,找到这个文件中没有使用的数字,就可以使用。
  2. 打开头文件/include/linux/syscalls.h请添加图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乌拉乌拉liang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值