为什么Linux内核地址空间中存在1:1线性映射?

时间:2018-08-07 00:37:17

标签: memory-management linux-kernel kernel mmu

据我了解,内核内存的下部是与物理地址(RAM)1:1映射的,我想知道它带来了什么好处,尤其是在x86的情况下。启用MMU / TLB时,通过CPU地址总线发送的每个地址都被视为虚拟/逻辑地址。即使可以通过减去偏移量完成线性到物理的转换,但是MMU仍将遍历页表以转换线性地址。我显然看不到任何性能上的好处。我想念什么?

1 个答案:

答案 0 :(得分:0)

没有好处。 保护模式提供分页机制,因此每个进程都可以完全隔离并受到保护。启用分页后,代码(内核或用户程序)中使用的所有地址都必须是虚拟地址,并且无法直接使用物理地址。 内核只需要一种简单的方法即可访问RAM中的每个字节。在分页机制下,最简单的映射方案是1:1映射。尽管内核仍然不能跳过页面映射过程,但是此架构的实现非常简单。任何其他复杂的映射方案都不会带来明显的好处。