x86_64中是否还有HIGHMEM分配?

问题描述 投票:0回答:2

对于x86 32位虚拟地址空间和较低的物理内存,在内核在0xc0000000之后连续映射时,较高的物理内存部分需要动态映射到虚拟地址空间中。

在x86_64内核中此更改了吗?

是否仍存在HIGHMEM分配,或者是否可以通过简单的物理到虚拟地址转换宏来访问x86_64中的所有物理内存?

memory-management linux-kernel
2个回答
0
投票
没有高内存来自ZONE_DMA,ZONE_NORMAL和ZONE_HIGHMEM。但是在64位中,因为它确实很大,所以为了安全起见,我们将内核空间分成几部分,中间有大孔,以确保安全,并且那里没有所谓的高内存。您可以阅读this,以获得有关x64内核地址结构的更多详细信息。

0
投票
我发现了这个:https://www.kernel.org/doc/Documentation/x86/x86_64/mm.txt

ff11000000000000 | -59.75 PB | ff90ffffffffffff | 32 PB | direct mapping of all physical memory (page_offset_base)

© www.soinside.com 2019 - 2024. All rights reserved.