Linux 内存管理的临时页表

内核编译和嵌入式产品的设计与开发
回复
mcusxq
帖子: 1
注册时间: 2022-08-16 17:50
系统: windows+虚拟机ubuntu
送出感谢: 0
接收感谢: 0

Linux 内存管理的临时页表

#1

帖子 mcusxq » 2022-08-24 10:15

最近在看linux内存管理,从boot调到kernel时,在head.S中创建了临时页表,以便开启mmu后,可以通过虚拟地址能够正确访问到内核。但是在进入start_kernel后会将这个临时页表删除并且重新建立,这里如果先删除了页表,那不就没有映射了,代码后续怎么运行呢?希望知道的朋友帮忙解答下,谢谢
头像
astolia
论坛版主
帖子: 5955
注册时间: 2008-09-18 13:11
送出感谢: 1 次
接收感谢: 1032 次

Re: Linux 内存管理的临时页表

#2

帖子 astolia » 2022-08-24 19:14

mcusxq 写了:
2022-08-24 10:15
这里如果先删除了页表,那不就没有映射了,代码后续怎么运行呢?
遇事不决读代码。https://elixir.bootlin.com/linux/v5.19/ ... d64.c#L322
你对“删除”的理解错误,linux并没有去碰存放内核符号地址映射的初期页表项
回复