我试图向Linux内核3.2.x添加一个新的系统调用。 在通过互联网搜索有用的参考资料时,我有一种印象,即在问题Is it possible to add a system call via a LKM?
中无法实现系统调用作为可加载模块我找到了另一个链接,上面写着“有一种方法可以添加系统调用而无需使用模块作为包装器重新编译内核,但这超出了本文档的范围”。 来源http://hekimian-williams.com/?p=20
我知道静态实现系统调用将要求我在每次进行任何更改时编译内核代码。是否有上述博客中指定的方法可以将其作为模块实现。
非常感谢任何有关方向的建议或指示。
答案 0 :(得分:4)
sys_call_table/ia32_sys_call_table
my_sys_call_table
)NR_syscalls
比较instruction 修改system_call处的sys_call_table
引用,指向my_sys_call_table
:
500 call *sys_call_table(,%eax,4)
->
500 call *my_sys_call_table(,%eax,4)
玩得开心:)