【发布时间】:2014-11-18 21:57:29
【问题描述】:
我有一个关于 linux 内核和 MMU 之间关系的问题。 我现在明白了 linux 内核管理虚拟内存地址和物理内存地址之间的页表。 同时x86架构中还有MMU,管理虚拟内存地址和物理内存地址之间的页表。 如果 MMU 出现在 CPU 附近,内核还需要处理页表吗?
这个问题可能很傻,但另一个问题是,如果MMU负责内存空间,谁来管理高内存和低内存?我相信内核将从 MMU 接收到虚拟内存的大小(32 位为 4GB),然后内核将在虚拟地址中区分用户空间和内核空间。 我对么?还是完全错误?
提前非常感谢!
【问题讨论】:
-
Linux 可能在没有 MMU 的硬件上运行,所以内核必须知道如何进行翻译,但在 x86 上,我相信它只是使用 MMU。
-
我赞同 Gennadi 的评论。在 x86 架构上,MMU 负责将虚拟地址转换为物理地址,但内核仍会跟踪哪些页面属于内核以及哪些页面属于用户进程。我相信this 可能有助于阐明事情的运作方式。
标签: linux kernel computer-architecture mmu