diff --git a/source/chapter2/1rv-privilege.rst b/source/chapter2/1rv-privilege.rst index 9935677a2a65268e8d74c8617388961950f026f2..39f9bfbae0d89c781de63a2bb83ebe41423a3947 100644 --- a/source/chapter2/1rv-privilege.rst +++ b/source/chapter2/1rv-privilege.rst @@ -118,7 +118,10 @@ U 模式的应用程序之间的接口被称为 **应用程序二进制接口** 三个特权级的软件可能分别由不同的编程语言实现,即使是用同一种编程语言实现的,其调用也并不是普通的函数调用执行流,而是陷入,在该过程中有可能 切换 CPU 特权级。因此只有将接口下降到汇编指令级才能够满足其通用性。可以看到,在这样的架构之下,每层特权级的软件都只能做高特权级软件允许 它做的、且对于高特权级软件不会产生什么撼动的事情,一旦超出了能力范围,就必须寻求高特权级软件的帮助。因此,在一条执行流中我们经常能够看到 -特权级切换。 +特权级切换。如下图所示: + +.. image:: EnvironmentCallFlow.png + :align: center .. 随着特权级的逐渐降低,硬件的能力受到限制, diff --git a/source/chapter2/EnvironmentCallFlow.png b/source/chapter2/EnvironmentCallFlow.png new file mode 100644 index 0000000000000000000000000000000000000000..5897388521440946ddc55b2f2243be0d8afbe7f8 Binary files /dev/null and b/source/chapter2/EnvironmentCallFlow.png differ