如何在Linux内核4.x中实现我自己的系统调用?

时间:2016-11-12 04:21:55

标签: linux-kernel system-calls

我是内核的新手,我想实现自己的系统调用。我搜索了很多链接,几乎已经到达但仍无法获得确切的输出。

我已关注own system call on kernel-3.8.8 (youtube video tutorial)

我的设置是:
os:ubuntu 14.04 LTS
arch:x86_64
我遵循的程序是

  1. 编辑sytemcall表linux-4.7 / arch / x86 / entry / syscalls_64.tbl
  2. 将原型添加到/usr/src/linux-4.7/include/linux中的syscalls.h
  3. 创建systcall定义并将syscall目录添加到内核Makefile
  4. 编译内核并重新启动
  5. 编写用户应用程序以验证系统调用是否正常。
  6. 我可以使用syscall num通过syscall()api获取系统调用。但我想要的是像开放调用sys_open这样的传统方式。 我希望mycall需要调用sys_mycall。

1 个答案:

答案 0 :(得分:1)

您可以编辑glibc以在系统调用周围添加包装器。像http://code.metager.de/source/xref/gnu/glibc/sysdeps/unix/syscalls.list

那样的东西

不要忘记在系统调用的

的linux标头中定义__NR编号

来自kernel.org的指令,这是唯一的Linux内核开发人员: https://www.kernel.org/doc/Documentation/adding-syscalls.txt