【发布时间】:2012-02-05 23:31:22
【问题描述】:
remap_pfn_range 函数(用于驱动程序中的mmap 调用)可用于将内核内存映射到用户空间。它是如何完成的?任何人都可以解释精确的步骤吗?内核模式是特权模式 (PM),而用户空间是非特权 (NPM)。在 PM 中,CPU 可以访问所有内存,而在 NPM 中,某些内存受到限制 - CPU 无法访问。当remap_pfn_range 被调用时,这个仅限于 PM 的内存范围现在如何可供用户空间访问?
查看remap_pfn_range 代码有pgprot_t struct。这是与保护映射相关的结构。什么是保护映射?是上面问题的答案吗?
【问题讨论】:
标签: linux-kernel linux-device-driver kernel-module virtual-address-space