2013-10-31 36 views
-1

内核是守护程序吗? 是否引发陷阱(通过INT指令)与内核进行通信的唯一方式? 执行调用内核子程序的所有系统调用,提升INT陷阱吗? 用户应用程序是否在与内核守护程序不同的进程中运行,用户进程是由内核守护程序产生的?操作系统内核是守护进程吗?

+0

内核不是守护进程 - 它既不能代表进程运行也不能进行调度。 –

回答

0

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

号第一,INT是一个老机制的陷阱,大多数操作系统现在在x86和x86_64平台使用SYSENTER。其他体系结构具有各种类型的软件中断/陷阱指令。

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

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

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

1

内核是守护程序吗?

没有。

是否引发陷阱(通过INT指令)与内核进行通信的唯一方式?

是的,因为内核和用户空间应用程序在不同的权限级别,称为环。内核运行的是supervisor模式,称为ring0,而用户应用程序在ring3中运行,称为usermode。

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

是的,他们这样做。

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

我真的不明白这一点,请详细说明。

+1

内核条目的可能手段因体系结构而异;给定操作系统使用哪种可能性(当存在多于一个时)是设计决定。 –

+0

@ChrisStratton:我认为更新的AMD和Intel机器有一个新的syscall指令,比整个'int'更有效率。 – Linuxios

+0

是的,它们具有SYSENTER/SYSEXIT的情况,但是它更具体,特别是大多数操作系统仍然使用INT指令来陷入R0。 –

0

进程,守护进程等的整个思想是由内核创建的抽象。在CPU级别上,只有两级划分。有处理器核心,并行运行他们的代码,并有权限环,决定什么样的指令可以使用。

内核在ring0中运行(有时一些驱动程序生活在环1和环2中)。用户空间代码在ring3中运行。特殊处理器机制(如中断或sysenter指令)是将控制权从ring3代码(用户空间进程)转移到ring0代码(内核)所必需的。