首页 文章

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

提问于
浏览
1

据我所知,内核内存的下半部分是1:1与物理地址(RAM)映射,我想知道它带来了什么好处,特别是在x86的上下文中 . 启用MMU / TLB时,通过CPU地址总线发送的每个地址都被视为虚拟/逻辑地址 . 即使可以通过减去偏移来完成线性到物理的转换,但是MMU仍然会遍历页表以转换线性地址 . 我看不出任何表现上的好处 . 我错过了什么?

1 回答

  • 0

    没有任何好处 . 保护模式提供分页机制,因此每个进程都可以完全隔离并受到保护 . 启用分页时,代码(内核或用户程序)中使用的所有地址都必须是虚拟地址,并且不可能直接使用物理地址 . Kernel just needs a simple method to access every byte in RAM. 在分页机制下,最简单的映射架构是 1:1 mapping . 虽然内核仍然可以有明显的好处 .

相关问题