【发布时间】:2018-01-10 18:50:35
【问题描述】:
我了解到,当copy_to_user 函数发生页面错误时,将使用异常表。
但我发现几乎所有修复程序都只会设置返回值并在触发页面错误的指令之后跳转到下一条指令。
内核在哪里做用户空间地址的映射工作?
我的意思是至少内核会在某些地方修改页表。
【问题讨论】:
标签: linux operating-system virtual-memory
我了解到,当copy_to_user 函数发生页面错误时,将使用异常表。
但我发现几乎所有修复程序都只会设置返回值并在触发页面错误的指令之后跳转到下一条指令。
内核在哪里做用户空间地址的映射工作?
我的意思是至少内核会在某些地方修改页表。
【问题讨论】:
标签: linux operating-system virtual-memory
您的问题非常不清楚,copy_to_user 基本上是一个将数据从内核空间复制到用户空间的功能。主要是出于安全原因,因为我们不想让用户访问内核数据结构和内核空间。所以我们需要一种机制来请求内核给我们这些数据。
确实会在页表中添加一个新映射。映射在
kernel-space page-tables 所在的位置。
【讨论】: