在Linux内核3.3中添加一个新的系统调用

我对这个内核的东西很新。 我想要做的只是添加一个新的系统调用内核。 我遵循这个准则: http : //hekimian-williams.com/?p = 20 。

问题出在arch / x86 / kernel下的syscall_table_32.S文件中,但在内核版本3.3中找不到x86系统的文件。 我是否仍然需要编辑文件并为新添加的系统调用追加一行? 还是我需要做其他事情来让内核知道我的新系统调用? 任何帮助将不胜感激。 谢谢。

Solutions Collecting From Web of "在Linux内核3.3中添加一个新的系统调用"

我认为在3.3内核转移到这里

http://lxr.free-electrons.com/source/arch/x86/syscalls/

如何在3.3版本中添加一个新的Linux内核API? – 用于64位操作系统

  • 从www.kernel.org获取内核代码。

wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.1.tar.bz2

  • 使用命令'tar xvfj XXX'将其上传到文件夹例如:/ root / kernel tar xvfj linux-3.3.1.tar.bz2

  • 编辑文件“/root/kernel/linux-3.3.1/arch/x86/syscalls/syscall_64.tbl”添加新行

312 64 husky1 sys_husky1

  • Eidt文件“/root/kernel/linux-3.3.1/include/linux/syscalls.h”添加新的函数声明

asmlinkage long sys_husky1(int fd);

之前的行“#endif”

  • 在“/root/kernel/linux-3.3.1/arch/x86/kernel”(我正在使用x86 CPU)下添加一个新的c文件。例如:

  • 编辑“/root/kernel/linux-3.3.1/arch/x86/kernel/Makefile”添加一行“obj-y + = husky.o”

  • goto /root/kernel/linux-3.3.1文件夹并运行命令“make -j8”