内核space和用户space虚拟地址划分

Kernel space and user space virtual address division

内核space和用户space地址范围是否始终按1:3比例划分。

例如,如果我有 4GB 地址 space 和 4GB 物理 RAM,则内核获得 1GB,用户 space 获得 3GB(假设)!

那么如果我有 2GB 的 RAM 那么它是否像下面这样?

kernel: 512MB
user space: 0-1536MB

这个假设是否正确?

不是,拆分只是为了划分虚拟地址space。

只是表示从0x00000000到0xBFFFFFFF'belongs'到or的地址space可以映射到user-space。虚拟地址 0xC0000000 到 0xFFFFFFFF 属于内核。

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

FWIW,在 ARM 上,您可以 configure what the split is,因此它不必是 3:1(用户:内核)。它可以是 1:3、2:2 或 3:1。我假设 x86 arch 有类似的选项。