【发布时间】:2011-02-14 19:24:50
【问题描述】:
正如我们在用户空间中所知道的,如果某些虚拟地址空间尚未分配但已访问,则会发生页面错误。
在内核空间呢?例如,我想在 Linux 中运行一个内核线程,以天真地读取最高 1G 地址空间的每个字。
我想这没问题,即内核线程对内核地址空间的任意读取不会引起恐慌。这是正确的吗?有人可以详细说明吗?如果在一些空白区域阅读怎么办?
【问题讨论】:
标签: memory-management linux-kernel
正如我们在用户空间中所知道的,如果某些虚拟地址空间尚未分配但已访问,则会发生页面错误。
在内核空间呢?例如,我想在 Linux 中运行一个内核线程,以天真地读取最高 1G 地址空间的每个字。
我想这没问题,即内核线程对内核地址空间的任意读取不会引起恐慌。这是正确的吗?有人可以详细说明吗?如果在一些空白区域阅读怎么办?
【问题讨论】:
标签: memory-management linux-kernel
您无法读取未映射到内核空间的内存地址,处理器将捕获该地址并生成错误,在 Linux 下将报告为 Oops。见http://www.kerneloops.org/
【讨论】: