2011-02-14 117 views
2

正如我们在用户空间中所知道的,如果某些虚拟地址空间尚未分配但已被访问,则会发生页面错误。内核线程在内核地址空间中的任意读取是否会引起恐慌?

在内核空间中如何?例如,我想在Linux中运行一个内核线程,以天真的方式读取最高1G地址空间的每个字。

我想它是可以的,即内核线程在内核地址空间中的任意读取不会引起恐慌。这是对的吗?任何人都可以详细说明吗?如果在空白区域阅读,该怎么办?

回答

4

您无法读取未在内核空间中映射的内存地址,处理器将捕获该地址并生成故障,该故障在Linux下将报告为Oops。见http://www.kerneloops.org/