mordorwww 发表于 2016-02-10 14:08

内核地址映射为何要加page_offset

内核地址映射为何要加page_offset, 不直接等号映射

Buddy_Zhang1 发表于 2016-02-11 09:13

因为内核将 0 ~ 3G 的虚拟地址分配给用户空间,只有 3G ~ 4G 的地址分配给内核.
为了加速内核使用物理内存且防止用户空间进程直接访问物理内存,
内核使用直接映射的方式将物理地址映射到虚拟地址,之间的映射关系比较简单,主要是为了加速虚拟地址到物理地址的转换.
内核地址从 3G 开始映射,所以内核部分的虚拟地址 = 物理地址 + PAGE_OFFSET.

mordorwww 发表于 2016-02-15 09:25

为何不这样:


内核地址从 0G 开始映射(到1G),所

      以内核部分的虚拟地址 = 物理地址
页: [1]
查看完整版本: 内核地址映射为何要加page_offset