我试图通过内核模块在虚拟机(使用VirtualBox)中覆盖内核内存(Linux 2.6.31,Ubuntu 9.10)中的某些部分.每当我这样做时,我都会收到此错误
[27154.303726] BUG:无法在0xc05769bc处理内核分页请求
我的代码:
unsigned char *p = (unsigned char *) c05769bc; p[1] = (addr & 0x000000ff); p[2] = (addr & 0x0000ff00) >> 8; p[3] = (addr & 0x00ff0000) >> 16; p[4] = (addr & 0xff000000) >> 24;
地址是正确的,我的写代码也是如此.我只是使用指针写入内核内存.我想知道为什么我得到这条消息,因为该地址的内存页肯定是在内存中.
此行为是否与虚拟机有关?或者最近的内核是否有内置的某种保护?我希望有人能给我一些线索.
这个问题似乎与Ubuntu有关,因为使用Debian时相同的代码不会失败.
TIA!
威廉