【问题标题】: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


    【解决方案1】:

    我认为在内核 3.3 中它移到了这里

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

    【讨论】:

    • 有时候我想知道你们有什么不知道的.. ^^
    【解决方案2】:

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

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

    wgethttp://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”下添加一个新的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”

    【讨论】:

      猜你喜欢
      • 2013-04-25
      • 2018-09-15
      • 2013-11-21
      • 2011-04-29
      • 1970-01-01
      • 2011-01-24
      • 2010-09-20
      • 2013-07-13
      • 1970-01-01
      相关资源
      最近更新 更多