4GB / 4GB内核VM拆分

时间:2011-08-04 19:14:39

标签: linux memory virtual kernel

我看到着名的Linux内核爱好者Ingo Molnar this article,他谈到4GB / 4GB分裂。

在这篇文章中他说

  用4G / 4G补丁,内核可以在4G / 4G模式下编译,其中   例如,内核有一个完整独立的4GB虚拟机,而且还有   为用户空间分离完整(和每个进程)4GB虚拟机。

我的问题从这里开始:

  1. 我的假设是,在Linux中的单片内核中,内核用户部分进程共享同一个PROCESS地址空间。因此,如果Linux内核有这个4G / 4G补丁,我们分别为用户虚拟空间和内核虚拟空间分配3/1。 事实上,内核的1GB虚拟空间映射在每个进程的虚拟地址空间中。简单来说,PROCESS ADDRESS SPACE是4GB,其中1GB分配给内核。这是真的吗?

  2. 通过问题中的文章 - 如果我的假设如1)是正确的 - 他是否意味着内核地址空间不再映射到PROCESS ADDRESS SPACE并且我们有一个不同的虚拟地址空间对于内核而言,没有共享地址空间? 那就是PROCESS ADDRESS SPACE是4GB而KERNEL ADDRESS SPACE是另一个4GB;而不是PROCESS ADDRESS SPACE扩大到8GB,其中4GB是内核共享的。

  3. 我知道我在这听起来有点愚蠢:)。

1 个答案:

答案 0 :(得分:6)

如果我理解正确的文章,那么内核和用户空间在补丁后不会共享相同的地址空间。然而,这会花费在每个用户空间/系统切换期间切换页表。