create_module - 为什么要使用copy_from_user?

时间:2013-12-06 17:16:19

标签: c module linux-kernel kernel vmalloc

我正在阅读LDD3。在chapter 8中,我无法理解这一段:

  

使用vmalloc的内核中的函数示例是create_module系统   call,使用vmalloc为正在创建的模块获取空间。代码和数据   稍后使用copy_from_user将模块复制到分配的空间。通过这种方式,   模块似乎被加载到连续的内存中。

为什么使用copy_from_user?我们不只是在内核空间吗?

1 个答案:

答案 0 :(得分:3)

回想一下,内核模块是由insmod(或modprobe)命令加载的,该命令在用户空间中运行。这些命令将内核模块从磁盘加载到内存中,然后将其传递给内核,内核必须使用copy_from_user()将其复制到内核内存。