草庐IT

c - 如何在不导致 Linux 内核崩溃的情况下访问 mmaped/dev/mem?

我有一个简单的程序试图访问用户空间中的物理内存,内核存储第一个结构页面。在64位机器上,这个地址是:内核虚拟地址:ffffea0000000000物理地址:0000620000000000我试图通过用户空间的mmap访问这个物理地址。但是下面的代码会使内核崩溃。int*addr;if((fd=open("/dev/mem",O_RDWR|O_SYNC)) 最佳答案 我想我已经找到了问题——它与x86上的/dev/mem内存映射保护有关。请引用这篇LWN文章:“x86:使用配置选项引入/dev/mem限制”http://lwn.net

c - 如何在不导致 Linux 内核崩溃的情况下访问 mmaped/dev/mem?

我有一个简单的程序试图访问用户空间中的物理内存,内核存储第一个结构页面。在64位机器上,这个地址是:内核虚拟地址:ffffea0000000000物理地址:0000620000000000我试图通过用户空间的mmap访问这个物理地址。但是下面的代码会使内核崩溃。int*addr;if((fd=open("/dev/mem",O_RDWR|O_SYNC)) 最佳答案 我想我已经找到了问题——它与x86上的/dev/mem内存映射保护有关。请引用这篇LWN文章:“x86:使用配置选项引入/dev/mem限制”http://lwn.net