我了解到,当copy_to_user
函数发生页面错误时,将使用异常表。
但是我发现几乎所有修复都只是设置返回值并跳转到触发页面错误的指令之后的下一条指令。
内核在哪里进行用户空间地址的映射工作?
我的意思是至少有一些地方内核会修改页面表。
答案 0 :(得分:0)
您的问题非常不清楚,copy_to_user
基本上是将数据从内核空间复制到用户空间。主要出于安全考虑,因为我们不想让用户访问内核数据结构和内核空间。所以我们需要一种机制来从内核请求给我们这些数据。
确实会在页表中添加新的映射。映射完成于
kernel-space
所在的page-tables
。