-1

内核是守护进程吗?引发陷阱(通过 INT 指令)是与内核通信的唯一方法吗?是否所有调用内核子例程的系统调用都会引发 INT 陷阱?用户应用程序是否在与内核守护进程不同的进程中运行,用户进程是由内核守护进程生成的?

4

3 回答 3

1

内核是守护进程吗?

没有。

引发陷阱(通过 INT 指令)是与内核通信的唯一方法吗?

是的,因为内核和用户空间应用程序处于不同的特权级别,称为环。内核运行的是超级用户模式,称为 ring0,而用户应用程序运行在 ring3,称为用户模式。

是否所有调用内核子例程的系统调用都会引发 INT 陷阱?

是的,他们有。

用户应用程序是否在与内核守护进程不同的进程中运行,用户进程是由内核守护进程生成的?

这个不是很懂,请详细说明。

于 2013-10-31T17:01:00.743 回答
0

引发陷阱(通过 INT 指令)是与内核通信的唯一方法吗?

不。首先,INT这是一种旧的陷阱机制,现在大多数操作系统都SYSENTER在 x86 和 x86_64 平台上使用。其他架构具有各种类型的软件中断/陷阱指令。

陷阱并不是与内核通信的唯一方式。由于内核可以访问任何内存,包括分配给用户模式进程的内存,共享内存是非常可行的。

是否所有调用内核子例程的系统调用都会引发 INT 陷阱?

“调用”内核例程的方法是使用陷阱 ( SYSENTER)。其他机制,例如供内核处理的共享内存队列数据,但您不会真的说这是一个子例程调用。

于 2013-10-31T17:06:47.583 回答
0

进程、守护进程等的整个概念是由内核创建的抽象。在 CPU 层面,只有两级划分。有处理器内核,它们并行运行它们的代码,还有特权环,它决定可以使用哪些指令。

内核在 ring0 中运行(有时某些驱动程序位于 ring 1 和 2)。用户空间代码在 ring3 中运行。特殊的处理器机制,例如中断或 sysenter 指令对于将控制从 ring3 代码(用户空间进程)转移到 ring0 代码(内核)是必要的。

于 2013-10-31T17:09:56.777 回答