当我们说设备是内存映射的时,
- 谁将地址映射到设备
- 这些地址空间的位置和大小是如何决定的
- 这些地图存放在哪里
- 这些地址空间随系统引导而变化吗
大致而言,
- MMU硬件
- 内核管理MMU硬件使用的MMU表
- 在按流程结构中。在Linux下,查看
/proc/<pid>/maps
以查看所有内存映射的文件和设备 - 它们可以,所以你不应该指望它们被修复
为了进一步阅读,我建议阅读Linux设备驱动程序中的内存映射和DMA一章、这个常见问题解答和这个stackoverflow问题。