Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
内核为什么要使用这个copy_to_user函数?
copy_to_user
不能直接对用户空间的数据进行操作吗?
内核和用户空间应用程序具有不同的地址空间,因此复制到用户空间需要更改地址空间。每个进程都有自己的(用户)地址空间。
此外,内核在复制到用户空间时永远不会崩溃,因此该copy_to_user函数可能会检查目标地址是否有效(也许该地址应该被分页,例如从交换空间)。
阅读更多关于linux 内核、系统调用、进程、地址空间...
如果一个给定的内核只为一个架构编写,这可能是也可能不是一个合理的选择。
有很多考虑因素可能因架构而异,因此需要某种多态操作......
保护......内核可能有太多或太少的访问权限,无论哪种方式都可能需要给定目标上的额外代码
地址空间......用户空间和内核空间可能重叠,因此需要特定于目标的解决方案或临时映射
页面错误管理......对用户空间的访问可能会出错,这需要避免或允许。限制对给定特定位置的访问允许额外设置或识别故障原因。