首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在x86系统中,Linux内核如何从8MB到1gb的虚拟内存地址?

在x86系统中,Linux内核如何从8MB到1gb的虚拟内存地址?
EN

Unix & Linux用户
提问于 2018-03-29 16:44:01
回答 1查看 177关注 0票数 0

我正在研究如何在Linux内核中启用分页,但我不明白内核如何能够寻址从8MB到1GB的虚拟内存。我的意思是,在启动阶段,内核有一个非常小的页面表编码到映像中。这个页面表(由swapper_pg_dir指定)允许您只编写页面表的前两个条目。每个条目指向一个4MB的页面。因此,内核总共只能处理8MB的虚拟内存。然后,内核必须安装页面表的第二级,以驱动其所有1GB的虚拟内存。为了解决这个问题,它必须依赖于一些允许检索缓冲区的内存分配器,以便将第二级页面表的条目放在哪里:这是引导分配器。

因此,我的问题是:内核地址如何从8MB到1GB的虚拟内存?

EN

回答 1

Unix & Linux用户

发布于 2018-03-29 17:57:29

我不知道问题到底是什么--它使用了分页单元--也许可以在这里看到:https://stackoverflow.com/questions/18431261/how-does-x86-paging-work

896 8MB以下的页面目录仍然存储在swapper_pg_dir中,它只是在最初的8MB初始化之后重新初始化。事情在896 and和4096 and以上变得更加复杂,在4096 and以上变得更加复杂。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/434340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档