Linux kernel 向linux-2.6.31添加系统调用时,需要修改的文件在哪里

Linux kernel 向linux-2.6.31添加系统调用时,需要修改的文件在哪里,linux-kernel,version,system-calls,unistd.h,Linux Kernel,Version,System Calls,Unistd.h,当我搜索添加一个系统调用时,我得到了很多文章,但它们似乎是针对旧版本的,这似乎也是一个微不足道的过程 但问题是,文章建议的目录不适用于2.6.31版。有人知道unistd.h、syscall\u table.S和syscalls.h或它们对应的文件在哪里吗 提前感谢。在大多数Linux系统上,可以在以下位置找到此类头文件: /usr/src/kernels/$KERNEL-VERSION/include/linux/ 您需要安装内核源代码才能进行任何内核开发,如果您正试图这样做的话,因为unis

当我搜索添加一个系统调用时,我得到了很多文章,但它们似乎是针对旧版本的,这似乎也是一个微不足道的过程

但问题是,文章建议的目录不适用于2.6.31版。有人知道
unistd.h
syscall\u table.S
syscalls.h
或它们对应的文件在哪里吗


提前感谢。

在大多数Linux系统上,可以在以下位置找到此类头文件:

/usr/src/kernels/$KERNEL-VERSION/include/linux/


您需要安装内核源代码才能进行任何内核开发,如果您正试图这样做的话,因为
unistd.h
也是标准gcc库的一部分。

对于
unistd.h:$SOURCE\u PATH/arch/x86/include/asm/unistd\u 32.h

对于
syscalls.h:$SOURCE\u PATH/arch/x86/include/asm/syscalls.h

对于
syscall\u table\u 32.h:$SOURCE\u PATH/arch/x86/kernel/syscall\u table\u 32.h


显然我是在x86机器上。

现在,我下载了2.6.31的源代码并将其解压缩。我想向这个源添加一个系统调用,然后构建并安装它。你是说这是不可能的?否则,在这个源代码中,这些文件在哪里,我在那里找到了unistd.h和syscalls.h。这些是要修改的吗?如果您将源代码作为发行版包下载,进行修改并重新生成包,您会做得更好。从普通源代码构建和安装自定义内核并不总是一个好主意,特别是如果您对底层发行版不太熟悉的话。我做内核开发人员已经有一段时间了,所以我应该知道:-)