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