提交 fdcb3b8f 编写于 作者: X xleine

update: 更新部分内容

上级 8872a72c
......@@ -78,23 +78,43 @@
.. code-block:: console
$ cd os
$ make run
$ LOG=TRACE make run
``LOG=TRACE`` 是指定 LOG 的级别为 ``TRACE``,可以查看这个级别下的输出日志。
如果顺利的话,以 Qemu 平台为例,将输出:
.. code-block::
[RustSBI output]
Hello, world!
.text [0x80200000, 0x80202000)
.rodata [0x80202000, 0x80203000)
.data [0x80203000, 0x80203000)
boot_stack top=bottom=0x80214000, lower_bound=0x80204000
.bss [0x80213000, 0x80213000)
Panicked at src/main.rs:46 Shutdown machine!
除了 ``Hello, world!`` 之外还有一些额外的动态运行信息,最后是应用程序和操作系统运行结束,Qemu模拟的计算机执行了关机操作。
[rustsbi] RustSBI version 0.3.1, adapting to RISC-V SBI v1.0.0
.______ __ __ _______.___________. _______..______ __
| _ \ | | | | / | | / || _ \ | |
| |_) | | | | | | (----`---| |----`| (----`| |_) || |
| / | | | | \ \ | | \ \ | _ < | |
| |\ \----.| `--' |.----) | | | .----) | | |_) || |
| _| `._____| \______/ |_______/ |__| |_______/ |______/ |__|
[rustsbi] Implementation : RustSBI-QEMU Version 0.2.0-alpha.2
[rustsbi] Platform Name : riscv-virtio,qemu
[rustsbi] Platform SMP : 1
[rustsbi] Platform Memory : 0x80000000..0x88000000
[rustsbi] Boot HART : 0
[rustsbi] Device Tree Region : 0x87000000..0x87000ef2
[rustsbi] Firmware Address : 0x80000000
[rustsbi] Supervisor Address : 0x80200000
[rustsbi] pmp01: 0x00000000..0x80000000 (-wr)
[rustsbi] pmp02: 0x80000000..0x80200000 (---)
[rustsbi] pmp03: 0x80200000..0x88000000 (xwr)
[rustsbi] pmp04: 0x88000000..0x00000000 (-wr)
[kernel] Hello, world!
[TRACE] [kernel] .text [0x80200000, 0x80203000)
[DEBUG] [kernel] .rodata [0x80203000, 0x80205000)
[ INFO] [kernel] .data [0x80205000, 0x80206000)
[ WARN] [kernel] boot_stack top=bottom=0x80216000, lower_bound=0x80206000
[ERROR] [kernel] .bss [0x80216000, 0x80217000)
``Hello, world!`` 前后有一些额外的动态运行信息,最后是一系列 kernel 的输出日志。
本章代码树
------------------------------------------------
......
......@@ -11,7 +11,7 @@
.. 本节介绍了如何设计实现一个提供显示字符服务的用户态执行环境和裸机执行环境,以支持一个应用程序显示字符串。显示字符服务的裸机执行环境和用户态执行环境向下直接或间接与硬件关联,向上可通过函数库给应用提供 **显示字符** 的服务。这也说明了不管执行环境是简单还是复杂,设计实现上是否容易,它都体现了不同操作系统的共性特征--给应用需求提供服务。在某种程度上看,执行环境的软件主体虽然是以函数库的形态存在,但可称为是一种操作系统。
本节我们从一个最简单的 Rust 应用程序入手,深入地挖掘它下面的多层执行环境,分析编译器和操作系统为应用程序的开发和运行提供了怎样的便利条件。主要注意是,LibOS操作系统也是一层执行环境,因此它需要为上层的应用程序提供服务。我们会接触到计算机科学中最核心的思想 -- 抽象,同时以现实中不同需求层级的应用为例分析如何进行合理的抽象。最后,我们还会介绍软硬件平台(包括 RISC-V 架构)的一些基础知识。
本节我们从一个最简单的 Rust 应用程序入手,深入地挖掘它下面的多层执行环境,分析编译器和操作系统为应用程序的开发和运行提供了怎样的便利条件。主要注意是,LibOS操作系统也是一层执行环境,因此它需要为上层的应用程序提供服务。我们会接触到计算机科学中最核心的思想 -- 抽象,同时以现实中不同需求层级的应用为例分析如何进行合理的抽象。最后,我们还会介绍软硬件平台(包括 RISC-V 架构)的一些基础知识。
执行应用程序
-------------------------------
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册