操作系统特权级别和底层硬件的特权级别有什么区别?所有系统调用都会导致内核陷入陷阱吗?为什么系统调用会导致陷阱?是因为他们的汇编代码中有特权指令,例如 IN 吗?
问问题
1425 次
1 回答
3
直接回答您的问题:
操作系统特权级别和底层硬件的特权级别有什么区别?
必须在代码级别(即特权指令)强制执行的特权必须在硬件中得到支持。许多操作系统安全级别(即访问特定硬件设备的权限)不需要硬件支持来验证非常特定的功能,但它至少需要硬件支持来阻止代码访问设备。因此,简而言之,操作系统实现特权级别的能力取决于底层硬件,但两者不必相同。
所有系统调用都会导致内核陷入陷阱吗?为什么系统调用会导致陷阱?是因为他们的汇编代码中有特权指令,例如 IN 吗?
这基本上是正确的。陷阱是非特权代码转换到特权级别的自然机制。例如,如果用户程序需要访问某个硬件,则 IN 和 OUT 具有特权,因此它必须“捕获”到内核,然后内核将执行所需的操作并返回。
于 2012-08-31T19:46:51.670 回答