我开始学习内核模块编程。要将任何参数传递给内核模块,您可以使用module_param( )
宏,我猜它的工作原理类似于用户空间中的动态链接方法(将符号重定位到内核模块加载程序的运行时间),如果我错了,您可以纠正我。无论如何,module_param()
需要一个权限参数来指定参数值的读写和执行权限。那么,module_param()
如果您正确设置权限以及如何module_param_hw( )
解决这些问题,究竟会如何变得不安全。我知道module_param_hw
当我们传递与硬件相关的值时应该使用它,但不明白为什么它更安全。
问问题
80 次
1 回答
0
它或枚举 KERNEL_PARAM_FL_UNSAFE 以标记文件 module_param.h 中 kernel_param 结构的成员。检查宏 module_param_hw_named
它还添加了与内核锁定功能相关的额外检查,
if (kp->flags & KERNEL_PARAM_FL_HWPARAM &&
security_locked_down(LOCKDOWN_MODULE_PARAMETERS))
return false;
您可以在文件 kernel/params.c 中检查函数 param_check_unsafe。该函数将在带参数的内核中插入模块时调用。
于 2021-04-20T10:28:00.883 回答