gpt4 book ai didi

linux - 如何理解虚拟到物理的转换?

转载 作者:太空狗 更新时间:2023-10-29 12:18:29 26 4
gpt4 key购买 nike

代码是:

include/asm-x86/page_32.h

#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))

如何理解__pa(x)?
谢谢

最佳答案

整个地址空间分为用户空间和内核空间。在 x86 中,用户与内核空间的比例通常为 3:1。这意味着较低的 3GiB 用于用户空间,较高的 1GiB 用于内核。这个比率可以在配置内核时改变。
现在,PAGE_OFFSET 宏指示内核地址空间的开始,在 x86 中,用户与内核的默认比例为 3:1,它的值为 0xC000000
内核地址空间的第一个区域用于将页框映射(直接映射)到虚拟地址空间,该区域从 PAGE_OFFSEThigh_memory
high_memory 当系统内存超过 896MiB 时使用。
可以直接映射的内存区域称为normal,不能映射的页面在highmem

关于linux - 如何理解虚拟到物理的转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18253477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com