以下哪些指令可以在非特权模式下运行? 1)加载2)存储3)输入4)输出

时间:2019-07-29 21:33:36

标签: c operating-system kernel user-mode-linux

试图了解用户模式与内核模式以及哪条指令可以在非特权模式下运行。

每个亚伯拉罕-西伯斯查兹,所有这些都可能需要SysCall。

1 个答案:

答案 0 :(得分:0)

这取决于它是哪个CPU以及操作系统对其进行配置的方式。

例如;对于80x86,如果满足以下条件,则可以在用户模式下执行inout指令:

  • IOPL字段(IO特权级别)设置为不小于当前特权级别。

  • IO权限位图(在当前任务状态段中)已配置为允许访问特定的IO端口。

当然,很多IO是内存映射的,这还允许内核将任何“内存映射的IO”区域映射到用户空间。

一般而言;单片内核将在内核空间中运行设备驱动程序,并且不允许用户模式代码直接访问任何类型的IO;并且微内核将在用户空间中运行设备驱动程序,并将对其进行显式配置,以便设备驱动程序进程可以为其所驱动的设备(而不是其他任何设备)进行输入/输出。