内核空间和用户空间地址范围是否总是以 1:3 的比例划分。
例如,如果我有 4GB 的地址空间和 4GB 的物理 RAM,那么内核将获得 1GB,而用户空间将获得 3GB(假设)!
因此,如果我有 2GB 的 RAM,那么它会像下面这样吗?
kernel: 512MB
user space: 0-1536MB
这是正确的假设吗?
内核空间和用户空间地址范围是否总是以 1:3 的比例划分。
例如,如果我有 4GB 的地址空间和 4GB 的物理 RAM,那么内核将获得 1GB,而用户空间将获得 3GB(假设)!
因此,如果我有 2GB 的 RAM,那么它会像下面这样吗?
kernel: 512MB
user space: 0-1536MB
这是正确的假设吗?
不,拆分仅用于划分虚拟地址空间。
它只是意味着从 0x00000000 到 0xBFFFFFFF 的地址空间“属于”或可用于用户空间中的映射。虚拟地址 0xC0000000 到 0xFFFFFFFF 属于内核。
可用 RAM 的数量及其使用方式与 Linux 内核中虚拟地址空间的分区方式无关。
FWIW,在 ARM 上,您可以配置拆分是什么,因此它不必是 3:1(用户:内核)。它可以是 1:3、2:2 或 3:1。我假设 x86 架构也有类似的选项。