为什么内核被称为进程地址空间?

时间:2011-09-01 19:50:12

标签: memory-management process operating-system

这可能是一个愚蠢的问题,但它刚刚浮现在我的脑海中。有关进程地址空间和虚拟内存布局的所有文本都提到了进程地址空间 为内核保留的空间。对于例如在32位系统上,进程地址空间为4GB,其中1GB是为Linux内核保留的(在其他操作系统上可能不同)。

我只是想知道为什么当进程无法直接处理内核时,内核被称为进程地址空间。为什么我们不说内核有一个单独的地址空间而不是一个进程?为什么我们不能为内核本身提供一个不同的页表,这个表与进程的页表分开?

1 个答案:

答案 0 :(得分:15)

当进程进行系统调用时,我们不需要切换页表(从进程地址空间页表到内核地址空间页表)来为系统调用提供服务(应该只在内核模式下进行) 。据说这是内核在进程上下文中运行。

某些内核事件不会在进程上下文中运行,只会为内核加载页表。

知道了吗?