小编Tha*_* Le的帖子

引导期间Linux内核空间中的页表

我对Linux内核中的页表管理感到困惑吗?

在Linux内核空间中,在打开页表之前.内核将使用1-1映射机制在虚拟内存中运行.打开页表后,内核会查询页表以将虚拟地址转换为物理内存地址.问题是:

  1. 这时,在打开页表后,内核空间仍然是1GB(从0xC0000000 - 0xFFFFFFFF)?

  2. 在内核进程的页表中,只映射了0xC0000000 - 0xFFFFFFFF范围内的页表项(PTE)?PTE超出此范围将不会映射,因为内核代码永远不会跳转到那里?

  3. 打开页面表之前和之后的映射地址是一样的吗?

    例如.在打开页表之前,虚拟地址0xC00000FF映射到物理地址0x000000FF,然后在打开页表后,上面的映射不会改变.虚拟地址0xC00000FF仍然映射到物理地址0x000000FF.不同的是,只有在打开页表后,CPU才会查询页表,将虚拟地址转换为以前无需做的物理地址.

  4. 内核空间中的页表是全局的,并且将在系统中的所有进程(包括用户进程)之间共享?

  5. 这个机制在x86 32bit和ARM中是一样的吗?

linux-kernel mmu

16
推荐指数
2
解决办法
8041
查看次数

u-boot bootloader如何读取/保存其环境变量?

  • u-boot bootloader如何读取/保存其环境变量?
  • 我们如何在Flash中声明u-boot环境变量部分的地址?

  • 此处的描述:U-Boot环境是一个内存块,保存在永久存储器上,并在U-Boot启动时复制到RAM.

" 复制到RAM " 是什么意思?

U-boot会将环境变量的内存块复制到RAM吗?

谢谢

linux arm u-boot

11
推荐指数
2
解决办法
2万
查看次数

标签 统计

arm ×1

linux ×1

linux-kernel ×1

mmu ×1

u-boot ×1