linux-是否可以通过LKM添加系统调用?

我想通过LKM添加新的系统调用,但是我不确定如何执行此操作.也就是说,我知道如果我想添加一个全新的系统调用,我可以查看sys_call_table并找到一个sys_ni_syscall并直接替换它,但是我很好奇是否可以实际添加到sys_call_table中.我意识到这是不可能的,因为它是固定大小的数组,但是我想知道是否还有其他聪明的方法可以添加系统调用而不覆盖未使用的系统调用号.
最佳答案
这是一个例子
linux system calls

编辑:
上面的示例显示了如何实现系统调用,以及如何从可加载模块中实现系统调用. AFAIK,这是不可能的,除非您在哪里覆盖一个现有数组,因为数组的大小是#define.

请记住,至少在您希望能够实际使用新系统调用的情况下,还需要更改用户空间.

转载注明原文:linux-是否可以通过LKM添加系统调用? - 代码日志