为什么需要copy_to_user()?

时间:2014-04-28 05:31:47

标签: kernel linux-device-driver kernel-module

众所周知,内核也可以访问用户空间。因此,它不需要特殊功能 - copy_to_user()。那为什么需要呢?内核可以直接访问用户空间地址。不是吗?

2 个答案:

答案 0 :(得分:2)

因为内核不希望用户空间在处理相同数据时修改传递的数据。

从/向用户复制

  1. 验证缓冲区

  2. 将缓冲区复制到用户或从用户复制缓冲区,因此无需担心用户空间中的数据更新。

答案 1 :(得分:0)

请注意,在某些体系结构上,它没有通过简单的memcpy()实现: