修改时需要修改的文件,我得到很多文章,但他们似乎是旧版本,它也似乎是一个微不足道的过程。当我寻找添加系统调用时,我添加系统调用linux-2.6.31
但问题是,该文章建议的目录不适用于版本2.6.31。有谁知道在哪里unistd.h
,syscall_table.S
和syscalls.h
或其相应的文件是?
在此先感谢。
修改时需要修改的文件,我得到很多文章,但他们似乎是旧版本,它也似乎是一个微不足道的过程。当我寻找添加系统调用时,我添加系统调用linux-2.6.31
但问题是,该文章建议的目录不适用于版本2.6.31。有谁知道在哪里unistd.h
,syscall_table.S
和syscalls.h
或其相应的文件是?
在此先感谢。
为unistd.h : $SOURCE_PATH/arch/x86/include/asm/unistd_32.h
为syscalls.h : $SOURCE_PATH/arch/x86/include/asm/syscalls.h
为syscall_table_32.h : $SOURCE_PATH/arch/x86/kernel/syscall_table_32.h
很显然,我的x86机器上。
在大多数Linux系统,例如头文件下可以找到:
/usr/src目录/内核/ $ KERNEL-VERSION /在include/linux/
你需要有你的内核尽管安装了能够完成任何内核开发的源代码,但如果这正是要做的事情,因为unistd.h
也是标准gcc库的一部分。
现在,我下载了2.6.31的源代码并将其解压。我想添加一个系统调用这个源,然后构建并安装它。你说的是,这是不可能的?否则,在这个源文件中,这些文件在哪里,我在那里找到了unistd.h和syscalls.h。那些是要修改的吗? – besamelsosu 2010-04-18 06:34:54
如果您将源代码下载为发行版软件包,请进行修改并重新构建软件包,那么您会做得更好。从香草来源构建和安装定制内核并不总是一个好主意,特别是如果您不熟悉底层分发。我曾经作为内核开发者工作过,所以我应该知道:-) – 2010-04-18 07:08:14