开发者

Can I add a systemcall from a module?

Can I add a 开发者_如何学Csystemcall from a module?


In some kernel versions it is possible to add or modify a systemcall by changing the sys_call_table. But because this table is not intended to be changed at runtime, it has no protection. Changing the table will lead to race conditions. Even without the race conditions, there are problems related to removing the modules while they are in use or stacked. Because of the problems with changing sys_call_table from modules, the symbol is no longer exported in new kernels. In other words if you get "unresolved symbol sys_call_table" when trying to load a module, it means there is a bug in the module, and the kernel does no longer accept such buggy modules.


Sounds like a really bad idea, regardless of whether you can. If your new system call will operate on files/devices, perhaps you could make it an ioctl or something similar rather than making it its own syscall?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜