File tree Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Expand file tree Collapse file tree 2 files changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -103,12 +103,14 @@ LibOS操作系统的总体结构如下图所示:
103103
104104.. image :: ../../os-lectures/lec2/figs/lib-os-detail.png
105105 :align: center
106- :scale: 40 %
106+ :scale: 30 %
107107 :name: lib-os-detail
108108 :alt: LibOS总体结构
109109
110110通过上图,大致可以看出Qemu把包含app和LibOS的image镜像加载到内存中,RustSBI(bootloader)完成基本的硬件初始化后,跳转到LibOS起始位置,LibOS首先进行app执行前的初始化工作,即建立栈空间和清零bss段,然后跳转到app去执行。app在执行过程中,会通过函数调用的方式得到LibOS提供的OS服务,如输出字符串等,避免了app与硬件直接交互的繁琐过程。
111111
112+ 注: 图中的S-Mode和M-Mode是RISC-V 处理器架构中的两种特权级别。S-Mode 指的是 Supervisor 模式,是操作系统使用的特权级别,可执行特权指令等。M-Mode是 Machine模式,其特权级别比S-Mode还高,可以访问RISC-V处理器中的所有系统资源。关于特权级的进一步描述可以看第二章的 :doc: `../chapter2/1rv-privilege ` 中的详细说明。
113+
112114LibOS操作系统的源代码如下所示:
113115
114116.. code-block ::
Original file line number Diff line number Diff line change 157157 本章代码树
158158-------------------------------------------------
159159
160+ BatchOS操作系统的总体结构如下图所示:
161+
162+ .. image :: ../../os-lectures/lec3/figs/batch-os-detail.png
163+ :align: center
164+ :scale: 30 %
165+ :name: batch-os-detail
166+ :alt: BatchOS总体结构
167+
168+ 通过上图,大致可以看出Qemu把包含多个app的列表和BatchOS的image镜像加载到内存中,RustSBI(bootloader)完成基本的硬件初始化后,跳转到BatchOS起始位置,BatchOS首先进行正常运行前的初始化工作,即建立栈空间和清零bss段,然后通过 `AppManager ` 内核模块从app列表中依次加载各个app到指定的内存中在用户态执行。app在执行过程中,会通过系统调用的方式得到BatchOS提供的OS服务,如输出字符串等。
169+
170+ LibOS操作系统的源代码如下所示:
171+
160172.. code-block ::
161173
162174 ./os/src
You can’t perform that action at this time.
0 commit comments