gpt4 book ai didi

linux-kernel - 为什么必须使用copy_to_user()/copy_from_user()从内核访问用户空间?

转载 作者:行者123 更新时间:2023-12-03 12:30:09 24 4
gpt4 key购买 nike

我很好奇,因为在尝试直接访问内存后出现内核崩溃(然后我找到了这些功能)。

最佳答案

这些函数可以做一些事情:

  • 他们检查提供的用户空间块是否完全在地址空间的用户部分内(access_ok())–这可以防止用户空间应用程序请求内核读取/写入内核地址;
  • 如果无法访问任何地址,它们将返回错误,从而允许将错误返回给用户空间(EFAULT)而不是使内核崩溃(这是通过与页面错误处理程序的特殊配合来实现的,该处理程序可以特别地检测到何时用户存储器访问功能之一发生故障);
  • 它们允许特定于体系结构的魔术,例如,确保具有虚拟标记的缓存的体系结构的一致性,禁用SMAP等保护或切换具有单独的用户/内核地址空间(如S / 390)的体系结构上的地址空间。
  • 关于linux-kernel - 为什么必须使用copy_to_user()/copy_from_user()从内核访问用户空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12666493/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com