我只是想知道为什么copy_from_user(to,from,bytes)要做真正的拷贝因为它只想让内核访问用户空间数据,所以它能直接将物理地址映射到内核的地址空间而不移动数据吗?
谢谢,

最佳答案

“在此之前,最好知道为什么使用copy_from_user()”
因为内核从不允许用户空间应用程序直接访问内核内存,因为如果指向的内存无效或在读取时发生错误,这将导致内核仅仅使用用户空间应用程序就死机。
“这就是为什么!!!!!!"
因此,当使用copy_from_user时,只会给用户造成错误,不会影响内核功能
尽管这是一项额外的工作,但它确保了内核的安全运行

关于c - copy_from_user()的实现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12925339/

10-11 04:31