【问题标题】:page fault in copy_to_user, how kernel map a page for user space address?copy_to_user 中的页面错误,内核如何为用户空间地址映射页面?
【发布时间】:2018-01-10 18:50:35
【问题描述】:

我了解到,当copy_to_user 函数发生页面错误时,将使用异常表。
但我发现几乎所有修复程序都只会设置返回值并在触发页面错误的指令之后跳转到下一条指令。
内核在哪里做用户空间地址的映射工作?
我的意思是至少内核会在某些地方修改页表。

【问题讨论】:

    标签: linux operating-system virtual-memory


    【解决方案1】:

    您的问题非常不清楚copy_to_user 基本上是一个将数据从内核空间复制到用户空间的功能。主要是出于安全原因,因为我们不想让用户访问内核数据结构和内核空间。所以我们需要一种机制来请求内核给我们这些数据。

    确实会在页表中添加一个新映射。映射在 kernel-space page-tables 所在的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-29
      • 2017-05-18
      • 2016-05-05
      • 2015-02-03
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多