我听说过特权级别、环、特权指令、非特权指令、用户模式、内核模式、用户空间、内核空间。
用户进程将以低特权级别运行,而操作系统进程将以更高的特权级别运行。我还听说过负责一般保护的CPL寄存器。CPU只知道CPL,并且它是根据指令所属页面来决定的。
我想知道最初谁或什么决定了进程的特权级别?
何时决定进程将以低或高特权级别运行?在编译时?在加载时?
什么告诉当前程序将以特定的特权级别运行?段寄存器?描述符?加载程序?
我听说过特权级别、环、特权指令、非特权指令、用户模式、内核模式、用户空间、内核空间。
用户进程将以低特权级别运行,而操作系统进程将以更高的特权级别运行。我还听说过负责一般保护的CPL寄存器。CPU只知道CPL,并且它是根据指令所属页面来决定的。
我想知道最初谁或什么决定了进程的特权级别?
何时决定进程将以低或高特权级别运行?在编译时?在加载时?
什么告诉当前程序将以特定的特权级别运行?段寄存器?描述符?加载程序?
首先,我看到了三个问题。
其次确认一些术语的定义
当你说特权级别时,我相信你指的是与CPU处理器模式相关联的特权级别概念,而不是其他任何可用特权机制的通用级别。
当你说进程时,我相信你指的是当前正在运行的程序的概念,而不是其他定义。
用户进程在给定CPU架构的用户模式下以用户权限运行。
内核进程在给定CPU架构的内核模式下以监管者权限运行。
进程是用户还是内核取决于哪些标志被设置,无论是在分段描述符中(当未使用分页时)还是在页面表或页面目录条目中(当使用分页时)。
这意味着进程的特权级别取决于该进程的代码在内存中的位置。如果它位于内核空间并使用相关标志标记为内核进程,则它是内核进程。如果它位于用户空间并使用相关标志标记为用户进程,则它是用户进程。