内存映射IO—谁将地址映射到物理地址空间



当我们说设备是内存映射的时,

  1. 谁将地址映射到设备
  2. 这些地址空间的位置和大小是如何决定的
  3. 这些地图存放在哪里
  4. 这些地址空间随系统引导而变化吗

大致而言,

  1. MMU硬件
  2. 内核管理MMU硬件使用的MMU表
  3. 在按流程结构中。在Linux下,查看/proc/<pid>/maps以查看所有内存映射的文件和设备
  4. 它们可以,所以你不应该指望它们被修复

为了进一步阅读,我建议阅读Linux设备驱动程序中的内存映射和DMA一章、这个常见问题解答和这个stackoverflow问题。

最新更新