【问题标题】:Adding a new system call in Linux kernel 3.3在 Linux 内核 3.3 中添加新的系统调用
【发布时间】:2012-04-16 04:54:05
【问题描述】:
我对这个内核很陌生。我想做的只是向内核添加一个新的系统调用。我遵循此准则:http://hekimian-williams.com/?p=20。
问题出在 arch/x86/kernel 下的 syscall_table_32.S 文件,但我在内核版本 3.3 中找不到 x86 系统的文件。我还需要编辑文件并为新添加的系统调用再追加一行吗?还是我需要做其他事情让内核知道我的新系统调用?任何帮助将不胜感激。谢谢。
【问题讨论】:
标签:
linux
linux-kernel
system-calls
【解决方案2】:
如何在 3.3 版本中添加新的 Linux 内核 API?
-- 适用于 64 位操作系统
wgethttp://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.1.tar.bz2
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”下添加一个新的c文件(我使用的是x86 CPU)
示例:
编辑“/root/kernel/linux-3.3.1/arch/x86/kernel/Makefile”
添加新行
“obj-y += husky.o”
转到 /root/kernel/linux-3.3.1 文件夹并运行命令“make –j8”