首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在哪里可以在Linux中找到syscall_64.tbl?

在哪里可以在Linux中找到syscall_64.tbl?
EN

Unix & Linux用户
提问于 2020-10-23 14:32:42
回答 1查看 1.4K关注 0票数 1

我按照本指南在Linux内核"向Linux内核添加Hello系统调用“中添加了自己的自定义系统调用。

在步骤5中,它要求修改系统调用表,方法是

/usr/src/linux-headers-x.x.x-xx/arch/x86/entry/syscalls/

我使用OS版本-Ubuntu20.04.1和内核版本5.4.0-42查看了我的系统,但是特定的目录只有三个文件

Makefile syscallhdr.sh syscalltbl.sh

我在网上搜索,发现更新版本的Linux使用这个bash脚本syscalltbl.sh来生成包含所有系统调用号的所需文件。所以想要运行这个文件,但由于权限问题(我是Linux的新手,所以不觉得多碰东西是个好主意)。

然后我搜索了另一个指南,因为我上面提到的指南大约有2年的历史,所以我发现这个视频教程是在4个月前创建的,叫做"将自己的系统调用添加到Linux内核“。

在这种情况下,这个家伙使用了已经存在的syscall_64.tbl文件( .sh文件太存在了),所以我认为这可能是我的机器上的一些问题,因为"官方GitHub储存库“还包含.tbl文件和bash脚本。

我将内核升级到最新版本5.9.0-050900-泛型,但仍然是目录

/usr/src/linux-headers-5.9.0-050900/arch/x86/entry/syscalls

只有Makefile的bash文件。

那么,在我的系统中,究竟在哪里可以找到syscall_64.tbl呢?

我想到的唯一一件事就是使用syscall_64.tbl上可用的syscall_64.tbl文件自己在上述目录中创建GitHub。但我认为这不是个好主意,可能会有风险,我对此一无所知。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-10-23 15:38:41

这个文件在Linux内核的源代码中。您可以为kernel.org的最新版本抓取一个tarball。

如果您想修改Linux内核,我会构建一个新内核(独立于您的主系统),并在像QEMU这样的虚拟机中运行它。您可以在互联网上找到各种指南,比如在Qemu中构建和运行最小的Linux / Busybox系统,这些指南向您展示了如何建立和运行一个小的开发环境。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/616045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档