我正在尝试向Linux内核添加新的系统调用(x86_64)。基于this article解释了如何将系统调用添加到内核(x86)。文章说我需要在名为syscall_table_32.S
的文件中定义我的系统调用名称,该文件位于src/arch/x86/syscall_table_32.S
。
但就我而言,内核源代码中没有名为syscall_table_32.S
或syscall_table_64.S
的文件! src/arch/
中甚至没有x64系统调用表的目录。
那么,内核3.13.0-14-generic(x86_64)中定义的syscall_table_64.S
在哪里?
我在哪里可以定义新的系统调用?
答案 0 :(得分:7)
版本3.3以后与指南使用的2.X不同。您应该在syscalls
目录中查找arch/x86/
目录。所以是:
cd /kernel-src/arch/x86/syscalls/syscall_64.tbl
kernel-src
是您的内核源所在的目录。一个好主意是在SO中阅读this answer并将其与您的资源进行比较。