未找到 syscall_table_32.S 文件

未找到 syscall_table_32.S 文件

我想向 Linux 添加系统调用,但在训练数据中我们需要更改文件linux/arch/i386/kernel/entry.Sarch/x86/kernel/syscall_table_32.S。我找不到文件。我找了找,但找不到,而且我没有名为 i386 的文件夹。请帮帮我。是必要的。

答案1

首先你需要 Linux 内核的源代码。你可以从这里下载内核网站或者从 Ubuntu 安装软件包linux-source。在后一种情况下,你会发现已应用了一些来自 Ubuntu 的补丁。

通常源代码位于 下/usr/src。如果您已在那里解压文件或安装了软件包,您将找到上面提到的树。因此,最新的内核版本有一个名为entry_32.Sentry_64.S在子目录中arch/x86/kernel。后面的部分arch有名称x86,而不是i386您提到的。如果要使用,i386您应该选择低于 3.7 的内核版本,因为i386从 3.7 开始已被删除。

答案2

entry_64.S 文件不是您需要修改的等效文件……这取决于您要做什么。如果您要向内核添加自定义系统调用,请修改文件/arch/x86/syscalls/syscall_64.tbl

相关内容