1

内核空间和用户空间地址范围是否总是以 1:3 的比例划分。

例如,如果我有 4GB 的地址空间和 4GB 的物理 RAM,那么内核将获得 1GB,而用户空间将获得 3GB(假设)!

因此,如果我有 2GB 的 RAM,那么它会像下面这样吗?

kernel: 512MB
user space: 0-1536MB

这是正确的假设吗?

4

1 回答 1

4

不,拆分仅用于划分虚拟地址空间。

它只是意味着从 0x00000000 到 0xBFFFFFFF 的地址空间“属于”或可用于用户空间中的映射。虚拟地址 0xC0000000 到 0xFFFFFFFF 属于内核。

可用 RAM 的数量及其使用方式与 Linux 内核中虚拟地址空间的分区方式无关。

FWIW,在 ARM 上,您可以配置拆分是什么,因此它不必是 3:1(用户:内核)。它可以是 1:3、2:2 或 3:1。我假设 x86 架构也有类似的选项。

于 2016-02-20T14:00:17.510 回答