【发布时间】:2022-06-16 04:29:31
【问题描述】:
我目前正在开发一个 Linux 内核模块来拦截一些系统调用,以便在系统范围内打印有关它们的统计信息。
我遇到了获取sys_call_table 符号地址的不同方法,但还没有找到适用于较新内核(例如 5.11)的方法。在较旧的内核上,我们不会使用kallsyms_lookup_name 吗?看起来该符号已不再导出。
我可以看看/proc/kallsyms,但这似乎是个坏主意,而且不可推广。还有什么其他选择?
【问题讨论】:
-
“我可以看看
/proc/kallsyms,但这似乎是个坏主意,不能推广。” - 仅供参考,替换系统调用也是一种不好的模式。它被一些初学者用作他们第一个内核模块的“任务”。但是 Linux 内核从不鼓励替换系统调用。
标签: c linux-kernel system-calls