条款"用户空间"和#34;内核空间"指物理记忆?

时间:2017-06-14 15:23:19

标签: linux linux-kernel x86 operating-system

当我们使用术语"用户空间"时,我们是指物理内存中包含用户进程的代码和数据的区域,还是指每个进程具有的3 GB虚拟内存?

我们使用术语"内核空间",我们是指物理内存中包含内核的代码和数据的区域,还是指每个进程的1 GB虚拟内存有?

5 个答案:

答案 0 :(得分:4)

术语'内核空间'和'用户空间'不具体指虚拟或物理内存。从概念上讲,如果你说“内核空间”。是指每个进程拥有1GB的虚拟内存,它仍然与引用内存代码和驻留在物理内存中的数据相同,因为1GB的虚拟内存被映射到包含内核代码和数据的物理内存。

我们使用术语'内核空间'和'用户空间'更确切地说是谁有权访问内存的哪一部分。 '内核空间'将指的是内核可以访问的内存,而“用户空间”是指用户空间。将指的是相应的用户进程和内核都可以访问的内存。

答案 1 :(得分:2)

它根本不是指地址空间。

用户空间:处理器在无特权的上下文中执行某些操作。

内核空间:处理器在特权上下文中执行某些操作。

在特权环境中,一切都是允许的,在无特权的环境中,某些处理器功能是有限的。这是在硬件中实现的,因此处理器必须至少支持两种Linux模式。

因此,要从用户空间切换到内核空间,您需要切换上下文(通过系统调用)。

您可以在内核空间内分配虚拟内存(vmalloc)和物理内存(kmalloc),因此它与内存无直接关系。

在用户空间中,您只能分配虚拟内存(vmalloc = malloc)。

答案 2 :(得分:0)

"用户空间"和#34;内核空间"请参阅逻辑地址的范围。

内核空间对于所有进程都是相同的,而用户空间对于每个进程都是唯一的。但是,用户地址空间可以共享映射到物理内存。

理论上,两个进程可以具有相同的用户空间,但这在实践中不会发生。

答案 3 :(得分:0)

流程概念而言

我们可以说一个进程可以在'内核空间'或'用户空间'中运行,而不是同时运行。通常,进程在“用户空间”中运行。如果进程需要访问受保护资源,它应该跳转到“内核空间”,因为只有内核才有权访问受保护资源。为此,我们必须使用系统调用。

地址空间而言:

我们可以说(虚拟)内存可以位于“内核(地址)空间”或“用户(地址)空间”中。在32位普通Linux系统中,用户地址空间范围为[0,0xbfffffff],内核地址空间为[0xc0000000, 0xffffffff]

答案 4 :(得分:-1)

你是正确的部分。 系统内存分为以下两种类型的内存:

用户空间是用户进程运行的系统内存的一部分。这与内核空间形成对比,内核空间是内核执行并提供其服务的内存部分。

存储器的内容由专用RAM(随机存取存储器)VLSI(超大规模集成电路)半导体芯片组成,可以极高速度访问(即读取和写入)但仅暂时保留< / p>

内核空间是构成计算机操作系统核心的内存。它实际上是一个控制所有其他进程的进程,它可以完全控制系统上发生的所有事情。这包括管理HW(管理设备)和SW(个人用户进程,用户空间内的系统资源,防止它们相互干扰。它基本上是运行OS的地方。

相关问题