用户空间内存和内核空间内存如何映射到Linux中的物理内存?

时间:2014-04-25 02:21:04

标签: linux memory linux-kernel

我猜,这个问题可能重复,但为了清楚起见,我是单独提出来的。

所以我理解的是,对于32位架构,我们有4 GB的虚拟内存,其中3 GB用于用户空间,1 GB用于内核空间。

所以我不明白的是,在用户空间进程和内核空间之间共享相同的1 GB物理内存,它是如何工作的?

如果问题不明确,请告诉我,我会尝试添加更多细节。

1 个答案:

答案 0 :(得分:3)

  

所以我理解的是,对于32位架构,我们有4 GB的虚拟内存,其中3 GB用于用户空间,1 GB用于内核空间。

右。每个进程在虚拟内存中具有3GB的特定于进程的映射。内核的虚拟映射为1GB。

  

所以我不明白的是,在用户空间进程和内核空间之间共享相同的1 GB物理内存,它是如何工作的?

操作系统管理所有物理内存,根据需要将其映射到内核虚拟内存或用户虚拟内存。如果进程X需要在虚拟地址Z处映射的物理内存页Y,那么内核将确保在进程X运行时映射到位。