【问题标题】:What is need of copy_from_user [duplicate]copy_from_user 需要什么 [重复]
【发布时间】:2013-11-30 23:53:54
【问题描述】:

如果内核可以访问用户空间,为什么我们需要copy_from_user来复制内核内存中的数据,为什么它不能访问用户空间数据?是为了性能吗?

【问题讨论】:

    标签: linux-kernel kernel kernel-module


    【解决方案1】:

    内核和用户空间不一定有相同的地址空间。它们可以完全分开,需要特殊的 CPU 指令在它们之间移动数据。

    另一个重要的一点是内核需要以用户权限访问用户空间,即如果用户空间程序访问该地址会失败,那么copy_from_user()也会失败,即使内核可以自己访问该地址.

    除了一般的访问冲突之外,权限失败还可能包括页面不在内存中,因为它驻留在磁盘上。这可能需要某种特殊设置,因为通常内核不使用可交换内存。

    【讨论】:

    猜你喜欢
    • 2016-09-03
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    相关资源
    最近更新 更多