C 创建_模块-为什么使用从_用户复制_?

C 创建_模块-为什么使用从_用户复制_?,c,module,linux-kernel,kernel,vmalloc,C,Module,Linux Kernel,Kernel,Vmalloc,我正在读LDD3。实际上,我无法理解这一段: 内核中使用vmalloc的函数的一个例子是create_模块系统 调用,它使用vmalloc为正在创建的模块获取空间。代码和数据 稍后使用copy\u from\u user将模块复制到分配的空间。这样,, 该模块似乎已加载到连续内存中 为什么使用“从用户复制”?我们不是只在内核空间吗?回想一下,内核模块是由运行在用户空间的insmod(或modprobe)命令加载的。这些命令将内核模块从磁盘加载到内存中,然后将其传递给内核,内核必须使用copy\u

我正在读LDD3。实际上,我无法理解这一段:

内核中使用
vmalloc
的函数的一个例子是
create_模块
系统 调用,它使用
vmalloc
为正在创建的模块获取空间。代码和数据 稍后使用
copy\u from\u user
将模块复制到分配的空间。这样,, 该模块似乎已加载到连续内存中


为什么使用“从用户复制”?我们不是只在内核空间吗?

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