Преглед изворни кода

doc: add chapter 01 'What is RustSBI'

Signed-off-by: Zhouqi Jiang <luojia@hust.edu.cn>
Zhouqi Jiang пре 2 месеци
родитељ
комит
80cee81946

+ 0 - 0
docs/src/03_prototyper/05_for_opensbi_user.md → docs/src/03_prototyper/04_for_opensbi_user.md


+ 3 - 1
docs/src/SUMMARY.md

@@ -10,7 +10,7 @@
     - [简介、应用场景与生态软件适配](./03_prototyper/01_introduction.md)
     - [编译与配置](./03_prototyper/02_configuration.md)
     - [调试 RustSBI Prototyper](./03_prototyper/03_debugging.md)
-    - [常见故障与错误码速查表](./03_prototyper/04_error_code.md)
+    - [给 OpenSBI 用户的 RustSBI Prototyper 教程](./03_prototyper/04_for_opensbi_user.md)
 - [RustSBI 维护的裸机支持包](./chapter_04_hal.md)
     - [`allwinner-hal` 全志芯片支持包](./04_hal/allwinner.md)
     - [`bouffalo-hal` 博流芯片支持包](./04_hal/bouffalo.md)
@@ -56,3 +56,5 @@
     - [社区资源](./10_oss_guide/04_community.md)
 - [参考文献](./references.md)
 - [附录](./appendix.md)
+    - [常见故障与错误码速查表](./appendix/error_code.md)
+    - [010 Editor Scripts 固件格式分析工具](./appendix/010_editor_scripts.md)

+ 1 - 0
docs/src/appendix/010_editor_scripts.md

@@ -0,0 +1 @@
+# 010 Editor Scripts 固件格式分析工具

+ 0 - 0
docs/src/03_prototyper/04_error_code.md → docs/src/appendix/error_code.md


+ 35 - 0
docs/src/chapter_01_what_is_rustsbi.md

@@ -1 +1,36 @@
 # 什么是 RustSBI?
+
+感谢您选择 RustSBI!RustSBI 是一款综合的安全引导解决方案。RustSBI 主要由 Rust 语言编写,适用于 RISC-V 的 Supervisor Binary Interface(SBI)架构,是遵守 MIT 或 Mulan-PSL v2 双协议发布的开源软件。RustSBI 在有效提升 RISC-V SBI 接口软件开发效率的同时,提供可供下载的二进制固件包,并包含大模型 Agent 应用模块,便于用户使用和二次开发。
+
+RustSBI 已被 RISC-V 基金会收录为官方推荐的 RISC-V SBI 实现之一,它的实现编号为 4。
+
+## RISC-V SBI 与 RustSBI
+
+在 RISC-V 架构中,特权级分为用户态(U-Mode)、内核态(S-Mode)和机器态(M-Mode)。其中,内核态运行的环境应当具有 SBI 接口,以支持内核启动和运行的必需基础功能;这一环境在裸机上通常由机器态(M-Mode)提供,通常称作 SBI 固件。在裸机平台上,SBI 固件具有引导、调试和可信环境的功能,可通过通用和专有 SBI 接口等多种形式实现,以支持内核态系统软件的正常运行。
+
+考虑到虚拟化环境时,虚拟化宿主态(HS-Mode)环境也可提供 SBI 接口,用于取代机器态,支持位于其中的虚拟机系统正常运行。此时,内核运行于虚拟内核态(VS-Mode),运用虚拟化软件提供的 SBI 接口等功能运行于虚拟化平台。
+
+模拟器使得内核的开发、验证工作不受宿主平台的限制。与裸机硬件相同,RISC-V 模拟器仍然需要为运行于其中的系统软件提供 SBI 接口等支持功能。RISC-V 模拟器运行于各个宿主平台,有的提供机器态(M-Mode)模拟运行环境,也有的提供内核态(S-Mode)运行环境。
+
+RustSBI 项目可同时适用于裸机固件、虚拟化环境和模拟器的开发工作。RustSBI Prototyper 是 RustSBI 提供的裸机固件实现,以动态固件等多种形式提供裸机 SBI 固件的实现方案,可与不同的引导生态软件配合使用。当开发虚拟化环境和模拟器时,RustSBI 提供了不同风格的依赖库,并展示从实际需求出发的样例程序,以简化 SBI 接口代码的开发工作。
+
+## 使用 Rust 语言开发
+
+RustSBI 项目使用可靠、安全的 Rust 语言。RustSBI 项目在发布前经过多项软件测试,包括单元测试、集成测试,并具有专用的测试用内核框架。视应用场景而定,RustSBI 提供从裸机固件到依赖库的多种实现方案,具有一定的可扩展性,每个库都具有详细的 Rust 文档和测试用例,供用户和开发者自由选择和参考。
+
+需要注意的是,即便 RustSBI 的各个方案都以 Rust 语言实现,并非意味着 RustSBI 仅能引导和支持 Rust 语言的操作系统。RustSBI 可支持包括 C 语言在内的多种高级语言操作系统,只要它遵守 RISC-V SBI 规范标准。其它编程语言的软件也可启动 RustSBI 的功能模块,如裸机固件和测试用内核等,因为它们的开发过程都严格遵守 RISC-V SBI 规范标准和相关行业标准。
+
+## 项目组成
+
+RustSBI 项目由以下模块构成。
+
+- 根基础服务与技术标准模块:由 RustSBI 标准结构、算法和操作系统支持包组成;
+- 裸机固件支持包模块:由 RustSBI Prototyper 裸机引导程序固件项目组成;
+- 平台支持模块:由各芯片系列的裸机硬件抽象层(HAL)支持包组成,与 Rust 生态共享支持模块;
+- 大模型应用:由 RustSBI Agent 问答智能体等项目组成。
+
+在第二章中,我们将详细介绍 RustSBI 的核心模块,它具有核心抽象、函数和常量支持等多个功能,便于开发模拟器和虚拟化平台。第三章将主要介绍 RustSBI Prototyper 裸机引导程序,它可在裸机平台运行,支持运行于真实硬件和模拟器的裸机操作系统。第四章介绍平台支持模块,它构成组件化的驱动程序,同时运用于 RustSBI 和 Rust 系统软件生态,具有相关的支持程序。
+
+在产品介绍之后,各平台、系统支持将于第五章、第六章介绍。第七章将详细阐述如何运用 RustSBI 开发用户所需的系统软件模块;第八章介绍 RustSBI 孵化中的软件模块,如 RustSBI Agent 等大模型应用和 ArceBoot 引导程序。第九章介绍如何将 RustSBI 与生态中的各个引导软件联动使用,例如与 Oreboot 联合使用;第十章介绍 RustSBI 开源社区生态和贡献方法。
+
+让我们开始吧!