我读过杜阿尔特斯的文章:http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your-memory
在描述PTE内容的部分,位0:11与ARMv5体系结构参考手册中的描述不同
详情如下:
Bit 0:11包含:
(参见:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0198e/I16780.html )。我认为ARMv5架构参考手册中的二级描述符与Duartes的文章中的PTE相对应。
那么,问题是PTE描述符取决于平台(x86,ARM,.)?
对我来说,我认为PTE描述符不应该依赖于平台。
谢谢
发布于 2013-08-30 09:11:10
由于每个体系结构实现它们的MMU (内存管理单元)不同,PTE描述符依赖于体系结构。
如果我们看一下Linux,它有一个三层的页面表结构(继承自x86体系结构),在大多数ARM平台中,它被包装成一个两层的页面表结构(较新的ARM支持3层)。Linux还使用x86体系结构中可用的“脏”和“访问”位作为内核的内存管理逻辑。这些位元在ARM架构中是不可用的,ARM Linux通过在软件中对其进行仿真解决了这一问题。这是通过拥有两个版本的PTE页面表来完成的。一个用于包含这些缺失的“位”的操作系统,另一个用于实际的HW使用。
最后,用于不同体系结构的Linux操作系统的行为是相同的。这都是关于操作系统是如何使用特定架构所提供的硬件机制的,因为每种机制都有优缺点。
发布于 2013-06-04 13:54:00
ARM Linux代码根据、ARM、和其他条件的类型而有所不同。pgtable.h、page.h和pgtable-2level.h给出了一些细节。PTE值有两个版本:一个用于Linux,另一个用于硬件。
https://stackoverflow.com/questions/16909101
复制相似问题