-1

在Linux中,有一些函数用于索引pgd,pmd和pte,如pgd_offset,pmd_offset和pte_offset。谁称这些功能? MMU是否使用这些函数来遍历页表?Linux页面表

我的理解是,linux内核为每个进程创建一个页表,并将页表的基地址传递给页表基址寄存器,以便MMU可以访问它。之后MMU如何读取页表?如果MMU是阅读页表的人,谁使用这些pgd_offset等功能?

+0

Look [here](http://lxr.free-electrons.com/ident?i=pgd_offset)。 – Downvoter

回答

0

MMU以后如何读取页表?

MMU正在使用硬件加速方法来读取内存。实际查找是特定于体系结构的:就像指令解析过程一样。

谁使用这些pgd_offset等功能,如果MMU是一个读页表?

有时,内核代码想要通过虚拟地址查找struct page。它必须使用这些函数才能做到这一点(AFAIK,没有用于MMU地址查找的API,因此它也必须在内核中实现)。