HyperNews Linux KHG 讨论页面

反馈: 回复:我可以在内核模块内部进行系统调用吗?

论坛: Linux 内核黑客指南
回复: 问题 我可以在内核模块内部进行系统调用吗? (Shawn Chang)
关键词: 系统调用, 模块, 锁定物理页
日期: Sat, 17 Jan 1998 07:39:25 GMT
发件人: Massoud Asgharifard <asghari@ce.sharif.ac.ir>

嗨,嗯,不行。 当你从用户空间进行系统调用时,系统调用参数位于段寄存器 fs 中(假设是 x86 架构)。 函数 memcpy_fromfs 和 memcpy_tofs 在内核中被调用,以检索内核函数的参数。 但是模块代码本身就是内核代码,因此无法这样做。(段错误....)(尝试重写系统调用,但引用内核内存作为参数。) 如果你想从你的模块代码中调用内核内部函数(这些函数通常不导出),你应该将它注册到文件 linux/kernel/ksyms.c 中。 这将导出该函数的名称,并且 insmod 将安装你的模块。 如果有什么拼写错误或错误,请原谅。