首页 > 解决方案 > 如果我的系统上安装了 512 MB 的物理内存,Linux 内核如何处理内存映射

问题描述

如果我的系统上仅安装了 512 MB 的物理内存,Linux 内核如何处理内存映射。

内核将0(或16)MB-896MB物理RAM映射到0xC0000000线性地址,可以直接寻址。那么,当我只有 512 MB 的 RAM 时会发生什么?

内核如何将 896 MB 从 512 MB 映射到 896 MB?内核进行了设置,以便每个进程的页表将虚拟地址从 0xC0000000 直接映射到 0xFFFFFFFF (1GB) 到物理地址从 0x00000000 到 0x3FFFFFFF (1GB)。但是当我只有 512 MB 物理 RAM 时,如何将虚拟地址从 0xC0000000-0xFFFFFFFF 映射到物理 0x00000000-0x3FFFFFFF ?重点是我的物理范围只有 0x00000000-0x20000000。由于内核页面无法换出,用户进程如何获得使用物理内存的机会?

标签: linux-kernel

解决方案


推荐阅读