我可以从模块中添加系统调用吗?
问问题
135 次
2 回答
3
在某些内核版本中,可以systemcall
通过更改 sys_call_table 来添加或修改 a。但是因为这个表不打算在运行时改变,所以它没有保护。更改表格将导致竞争条件。即使没有竞争条件,在使用或堆叠模块时也存在与移除模块相关的问题。由于sys_call_table
从模块更改的问题,该符号不再在新内核中导出。换句话说,如果您"unresolved symbol sys_call_table"
在尝试加载模块时遇到错误,则表示该模块中存在错误,并且内核不再接受此类错误模块。
于 2010-07-31T00:08:31.687 回答
1
听起来是个非常糟糕的主意,不管你是否可以。如果您的新系统调用将在文件/设备上运行,也许您可以将其设为 ioctl 或类似的东西,而不是使其成为自己的系统调用?
于 2010-07-31T00:11:06.543 回答