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