Linux-为了支持PAE,内核需要将页表和页目录中的表项从32位扩为64位,这是为什么?

发布于 2016-11-05 11:31:07 字数 371 浏览 1299 评论 1

RT,在wiki上看有关PAE(Physical Address Extension)--物理地址扩展有这样一个疑惑。
从图:
请输入图片描述
来看,进程依旧是用32位来寻址,看不出来将页表和页目录中的表项从32位扩为64位体现的作用啊。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜无邪 2016-11-10 23:17:21

其实原因很简单,你思考一下, 4kb的页表可以装1024个32位的页表项,或者512个64位页表项那么请问:
如果页表项是36位,那么应该装多少个页表项呢?
所以答案都知道,如果页表项做成是36位,是无法整数倍完美装载的。为了完美装载也就是对齐,装载的页表项个数一定是被2^n表达。所以为了对齐的原因,就只能装载512个表项,换句话说页表项位数扩展了一倍,也就是64位了。

简而言之,不是因为64位页表项,才装了512个页表项。而是为了对齐512个页表项,必须把页表项扩展一倍。这里面就体现了设计的思路问题。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文