我是Linux内核开发的新手。我有一些问题。
当我们执行insmod时,哪个上下文会进行insmod进程,用户空间或系统模式?
如何在用户空间C程序中使用当前宏,或者我们是否可以选择遍历内核task_struct结构?
答案 0 :(得分:2)
insmod
本身是用户空间程序或用户空间程序的符号链接(在Fedora 21 insmod
上是/usr/bin/kmod
的符号链接)。它像任何其他应用程序一样作为用户空间应用程序运行。 insmod
特殊之处在于它使init_module
系统调用。 init_module
实际上是将模块加载到内核中。
关于你的第二个问题,current
宏只在内核中定义。您可以在此SO post找到更多详细信息。