地址空间中的Kernel空间是通过什么为我们保留的?

地址空间中的Kernel空间是通过什么为我们保留的?

在进程执行过程中,当进程的内存映射是这样的:

在此输入图像描述

这可能是一个愚蠢的问题,但是什么负责在地址空间中保留内核空间呢?用户进程对此负责吗?特权进程?所有流程?

根据我的理解,内核内存空间是由正在运行的进程保留的,但只有当指示在环 0 下执行时 CPU 才能访问它。这是正确的吗?

答案1

答案2

这个(非常简化的)内存映射来自很久以前,在遥远的操作系统中。如今,片段可以随机映射到地址空间(一个有趣的例子是包含当前时间的 Linux 内核变量,用于非常频繁地请求它的程序的性能),并且程序的地址空间是很多片段,分散在各处(逻辑)地址空间。例如,每个共享库都分配有自己的内存区域。

相关内容