【问题标题】:OS privilege levels vs Hardware privilege levels操作系统特权级别与硬件特权级别
【发布时间】:2012-08-26 14:59:51
【问题描述】:

操作系统特权级别和底层硬件的特权级别有什么区别?所有系统调用都会导致内核陷入陷阱吗?为什么系统调用会导致陷阱?是因为他们的汇编代码中的IN等特权指令吗?

【问题讨论】:

    标签: operating-system computer-architecture instruction-set


    【解决方案1】:

    直接回答您的问题:

    操作系统特权级别和底层硬件的特权级别有什么区别?

    必须在代码级别(即特权指令)强制执行的权限必须在硬件中得到支持。许多操作系统安全级别(即访问特定硬件设备的权限)不需要硬件支持来验证非常特定的功能,但它至少需要有硬件支持来阻止代码访问设备。因此,简而言之,操作系统实现权限级别的能力取决于底层硬件,但两者不必相同。

    所有系统调用都会导致内核陷入陷阱吗?为什么系统调用会导致陷阱?是因为他们的汇编代码中的IN等特权指令吗?

    这基本上是正确的。陷阱是非特权代码转换到特权级别的自然机制。例如,如果用户程序需要访问某个硬件,则 IN 和 OUT 具有特权,因此它必须“捕获”到内核,然后内核将执行所需的操作并返回。

    【讨论】:

    • 因此,系统调用似乎是其主体包含对特权指令的调用的函数。我说的对吗?
    • @user1284064 实际上,系统调用实际上是通过软件中断来实现的,例如,客户端程序使用特权指令“调用”函数使用 INT 指令,该指令告诉内核要做什么。
    猜你喜欢
    • 2013-07-23
    • 2012-11-06
    • 2011-03-27
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多