我在 Linux 内核模块中使用了例如
如果我使用页面遍历(page walk)的方法,包括
我的内核模块将作为一个可加载模块,因此无法获取内部符号。
提前感谢您的指导。
vmalloc()
的函数分配一些内存。我想让这个内存拥有读、写和执行权限。请问,有何干净且合适的方式来实现这一点呢?通常情况下,这相当于在内核空间调用 mprotect()
。如果我使用页面遍历(page walk)的方法,包括
pgd_offset()
、pud_offset()
、pmd_offset()
、pte_offset_map()
以及 pte_mkwrite()
,在尝试在2.6.39版本上使用时会出现链接错误。此外,如果我采用页面遍历的方式,就属于 hack 的范畴,而应该存在更加干净和合适的方法。我的内核模块将作为一个可加载模块,因此无法获取内部符号。
提前感谢您的指导。
__do_sysmprotect
是一个静态函数。不确定它是否可以在模块中调用。 - Bruce Shen